Erreur de lecture Socket EOFException
J'essaye à travers ce bout de code de lire d'abord un entier puis un objet.
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
| try {
this.socket = new Socket(this.IP_SEDDO_SERVER, REMOTE_PORT);
PrintWriter srv = new PrintWriter(this.socket.getOutputStream(),
true);
BufferedReader entreeSocket = new BufferedReader(
new InputStreamReader(this.socket.getInputStream()));
srv.println(FILE_REQUEST + "\n" + fichier.getName());
// lire le nombre de bloc du fichier
String ligne = entreeSocket.readLine();
int nbBloc = Integer.parseInt(ligne);
// On ouvre notre flux d'entrée
InputStream is = this.socket.getInputStream();
ObjectInputStream ois = new ObjectInputStream(is);
Hashtable<String, Set<Bloc>> listBlocs = (Hashtable<String, Set<Bloc>>) ois
.readObject();
this.blocList = listBlocs;
return nbBloc;
} catch (FileNotFoundException e1) {
e1.printStackTrace();
} catch (UnknownHostException e2) {
e2.printStackTrace();
} catch (IOException e3) {
e3.printStackTrace();
} |
Mais sur certaines machines que je teste je reçois le message d'erreur :
Code:
1 2 3 4 5
| java.io.EOFException
at java.io.ObjectInputStream$PeekInputStream.readFully(Unknown Source)
at java.io.ObjectInputStream$BlockDataInputStream.readShort(Unknown Source)
at java.io.ObjectInputStream.readStreamHeader(Unknown Source)
at java.io.ObjectInputStream.<init>(Unknown Source) |