PDA

View Full Version : [JAVA] Problma Socket dopo chiusura Stream


v1sc3rr4k
11-04-2012, 12:18
Salve ragazzi,

ho fatto un Server che riceve o manda file verso un Client, ogni volta che avviene un trasferimento in UP o DOWN resta in ascolto fin quando il comando non sarà "QUIT". Il mio problema è che dopo aver fatto un trasferimento se provo a chiudere gli stream (ma non la "Socket") quando provo a creare un nuovo stream per il nuovo trasferimento mi dà l'eccezzione "Socket Closed".

Perchè?? :doh:

clockover
11-04-2012, 14:15
Salve ragazzi,

ho fatto un Server che riceve o manda file verso un Client, ogni volta che avviene un trasferimento in UP o DOWN resta in ascolto fin quando il comando non sarà "QUIT". Il mio problema è che dopo aver fatto un trasferimento se provo a chiudere gli stream (ma non la "Socket") quando provo a creare un nuovo stream per il nuovo trasferimento mi dà l'eccezzione "Socket Closed".

Perchè?? :doh:

Posta il codice incriminato (indentato mi raccomando :D )

PGI-Bis
11-04-2012, 14:39
il socket si chiude quando si chiudono i suoi flussi. Se vuoi che resti vivo devi tenerli aperti (cioè non devi invocare close sui flussi). L'unica differenza tra la chiusura del socket e la chiusura dei suoi flussi è che puoi chiudere "mezzo socket" chiudendo solo l'input o l'output, mentre con socket.close li chiudi tutti e due.
Nota che non puoi riciclare un socket - cioè riaprirlo: devi reinstanziarlo se vuoi ricollegarti dopo aver chiuso i flussi.

v1sc3rr4k
11-04-2012, 19:08
Grazie per le risposte :D

Comunque il codice incriminato l'ho appena postato su un altro thread per evitare di essere OT qui :D

clockover
11-04-2012, 19:15
Grazie per le risposte :D

Comunque il codice incriminato l'ho appena postato su un altro thread per evitare di essere OT qui :D

Ormai PGI-Bis ha parlato :) tutto quello che c'è da sapere adesso si sa... e infatti io sta cosa non la sapevo :D