Dunque, quando creo il pacchetto da inviare inserisco "in testa" un intero che corrisponde alla lunghezza del messaggio, e poi tutto il resto.
Quando devo prelevarlo, faccio una prima chiamata che mi legge sizeof(int) caratteri, questa sarà la lunghezza del messaggio. Poi un ciclo:

codice:
len = read(socket, buffer, sizeof(int) ); 
while(len != 0){
len -= read(socket, buffer, sizeof(char) );
}
All'uscita dal ciclo buffer conterrà il messaggio. Te lo scrivo per conferma, ti ringrazio per la tua disponibilità non avevo capito cosa intendessi!