我需要知道使用IOCP时WSASend()
和WSARecv()
的错误代码(WSA_IO_PENDING
除外)是否意味着套接字已断开连接。大多数错误代码都很明显,但我不确定以下内容:
WSASend()
的错误代码:
WSAEINPROGRESS
WSAENOBUFS
WSA_OPERATION_ABORTED
WSARecv()
的错误代码:
WSAEFAULT
WSAEINPROGRESS
答案 0 :(得分:6)
不,并非所有错误代码都是因为套接字断开连接。
我实际上不确定如何回答这个问题而不会喊出“不,请阅读文档!”。
例如,WSAEINPROGRESS
表示正在进行另一个阻塞操作 - 因此当前的阻塞操作已中止。
WSAEINPROGRESS
- 10036正在进行中的操作。
当前正在执行阻止操作。 Windows套接字只允许单个阻塞操作 - 每个任务或线程 - 未完成,如果进行任何其他函数调用(无论它是否引用该套接字或任何其他套接字),该函数将失败并显示WSAEINPROGRESS。