Oppure
type Tmessaggio = record .... end; ... aperta:boolean; err : longint; min:tmessaggio ... repeat aperta := recv(S, min, sizeof(Tmessaggio),0) <> -1; err :=SocketError; until aperta or (err <> EsockEINTR);
send(S, mout, sizeof(Tmessaggio),0)
recv(S, min, sizeof(Tmessaggio),0) <> -1;