Winsock2 "Recv" liest nie alle Daten
Posted: 19 Aug 2025, 01:38
Guten Abend Jungs, < /p>
Ich habe ein kleines Problem, das ich wirklich nicht hinter mich bringen kann. Ich versuche, einen großen Datenbetrag mit Winsock2 von meinem Ubuntu-Server (auszuführen) an meinen Windows-Client übertragen.int expected_length = 0;
recv(m_Socket, (char*)&expected_length, 4, 0);
if (expected_length
send(client_sock, (const char*)&nsize, 4, 0);
int total_sent = 0;
const char* ptr = buffer.data;
while (total_sent < nsize)
{
int rest = nsize - total_sent;
int chunk = std::min(4096, rest);
int sent = send(client_sock, ptr + total_sent, chunk, 0);
if (sent < 0)
break;
std::cout
Der Server sendet alle Daten korrekt in Chunks (gesendet: 3424, Total_Sent: 1005436) < /li> the sclapt: 1005436). "erwartete_length" (1008860) < /li>
Die Empfangsschleife des Kunden startet < /li>
Nach dem ersten Aufruf von Recv ist Total_read 77380 < /li>
recv wird nie wieder zurückgegeben (kein Fehler geworfen. (Entschuldigung für den unordentlichen Code)
Ich habe ein kleines Problem, das ich wirklich nicht hinter mich bringen kann. Ich versuche, einen großen Datenbetrag mit Winsock2 von meinem Ubuntu-Server (auszuführen) an meinen Windows-Client übertragen.int expected_length = 0;
recv(m_Socket, (char*)&expected_length, 4, 0);
if (expected_length
send(client_sock, (const char*)&nsize, 4, 0);
int total_sent = 0;
const char* ptr = buffer.data;
while (total_sent < nsize)
{
int rest = nsize - total_sent;
int chunk = std::min(4096, rest);
int sent = send(client_sock, ptr + total_sent, chunk, 0);
if (sent < 0)
break;
std::cout
Der Server sendet alle Daten korrekt in Chunks (gesendet: 3424, Total_Sent: 1005436) < /li> the sclapt: 1005436). "erwartete_length" (1008860) < /li>
Die Empfangsschleife des Kunden startet < /li>
Nach dem ersten Aufruf von Recv ist Total_read 77380 < /li>
recv wird nie wieder zurückgegeben (kein Fehler geworfen. (Entschuldigung für den unordentlichen Code)