PDA

View Full Version : [JAVA] sincronizzazione socket


blackskop
14-09-2008, 15:29
Ciao a tutti. Ho un thread ServerSocket che è in accept. Nel momento in cui un Socket client si connette, invia un messaggio sull'outputstream del socket. Il server nel frattempo crea un DataInputStream prendendo l'InputStream del socket e si mette in attesa (con una read su DataInputStream) dell'arrivo del messaggio inviato dal client. Il problema è che il client è più veloce del server nell'inviare il messaggio, probabilmente quando il messaggio è gia arrivato al ServerSocket, il server ancora non aggancia l'InputStream al DataInputStream e nel momento in cui va a leggere quest'ultimo, resta in attesa perchè probabilmente il DataInputStream è gia vuoto. Ho risolto con una sleep lato client prima dell'invio del messaggio ma mi sembra una soluzione stupida. Non vorrei fosse l'unica...

71104
14-09-2008, 22:27
l'InputStream mica si svuota da solo eh... fai fare al client un flush sull'OutputStream.