使用IOCP时,如果我拨打WSASend()
,请说出2 KB的数据。当我收到完成通知时,此完成通知是否表示已发送整个2 KB,或者可能有一些未发送的字节?
答案 0 :(得分:1)
在正常情况下,是的,只要套接字使用重叠的I / O,您的完成将收到发送整个2 KB的通知。
唯一可能返回小于发送数据大小的情况是在发送过程中终止连接时;在这种情况下,它返回发送的部分字节数。
如果它没有使用重叠的I / O,如果传输缓冲区没有足够的空间来接收整个写入,它可以返回部分写入。
根据我的经验,很少处理这种情况,因为终止连接通常会调用其他一些错误处理,并且很少有任何有用的事情可以用于发送的字节数。