aaratorn
Messages postés3Date d'inscriptionjeudi 22 mars 2007StatutMembreDernière intervention22 mars 2007
-
22 mars 2007 à 19:38
Ombitious_Developper
Messages postés2333Date d'inscriptionsamedi 28 février 2004StatutMembreDernière intervention26 juillet 2013
-
22 mars 2007 à 23:34
Bonjour à tous !
J'ai un problème... je developpe un projet de synchro de repertoire en java et je pensais utilisé les sockets pour échange de fichiers sur un réseau.
Problème de mon code: je n'arrive pas effectuer le transfert correctement.
En gros je n'ai qu'une partie de mon fichier texte ou de mon image en résultat.
(j utilise java 1.6 sur netbeans 5.5)
Merci d'avance.
private void envoiFichier() throws UnknownHostException, IOException
{
//Date t = new Date();
Socket socketClient = new Socket("127.0.0.1", 8008);
DataInputStream in = new DataInputStream(socketClient.getInputStream());
DataOutputStream out = new DataOutputStream(socketClient.getOutputStream());
// ouverture de flux sur le fichier à envoyer
RandomAccessFile fic = null;
int tailleF = 0;
fic = new RandomAccessFile ("C:\\test\\temp.txt","r");
tailleF = (int) fic.length();
// quelques initialisations
byte[] buffer_send = new byte[512]; // buffer de lecture dans le fichier
int fichierfini -1; // 0 lorsque le fichier aura été entièrement envoyé
while (fichierfini !=0)
{
// Lecture du fichier d'entrée dans le buffer
int octets_lus = 0; // nombre d'octets lus
octets_lus = fic.read(buffer_send, 0, buffer_send.length - 4);
out.write(buffer_send);
out.flush();
in.read();
// teste si le fichier source a été entièrement parcourru
fichierfini = (int) (fic.length() - fic.getFilePointer());
}
// Boucle d'envoi terminée : soit envoi fini, soit erreur
out.write("END".getBytes());
out.flush();
// Dans tous les cas, fermeture du fichier en lecture
fic.close();
in.close();
out.close();
//float tps = (new Date().getTime() - t.getTime()) / 1000F; // if (tps 0) tps 1;
// System.out.println(tailleF + " octets copiés en " + (new Date().getTime() - t.getTime()) + "ms");
}
}
Ombitious_Developper
Messages postés2333Date d'inscriptionsamedi 28 février 2004StatutMembreDernière intervention26 juillet 201338 22 mars 2007 à 20:01
Salut:
Cherches sur le net il y a des API qui implémente le protocole FTP.
C'est très efficace pour le transfert des fichiers.
Ombitious_Developper
Messages postés2333Date d'inscriptionsamedi 28 février 2004StatutMembreDernière intervention26 juillet 201338 22 mars 2007 à 21:29
Salut:
A mon avis du dois éviter d'utiliser le tampons pour le grand fichiers.
Ombitious_Developper
Messages postés2333Date d'inscriptionsamedi 28 février 2004StatutMembreDernière intervention26 juillet 201338 22 mars 2007 à 23:34
Salut:
A bon. Regardes bien la documentation il y a read (byte []
)