当前位置: 代码迷 >> VC/MFC >> IOCP WSARecv回来997
  详细解决方案

IOCP WSARecv回来997

热度:186   发布时间:2016-05-02 03:28:22.0
IOCP WSARecv返回997
各位大侠,是这样的,小弟刚学习IOCP的,客户端发送10000个字符(char)的数据,而接收端每次接收的buf是1024个字符(char),循环接收的时候,WSARecv会返回997的错误码,数据会丢失一部分,为什么呀???
------解决思路----------------------
必要的时候,还得抓包。
------解决思路----------------------
997是正常值,意思就是收包操作没有立即完成,等完成的时候会在GetQueuedCompletionStatus收到通知,TCP只保证流的完整,不保证每一次IO操作的完整性,对端数次WRITE可能被一次READ读取到,这叫做粘包,对端1次WRITE可能需要服务端数次READ操作来完成,主要是取决于你的服务端吞吐量和传给API的缓冲区长度。