bartleby | Bonjour a tous,
J'ai un probleme pour transferer plusieurs fichiers differents lors d'une meme connexion. Le probleme, c'est que le programme qui recoit les fichiers ne se rend pas compte que le 1er est fini et qu'il doit passer au second. Lorsque j'essaye de transferer 2 fichiers, le contenu du 1er et du second se retrouve dans le 1er du coté destination ( et le 2 eme n'est meme pas crée).
Sources :
Code :
- import java.util.*;
- import java.net.*;
- import java.io.*;
- public class Receiver{
- public static void main(String[] argv){
- try{
- ServerSocket titi = new ServerSocket(6667); //on creer une nouvelle socket pour le transfert du fichier
- Socket t=titi.accept();
- RandomAccessFile inFile = new RandomAccessFile ("new03.jpg","rw" ); //on creer le fichier sur le disque dur
- InputStream in2 = t.getInputStream();
- byte bb[] = new byte[1024];
- int amount;
- while((amount = in2.read(bb)) != -1){
-
- inFile.write(bb,0,amount);
- System.out.println("Receiving first picture"+bb.toString());
- }
- RandomAccessFile inFile2 = new RandomAccessFile ("new04ryan.jpg","rw" ); //on creer le fichier sur le disque dur
- byte bb2[] = new byte[1024];
- int amount2;
- while((amount2 = in2.read(bb2)) != -1){
- System.out.println("Receiving second picture" );
- inFile2.write(bb2,0,amount2);
- }
- in2.close();
- inFile.close();
- t.close();
- }
- catch(IOException e){System.out.println(e);}
-
- }
- }
|
Code :
- import java.util.*;
- import java.net.*;
- import java.io.*;
- public class Sender{
- public static void main(String[] argv){
- try{
- RandomAccessFile outFile = new RandomAccessFile("04.jpg","r" ); // création du fichier en lecture
- Socket t = new Socket(argv[0],6667); //nouvelle socket pour le transfert du fichier
- OutputStream out2 = t.getOutputStream();
- byte bb[] = new byte[1024];
- int amount;
- while((amount = outFile.read(bb)) != -1){
- out2.write(bb, 0,amount);
- }
-
- outFile.close();
-
-
- byte bb2[] = new byte[1024];
- int amount2;
- RandomAccessFile outFile2 = new RandomAccessFile("02ryan.jpg","r" ); // création du fichier en lecture
- while((amount2 = outFile2.read(bb2)) != -1){
- out2.write(bb2, 0,amount2);
- }
- out2.close();
- t.close();
- }catch(IOException e){System.out.println(e);}
-
-
- }
-
- }
|
Je me doute bien qu'il faudrait avertir le recepteur du changement de fichier mais je ne sais pas vraiment comment faire...
Merci d'avance |