Bonjour tout le monde
voila mon probleme le code suivant permet d'envoyé un fichier via les sockets, l'envoie se passe avec succé mais le programme affiche une erreur aprés le transfert
voila mon code
client:
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
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41 package jeudi; import java.net.*; import java.io.*; class Client{ public static void main (String[] args){ DataInputStream input; BufferedInputStream bis; BufferedOutputStream bos; int in; byte[] byteArray; try{ Socket client = new Socket("127.0.0.1", 8585); input = new DataInputStream (client.getInputStream() ); System.out.println("Server message: " +input.readUTF() ); bis = new BufferedInputStream(new FileInputStream("c:\\livre.pdf")); bos = new BufferedOutputStream(client.getOutputStream()); byteArray = new byte[8192]; while ((in = bis.read(byteArray)) != -1){ bos.write(byteArray,0,in); } bis.close(); bos.close(); System.out.println("Server message: " +input.readUTF() ); } catch ( Exception e ) { e.printStackTrace(); } } }
aprés le transfert voila l'erreur
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
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43 package jeudi; import java.net.*; import java.io.*; class Server{ public static void main (String[] args){ ServerSocket server; Socket connection; DataOutputStream output; BufferedInputStream bis; BufferedOutputStream bos; byte[] receivedData; int in; try{ server = new ServerSocket( 8585 ); while ( true ) { connection = server.accept(); output = new DataOutputStream (connection.getOutputStream() ); output.writeUTF( " En cours" ); receivedData = new byte[1024]; bis = new BufferedInputStream(connection.getInputStream()); bos = new BufferedOutputStream(new FileOutputStream("d:\\avatar.pdf")); while ((in = bis.read(receivedData)) != -1){ bos.write(receivedData,0,in); } bos.close(); output.writeUTF( " Terminé" ); } } catch (IOException e ) { e.printStackTrace(); } } }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 Server message: En cours java.net.SocketException: socket closed at java.net.SocketInputStream.socketRead0(Native Method) at java.net.SocketInputStream.read(Unknown Source) at java.net.SocketInputStream.read(Unknown Source) at java.io.DataInputStream.readUnsignedShort(Unknown Source) at java.io.DataInputStream.readUTF(Unknown Source) at java.io.DataInputStream.readUTF(Unknown Source) at jeudi.Client.main(Client.java:32)
Partager