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");
|
UUl("Invalid Socket");
|
||||||
return "";
|
return "";
|
||||||
}
|
}
|
||||||
int32_t Header, BytesRcv = 0, Temp;
|
int32_t Header, Temp;
|
||||||
std::vector<char> Data(sizeof(Header));
|
std::vector<char> Data(sizeof(Header));
|
||||||
do {
|
Temp = recv(Sock, Data.data(), sizeof(Header), MSG_WAITALL);
|
||||||
Temp = recv(Sock, &Data[BytesRcv], 4 - BytesRcv, 0);
|
if (!CheckBytes(Temp)) {
|
||||||
if (!CheckBytes(Temp)) {
|
UUl("Socket Closed Code 3");
|
||||||
UUl("Socket Closed Code 3");
|
return "";
|
||||||
return "";
|
}
|
||||||
}
|
memcpy(&Header, Data.data(), sizeof(Header));
|
||||||
BytesRcv += Temp;
|
|
||||||
} while (BytesRcv < 4);
|
|
||||||
memcpy(&Header, &Data[0], sizeof(Header));
|
|
||||||
|
|
||||||
if (!CheckBytes(BytesRcv)) {
|
if (!CheckBytes(Temp)) {
|
||||||
UUl("Socket Closed Code 4");
|
UUl("Socket Closed Code 4");
|
||||||
return "";
|
return "";
|
||||||
}
|
}
|
||||||
Data.resize(Header);
|
|
||||||
BytesRcv = 0;
|
Data.resize(Header, 0);
|
||||||
do {
|
Temp = recv(Sock, Data.data(), Header, MSG_WAITALL);
|
||||||
Temp = recv(Sock, &Data[BytesRcv], Header - BytesRcv, 0);
|
if (!CheckBytes(Temp)) {
|
||||||
if (!CheckBytes(Temp)) {
|
UUl("Socket Closed Code 5");
|
||||||
UUl("Socket Closed Code 5");
|
return "";
|
||||||
return "";
|
}
|
||||||
}
|
|
||||||
BytesRcv += Temp;
|
|
||||||
} while (BytesRcv < Header);
|
|
||||||
|
|
||||||
std::string Ret(Data.data(), Header);
|
std::string Ret(Data.data(), Header);
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user