Malloc dynamisch mit recv
-
unbedingt den return wert von recv(..) prüfen.
Simon
-
habe es:
bool netserver::getdata(Data data)
{
const int BUF = 4096;
char temp[BUF] = { 0 };
if(recv(serversocket,temp, BUF,0 ) ==0) {return 1;}
else
data.push_back(temp);
cout << "getdata: " << temp <<endl;
return 0;
}
-
Und die anzahl gelesener bytes.
Benutzt Du eigentlich UDP oder TCP?
Simon
-
tcp
-
int ret = recv(blah); if( ret > 0 ) continue; else if( ret == 0 ) finished(); else if( ret < 0 ) error();
-
else if( ret < 0 ) error();
Ein
else
würde hier reichen.
-
Nexus schrieb:
else if( ret < 0 ) error();
Ein
else
würde hier reichen.wird der compiler auch merken
-
unskilled schrieb:
wird der compiler auch merken
Jaja, sich immer auf Optimierungen verlassen und nicht mehr selber denken. Schade nur, wenn dann eine erwartete Optimierung nicht eintritt.
-
Nexus schrieb:
unskilled schrieb:
wird der compiler auch merken
Jaja, sich immer auf Optimierungen verlassen und nicht mehr selber denken. Schade nur, wenn dann eine erwartete Optimierung nicht eintritt.
if( ret > 0 ) continue; else if( ret == 0 ) finished(); else if( ret < 0 ) error();
sollte doch eh nur ein vergleich zwischen ret und 0 sein und dann jmp_bigger, jmp_equal bzw. jmp_lower?!
bin jz nur zu faul, das auszuprobieren ^^bb
-
Nexus schrieb:
else if( ret < 0 ) error();
Ein
else
würde hier reichen.Schon klar - war ja auch nur "copy + pasted"
-
unskilled schrieb:
Nexus schrieb:
unskilled schrieb:
wird der compiler auch merken
Jaja, sich immer auf Optimierungen verlassen und nicht mehr selber denken. Schade nur, wenn dann eine erwartete Optimierung nicht eintritt.
if( ret > 0 ) continue; else if( ret == 0 ) finished(); else if( ret < 0 ) error();
sollte doch eh nur ein vergleich zwischen ret und 0 sein und dann jmp_bigger, jmp_equal bzw. jmp_lower?!
bin jz nur zu faul, das auszuprobieren ^^bb
Wahrscheinlich:
ja
je
und ...