mirror of
https://github.com/BeamMP/BeamMP-Launcher.git
synced 2025-07-01 23:46:59 +00:00
refactor tcp receive to be less weird
This commit is contained in:
parent
1260515a40
commit
0b589a74c9
@ -82,32 +82,26 @@ std::string TCPRcv(SOCKET Sock) {
|
||||
UUl("Invalid Socket");
|
||||
return "";
|
||||
}
|
||||
int32_t Header, BytesRcv = 0, Temp;
|
||||
int32_t Header, Temp;
|
||||
std::vector<char> Data(sizeof(Header));
|
||||
do {
|
||||
Temp = recv(Sock, &Data[BytesRcv], 4 - BytesRcv, 0);
|
||||
Temp = recv(Sock, Data.data(), sizeof(Header), MSG_WAITALL);
|
||||
if (!CheckBytes(Temp)) {
|
||||
UUl("Socket Closed Code 3");
|
||||
return "";
|
||||
}
|
||||
BytesRcv += Temp;
|
||||
} while (BytesRcv < 4);
|
||||
memcpy(&Header, &Data[0], sizeof(Header));
|
||||
memcpy(&Header, Data.data(), sizeof(Header));
|
||||
|
||||
if (!CheckBytes(BytesRcv)) {
|
||||
if (!CheckBytes(Temp)) {
|
||||
UUl("Socket Closed Code 4");
|
||||
return "";
|
||||
}
|
||||
Data.resize(Header);
|
||||
BytesRcv = 0;
|
||||
do {
|
||||
Temp = recv(Sock, &Data[BytesRcv], Header - BytesRcv, 0);
|
||||
|
||||
Data.resize(Header, 0);
|
||||
Temp = recv(Sock, Data.data(), Header, MSG_WAITALL);
|
||||
if (!CheckBytes(Temp)) {
|
||||
UUl("Socket Closed Code 5");
|
||||
return "";
|
||||
}
|
||||
BytesRcv += Temp;
|
||||
} while (BytesRcv < Header);
|
||||
|
||||
std::string Ret(Data.data(), Header);
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user