使用 IOCP 时,如果我调用WSASend()
假设有 2 KB 的数据。当我收到完成通知时,此完成通知是否表明整个 2 KB 已发送,或者可能有一些字节未发送?
在正常情况下,是的,只要套接字使用重叠 I/O,您的完成就会收到整个 2 KB 已发送的通知。
唯一可能返回小于发送数据大小的情况是连接在发送过程中终止;在这种情况下,它返回发送的部分字节数。
如果不使用重叠 I/O,并且传输缓冲区没有足够的空间来接收整个写入,则它可能会返回部分写入。
根据我的经验,这种情况很少被处理,因为被终止的连接通常会调用一些其他错误处理,并且您很少可以对发送的字节数做任何有用的事情。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)