Closed Aluem closed 1 month ago
tarscpp.util.src.tc_epoll_server.cpp中recvTcp()方法
int TC_EpollServer::Connection::recvTcp() { ... int iBytesReceived = _sock.recv((void *)buffer, BUFFER_SIZE); // while iBytesReceived > 0 //接收到数据不超过buffer,没有数据了(如果有数据,内核会再通知你) if ((size_t) iBytesReceived < BUFFER_SIZE) { break; } }
((size_t) iBytesReceived < BUFFER_SIZE)这里如果客户端发送的网络包被分批发送,也会满足该条件,此时接收到的数据应该是不完整的
((size_t) iBytesReceived < BUFFER_SIZE)
后续看到在int TC_EpollServer::Connection::parseProtocol(TC_NetWorkBuffer &rbuf)中处理了。。。
int TC_EpollServer::Connection::parseProtocol(TC_NetWorkBuffer &rbuf)
tarscpp.util.src.tc_epoll_server.cpp中recvTcp()方法
((size_t) iBytesReceived < BUFFER_SIZE)
这里如果客户端发送的网络包被分批发送,也会满足该条件,此时接收到的数据应该是不完整的