Copie de fichier par reseau
Fermé
lebusher
Messages postés
24
Date d'inscription
dimanche 10 janvier 2016
Statut
Membre
Dernière intervention
24 janvier 2017
-
15 janv. 2017 à 20:19
lebusher Messages postés 24 Date d'inscription dimanche 10 janvier 2016 Statut Membre Dernière intervention 24 janvier 2017 - 15 janv. 2017 à 21:58
lebusher Messages postés 24 Date d'inscription dimanche 10 janvier 2016 Statut Membre Dernière intervention 24 janvier 2017 - 15 janv. 2017 à 21:58
A voir également:
- Copie de fichier par reseau
- Fichier rar - Guide
- Comment réduire la taille d'un fichier - Guide
- Comment ouvrir un fichier epub ? - Guide
- Copie cachée - Guide
- Fichier host - Guide
3 réponses
KX
Messages postés
16753
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
25 novembre 2024
3 019
15 janv. 2017 à 20:39
15 janv. 2017 à 20:39
Bonjour,
Comment as-tu fait le code qui appelle ces deux méthodes ?
J'ai repris cet ancien code (Envoi des fichiers par des sockets java) pour l'adapter avec tes deux méthodes et le transfert de fichiers est bon.
Donc ce n'est pas les deux méthodes que tu nous montres qui poserai problème mais plutôt la manière dont tu les utilises.
Comment as-tu fait le code qui appelle ces deux méthodes ?
J'ai repris cet ancien code (Envoi des fichiers par des sockets java) pour l'adapter avec tes deux méthodes et le transfert de fichiers est bon.
Socket sock = new ServerSocket(9001).accept(); recoisFichier(new File("C:/test2.jpg"), sock.getInputStream()); sock.close();
Socket sock = new Socket(InetAddress.getLocalHost(), 9001); envoieFichier(sock.getOutputStream(), new File("C:/test.jpg")); sock.close();
Donc ce n'est pas les deux méthodes que tu nous montres qui poserai problème mais plutôt la manière dont tu les utilises.
lebusher
Messages postés
24
Date d'inscription
dimanche 10 janvier 2016
Statut
Membre
Dernière intervention
24 janvier 2017
17
15 janv. 2017 à 21:00
15 janv. 2017 à 21:00
justement c'est etrange parceque mon code il fonctionnais bien, et des fois le programme ne fonctionne pas correctement.
le probleme que je cherchais a resoudre est que le fichier recus avait quelques bits en moins.. et la mon programme me donne un fichier recu vide, j'esperai en postant mon code ainsi decouvrir ce qui est a l'origine de ce comportement instable
le probleme que je cherchais a resoudre est que le fichier recus avait quelques bits en moins.. et la mon programme me donne un fichier recu vide, j'esperai en postant mon code ainsi decouvrir ce qui est a l'origine de ce comportement instable
KX
Messages postés
16753
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
25 novembre 2024
3 019
15 janv. 2017 à 21:12
15 janv. 2017 à 21:12
Comme je l'ai dit, ton code est incomplet, il manque la partie de comment tu gères tes Input/OutputStream, dans mon exemple je le fais avec des Socket, à voir comment tu as fait de ton côté, sachant que c'est vraiment cette partie là qui gère la communication réseau...
lebusher
Messages postés
24
Date d'inscription
dimanche 10 janvier 2016
Statut
Membre
Dernière intervention
24 janvier 2017
17
15 janv. 2017 à 21:56
15 janv. 2017 à 21:56
Fonction de reception :
//en fait je recois pas que des fichiers, mais aussi des dossier...
private static void recevoir(Socket client){
try{
InputStream is=new DataInputStream(client.getInputStream());
BufferedReader entree = new BufferedReader(new InputStreamReader(client.getInputStream()));
String nomFic = entree.readLine();b.append("recois "+nomFic+"\n");
File file=new File(nomFic);
String isFile = entree.readLine();
if ( valider(client, nomFic, isFile) ) {
if (isFile.equals("vrai"))
recoisFichier( new File(nomFic), is);
else {
OS = entree.readLine();
recoisFichier( new File("reception"+File.separator+nomFic+".zip"), is);
decompresser("reception"+File.separator+nomFic+".zip");System.out.println("Fin decompression");
}
}
entree.close();
is.close();
}
catch(IOException e){ e.printStackTrace(); }
}
lebusher
Messages postés
24
Date d'inscription
dimanche 10 janvier 2016
Statut
Membre
Dernière intervention
24 janvier 2017
17
15 janv. 2017 à 21:58
15 janv. 2017 à 21:58
et l'envoie :
voila pour mes fonctions d'envoie et reception
public static void envoyer(Socket serveur, String file){
try{
File fic = new File(file);
OutputStream os=new DataOutputStream(serveur.getOutputStream());
OutputStreamWriter sortie = new OutputStreamWriter(serveur.getOutputStream());
ecrire( fic.getName(), sortie);
if (fic.isFile()) ecrire( "vrai", sortie);
else ecrire( "faux", sortie);
if (fic.isFile()){
envoieFichier( os, new FileInputStream(fic), fic);
}
else {
dossier = fic.getName()+".zip";
FileOutputStream fos = new FileOutputStream(fic.getName()+".zip");
zos = new ZipOutputStream(new BufferedOutputStream(fos));
zos.setLevel(9);
zos.setMethod(ZipOutputStream.DEFLATED);
compresseDossier( fic.getAbsolutePath(), os, sortie, "");
zos.close();
ecrire(System.getProperty("os.name"), sortie);
envoieFichier(os, new FileInputStream(new File(fic.getName()+".zip")), new File(fic.getName()+".zip"));
}
} catch (IOException e){ b.append("Erreur d'envoie du fichier, veuillez reesayer!\n"); }
}
voila pour mes fonctions d'envoie et reception