View Full Version : [C] Socket: comunicazione tra processi
noodles83
18-09-2007, 17:51
Sto usando delle socket per la comunicazione tra processi multithreads in esecuzione sulla stessa macchina.
Ho dei dubbi che vorrei potermi chiarire con il vostro aiuto...
Quando un processo server scrive sulla socket e subito dopo termina, il processo client è in grado di poter leggere lo stesso o viene generato un errore in lettura?
noodles83
19-09-2007, 09:23
ho letto che la read() eseguita dal client restituirebbe un EOF perche' lo scrittore se ne e' andato... ma non capisco se cmq il client riesce a leggere lo stesso il buffer oppure lo trova vuoto... :confused:
ho letto che la read() eseguita dal client restituirebbe un EOF perche' lo scrittore se ne e' andato... ma non capisco se cmq il client riesce a leggere lo stesso il buffer oppure lo trova vuoto... :confused:
si il pacchetto arriva al client e poi, dato che il server è staccato la prossima read del client riceve un errore che bisogna gestire.
Non c'è un modo di sapere se il server è bloccato oppure si è sconnesso ma si usa fare che se dopo un tot di tempo che non arrivano pacchetti dal server il client si disconnette.
trallallero
19-09-2007, 09:47
la read() ? per i socket usa recv()
trallallero
19-09-2007, 09:49
Non c'è un modo di sapere se il server è bloccato oppure si è sconnesso ma si usa fare che se dopo un tot di tempo che non arrivano pacchetti dal server il client si disconnette.
infatti e´ consigliabile il flag O_NONBLOCK
noodles83
19-09-2007, 14:19
si il pacchetto arriva al client e poi, dato che il server è staccato la prossima read del client riceve un errore che bisogna gestire.
mmm... pensavo che ricevesse le'errore subito, perche' lo riceve al prossimo?
la mia situazione e' questa:
SERVER: manda il pkt.
SERVER: termina
CLIENT: esegue la read() quando il server e' gia terminato.
io pensavo che quando il client esegue questa la read(), essa restituisce EOF subito, non allla prossima e il clinet riesce lo stesso a leggere cmq il pkt.
ho capito male?
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.