J'ai crée 2 petites classes (Client et Server) pour faire un test:  
Je voulais voir le comportement du server lors de l'arrachage du cable réseau d'un coté ou de l'autre.
voici les 2 classes :
Server.java
| Code : 
 private void listen() {        while(!stop) {     	try {             this.serverSocket = new ServerSocket(port);             System.out.println( "Ecoute de connexion admin  sur le port: "+port);       this.serverSocket.setSoTimeout(10000);       this.socket = this.serverSocket.accept();       while (true){    	byte[] b = new byte["SEND".getBytes().length];    	b = "SEND".getBytes();    	System.out.println("#################" );    	socket.getOutputStream().write(b);    	socket.getOutputStream().flush();       }	            //closeConnexion();
  	} catch(SocketException e) {  	   e.printStackTrace();  	   closeConnexion();	        } catch(Exception e) {          e.printStackTrace();       closeConnexion();         	}        }    }	public static void main(String args[]){  new Server().listen();	}
 | 
 
 
Client:
| Code : 
 private static void connectAndReceive(String address) {        boolean isConnected = false;        //connect
        while (!isConnected ){         	try {                socket = new Socket(               InetAddress.getByName(address), 6668);                isConnected  = true;            }            catch (IOException ioEx) {    System.out.println("Erreur lors de l'etablissement de la connexion avec le dispatcher : " + ioEx.toString());         	try {Thread.sleep(2000);         	}         	catch (InterruptedException iEx) {        System.out.println("Erreur lors de la temporisation : " + iEx.toString());         	}            }        }  System.out.println("connect="+isConnected);        //listen
        boolean listen =  true;        while (listen){  	try {    BufferedInputStream stream_ = new BufferedInputStream(socket.getInputStream());    byte[] bloc = new byte[4];    int nc = stream_.read(bloc, 0, bloc.length);    System.out.print(nc);    if (nc>-1)	System.out.print(new String(bloc, 0, nc));  	}  	catch (IOException ioEx) {    ioEx.printStackTrace();    listen = false;  	}        }    }public static void main(String[] args){  new Client().connectAndReceive(args[0]);	}
 | 
 
Quelque soit la version du jdk utilisée pour la compilation et l'exéction, le serveur ne détecte rien, il atrrete d'écrire sans faire d'exception, coté client, c'est pareil.
Vous savez s'il y a moyen de détecter l'arrachage de cable?
 
Merci