[Socket]probleme de transfert de fichier
Salut tout le monde;
lorsque j'execute le code client et le code serveur sur la même machine je recois le fichier, mais dans un reseau local , le fichier reçu ne s'ouvre pas (je ne reçois pas tous les paquets de ce fichier), quelqu'un peut m'aider?.
merci.
voici le code du serveur,
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
|
public class ServeurTR {
public static void main(String[] args) throws IOException, AWTException{
ServerSocket servsock = new ServerSocket(8080);
while (true) {
Socket sock = servsock.accept();
File file = new File("c:\\image.gif");
byte[] mybytearray = new byte[(int) file.length()];
BufferedInputStream bis = new BufferedInputStream(new FileInputStream(file));
PrintWriter out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(sock.getOutputStream())),true);
out.println(mybytearray.length);
out.flush();
OutputStream os = sock.getOutputStream();
bis.read(mybytearray, 0, mybytearray.length);
os.write(mybytearray, 0, mybytearray.length);
os.flush();
bis.close();
os.close();
sock.close();
}
}
} |
voici le code du client
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
|
public class ClientTR{
public static void main(String[] argv) throws Exception {
Socket sock = new Socket("127.0.0.1", 8080);
BufferedReader input = new BufferedReader(new InputStreamReader
(sock.getInputStream()));
InputStream is = sock.getInputStream();
FileOutputStream fos = new FileOutputStream("image.gif");
BufferedOutputStream bos = new BufferedOutputStream(fos);
int taille = Integer.parseInt(input.readLine());
byte[] mybytearray = new byte[taille];
is.read(mybytearray, 0, taille);
bos.write(mybytearray, 0, taille);
bos.flush();
is.close();
bos.close();
input.close();
sock.close();
}
} |