c++ - CAsyncSocket receive()返回值

标签 c++ mfc winsock

所以,文档说:

http://msdn.microsoft.com/zh-cn/library/ct7d990b(v=VS.80).aspx

“Receive 返回接收到的字节数。如果连接已关闭,则返回 0。”

如果函数没有阻塞,如果只是没有数据怎么办?

如何确定返回 0 是因为没有数据还是因为断开连接?

最佳答案

如果没有数据,函数将永远不会返回 0,相反,它会返回 SOCKET_ERRORGetLastError() == WSAEWOULDBLOCK

关于c++ - CAsyncSocket receive()返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8141965/

相关文章:

c++ - 获取进程图标 mfc C++

sockets - 同一台 PC 上多个进程的 UDP 广播性能不佳

c++ - 关于 "distinct addresses"的规则是否适用于 new 创建的对象?

c++ - 在 C++ 中提取另一个泛型类型的泛型类型

Python C API : Access Violation when trying example module with MSVC

sockets - 使用GetQueuedCompletionStatus和ERROR_MORE_DATA的套接字

VBA 与 WinSock2 : send() sends wrong data

c++ - 使用 g++ 编译 C++ 源代码时的 VLA

c++ - Windows 7 中的 GDI 加速/绘制到内存位图

c++ - 为什么我的鼠标光标坐标突然缩放?