Ringrazio in anticipo tutti coloro che mi potranno dare qualunque tipo di suggerimento,ho un problema inerente alla classe

socket o almeno credo.

In poche parole, ho creato un sito in cui si può giocare a risiko online, il server fila liscio per un bel pò di ore, ma

ad un certo punto si blocca tutto e non riceve più messaggi dai client.

Ora ho notato che dopo 10 di minuti si riprende e prima di riprendersi mi lancia questa eccezione:


ScambiaMessaggi.run() IOException...Run() user=NOMEGIOCATORE eccezione=java.net.SocketException: Connection timed out:

Connection timed out
java.net.SocketException: Connection timed out: Connection timed out
at java.net.SocketInputStream.socketRead(Native Method)
at java.net.SocketInputStream.read(SocketInputStream. java:86)
at java.net.SocketInputStream.read(SocketInputStream. java:102)
at java.io.DataInputStream.readInt(DataInputStream.ja va:338)
at Server.ScambiaMessaggi.run(ScambiaMessaggi.java:31 )


l'istruzione a ScambiaMessaggi.java:31 è la seguente
int i = _inputStream.readInt();

e _imputStream è stata inizializzata nel costruttore della classe che riceve come paramentro il socket con la seguente

istruzione
_inputStream = new DataInputStream(_socket.getInputStream());


Inoltre,il blocco del server non è immediato ma avviene piano piano. Inizialmente pensavo fosse un errore di deadlock ma

posso assicurarvi che non lo è.
Se non sbaglio, il blocco dei thread avviene sulla classe che invia a tutti i client un messaggio...non so dirvi se il

blocco avviene quando invia il messaggio al client che in seguito mi dà poi l'eccezione di timeout

Ora io penso che il problema dipenda dal socket e soprattutto vorrei capire in quale circostanza viene lanciata

l'eccezione sul time out mi potrebbero servire i metodi (anche se non so a cosa servono) socket.setSoTimeout()?


Aggiungo infine che, leggendo con il metodo socket.getSOTimeout() mi ritorna il valore 0.

Grazie ancora