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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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(); } }
Partager