View Single Post
Old 09-07-2014, 16:40   #69
aeroxr1
Senior Member
 
Iscritto dal: Mar 2006
Messaggi: 2056
Quote:
Originariamente inviato da WarDuck Guarda i messaggi
Questo è inevitabile, a meno di non usare socket non bloccanti.

Se ti aspetti di leggere 4 bytes, dovrai per forza aspettare che arrivino .
QUel problema l'ho risolto con gli stati

3 stati :
stato 0 -> attesa comando
stato 1 -> attesa lunghezza dati
stato 2 -> attesa dato

Ogni client ha una struttura e in essa è presente una variabile stato ultimo dato letto e un buffer, e da uno stato a l'altro ci va solo quando ha finito di fare la lettura. Così nel frattempo che il determinato socket non ha i dati disponibile la select riprende il controllo e può gestire le altre connessioni.

Mi manca di capire se ho gestito in maniera corretta i buffer. Che in locale è difficile capirlo

Ultima modifica di aeroxr1 : 09-07-2014 alle 16:50.
aeroxr1 è offline   Rispondi citando il messaggio o parte di esso