首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

手工断网后 send返回值竟为发送顺利!

2013-07-01 
手工断网后 send返回值竟为发送成功!?小弟自己尝试书写一个TCP客户端、服务器端通信例子。编译完成后运行一

手工断网后 send返回值竟为发送成功!?
小弟自己尝试书写一个TCP客户端、服务器端通信例子。编译完成后运行一切正常。突发奇想想看看断网后send会返回何种错误,是否如同msdn所述(一切都要经过自己确认记忆才深嘛)。
connect连接正常后,断点调试暂停运行,在send需要发送数据之前,手工拔掉网线后,继续执行send发送数据,本以为会返回SOCKET_ERROR,但事实是send返回值为发送缓冲区总字节(意味发送成功)。 
以下为实际情况截图:
第一步:
断点暂停执行在send发送数据前;
手工断网后 send返回值竟为发送顺利!

第二步:
手工拔掉网线;
手工断网后 send返回值竟为发送顺利!
手工断网后 send返回值竟为发送顺利!

第三步:
执行send发送。
手工断网后 send返回值竟为发送顺利!


小弟不解,请各位大大围观解析下手工断网后 send返回值竟为发送顺利!

假定本地地址192.168.1.100
假如你拔掉本地网线,你无法在用到这个ip地址,对c程序来说,拔网线基本等同禁用
[解决办法]
所以才需要有心跳包嘛。
[解决办法]
把这个 SO_SNDBUF 缓冲大小设置为 0 

热点排行