请教一下iocp发送数据的问题
在很多代码中都看到有iocp数据一次未发送完全情况的处理,,想请教一下是必须的吗?为什么会出现数据发送不完全的情况。。
有的例子里面就没有,,需要考虑这种情况吗?
[解决办法]
这个应该对你有帮助
http://www.cnblogs.com/Leejia/archive/2007/04/02/697475.html
[解决办法]
其实这个问题要从几个方面看。首先,在异常IO的设计当中,正常情况下只要一次提交,到得到完成通知时,数据已经发送完,这说明核心框架已经做了重发处理。由此可预见的是,一次Send如果没有完成(可能只是发送了其中的部分数据),那么这个时候相关联的通讯连接肯定已经发生异常。为什么会没有发送完成呢?很简单的一个问题,你通过TCP协议给对方发送10K数据,在对方收到了8K时,这个通讯链路断开了,那么你的这10K数据肯定是不会发送完的,而且由于TCP协议的确认机制,也有可能对方实际收到了10K数据,而发送端只得到了发送完成8K的确认信息。