Transférer un fichier accompagné de son nom
Bonsoir tout le monde,
je cherche un moyen pour transférer un fichier par socket accompagné de son nom pour ne pas avoir à introduire son nom à chaque fois à chaque transfert, pour l'instant voila ce que j'ai :
Envoi :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
|
try {
String Chemin = "D:\\Zest\\1.txt";
ServerSocket Servsocket = new ServerSocket(80);
File F = new File(Chemin);
String nom = F.getName(); // ici j'ai pris le nom de mon fichier.
Socket socket = Servsocket.accept();
int NOL;
byte[] MonBuffer = new byte[1024];
OutputStream OS = socket.getOutputStream();
// BufferedInputStream BIS = new BufferedInputStream(new FileInputStream(F));
BufferedInputStream enbyte = new BufferedInputStream(new FileInputStream(nom)); // ici j'ai transformé mon String en byte (je crois)
while ((NOL = enbyte.read(MonBuffer)) > 0) { // j'ai remplacé le contenu du fichier par le nom
OS.write(MonBuffer, 0, NOL);
OS.flush(); // j'envoie le nom
}
socket.close();
} catch (IOException ex) {
Logger.getLogger(Envoi.class.getName()).log(Level.SEVERE, null, ex);
} |
Réception:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
|
String Chemin = "D:\\test.txt";
String Nom = null; // ici je crée un String vide
try {
Socket socket = new Socket("127.0.0.1", 80);
int NOL;
byte[] Monbuffer = new byte[1024];
FileOutputStream FOS = new FileOutputStream(Chemin); // je le mets à la place du chemin pour qu'il reçoive les données
BufferedOutputStream OUT = new BufferedOutputStream(FOS);
InputStream IStream = socket.getInputStream();
while((NOL=IStream.read(Monbuffer)) >0){
FOS.write(Monbuffer, 0, NOL);
}
FOS.close();
socket.close();
} catch (IOException ex) {
Logger.getLogger(reception.class.getName()).log(Level.SEVERE, null, ex);
}
jTextField1.setText(Nom); // ici j'affiche le mon String dans un composant TextField. |
(je tiens à préciser que ce code à la base n'était pas mien) j'y ai fait quelques modifications. J'espère que ma demande est compréhensible, merci bien pour votre aide !