我将 Winsock2 与重叠 I/O 结合使用。这意味着我使用 WSAOVERLAPPED 结构调用 WSARecv,稍后我使用 WSAWaitForMultipleEvents 等待数据。
我做了一个奇怪的观察,当我用调试器停止它时,我似乎丢失了发送到我的应用程序的所有数据。我认为这些数据会堆积在操作系统的某个地方,然后在下一次调用 WSARecv 时传送。
我的假设是错误的吗?
最佳答案
UDP 还是 TCP?
我假设您在每次调用时使用单独的 OVERLAPPED 结构,并在每个结构中使用单独的事件。
请记住,将重叠的 I/O 与事件一起使用并不是特别可扩展的,简单地将套接字与 I/O 完成端口相关联并完全跳过整个事件要容易得多。
关于c++ - 在调试器中时 Winsock2 数据丢失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6307695/