我在使用boost::asio::tcp::socket
时在Windows中遇到问题,我构建了一个echo服务器进程,并尝试在本地计算机中async_send
和async_receive
时,服务器将发回该消息接收到来自客户端的消息,然后在服务器进程中添加Sleep(50)以模拟消息到达时服务器可能正在做其他工作。因此,客户端可能已经发送了100000条消息,但是服务器仅收到500条消息,其余的仍在接收。
好的,这是我的问题,当我的缓冲区大小超过60000bytes(约58.59KB)时,它将失败,我调试程序并尝试寻找一些线索,我看到后面的消息将与前面的消息重叠例如,给定两个消息:“ 01234”,“ 56789”,服务器实际上将收到“ 01456789”。 但是,当大小小于该值时,回显服务器和客户端似乎非常正常,并且该过程将用完我的16GB内存,然后我看到磁盘空间正在减少,这意味着OS将某些磁盘空间用作虚拟内存。
非常感谢!!