Erreur aprés le transfert d'un fichier
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:
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 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();
}
}
} |
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 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();
}
}
} |
aprés le transfert voila l'erreur
Code:
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) |