Compare commits

...

2 Commits

+10 -7
View File
@@ -76,7 +76,7 @@ size_t TCPClient::readBuffer()
memcpy(&sizeOfPacket, m_ReadBuffer, sizeof(int)); memcpy(&sizeOfPacket, m_ReadBuffer, sizeof(int));
if (sizeOfPacket > m_Socket->available()) { if (sizeOfPacket > m_Socket->available()) {
LOG_WARNING("TCPClient::readBuffer(): We haven't got the whole packet yet."); LOG_WARNING("TCPClient::readBuffer(): We haven't got the whole packet yet.");
return 0; //return 0;
} }
// if the buffer is to small increase the size of it // if the buffer is to small increase the size of it
// TODO if message is huge 1 time the buffer will not decrease. // TODO if message is huge 1 time the buffer will not decrease.
@@ -85,12 +85,15 @@ size_t TCPClient::readBuffer()
m_ReadBuffer = new char[sizeOfPacket]; m_ReadBuffer = new char[sizeOfPacket];
m_BufferSize = sizeOfPacket; m_BufferSize = sizeOfPacket;
} }
// Read the rest of the message size_t bytesReceived = 0;
size_t bytesReceived = m_Socket->read_some(boost while (sizeOfPacket > bytesReceived) {
::asio::buffer((void*)(m_ReadBuffer), sizeOfPacket), // Read the rest of the message
error); bytesReceived += m_Socket->read_some(boost
if (error) { ::asio::buffer((void*)(m_ReadBuffer), sizeOfPacket - bytesReceived),
//LOG_ERROR("receive: %s", error.message().c_str()); error);
if (error) {
//LOG_ERROR("receive: %s", error.message().c_str());
}
} }
if (sizeOfPacket > 1000000) if (sizeOfPacket > 1000000)
LOG_WARNING("The packets received are bigger than 1MB"); LOG_WARNING("The packets received are bigger than 1MB");