package fr.univ.lyon1.client; import java.io.IOException; import java.io.ObjectInputStream; import java.net.Socket; import java.net.SocketException; public class ClientReceive implements Runnable { private final Client client; private ObjectInputStream in; private final Socket socket; public ClientReceive(Client client, Socket socket) { this.client = client; this.socket = socket; } @Override public void run() { try { in = client.getIn(); } catch (IOException e) { e.printStackTrace(); return; } while(true) { Object data; try { data = in.readObject(); } catch (ClassNotFoundException|IOException e) { if (e instanceof SocketException) { System.err.println("Connexion closed"); break; } System.err.println("Fail to read object !"); e.printStackTrace(); try { Thread.sleep(1000); } catch (InterruptedException ex) { break; } continue; } if (data == null) break; this.client.action(data); } try { client.disconnectedServer(); } catch (IOException e) { System.err.println("Fail to disconnect !"); e.printStackTrace(); } } }