当网线断了以后,连接会自动关闭吗?

sunnysab 2012-09-05 12:36:10
有两台电脑已经建立连接、交互。
1.网线断了以后假如A电脑正在调用recv,那么它接收不到信号会自动关闭这个链接等待下一个连接还是停留在recv上?
2.如果另一台电脑的程序关了呢?
...全文
384 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
miniget001dotcom 2012-09-11
  • 打赏
  • 举报
回复
tcp的实现缺省自己有保活心跳,如果是阻塞的socket超过一段时间后原先阻塞在socket上的操作会出错,如果是非阻塞socket,select之类会发现socket上出错
xun_jing 2012-09-07
  • 打赏
  • 举报
回复
拔掉网线的话,recv会返回,但延时比较大。建议增加检测用的心跳包,以提高效率
ChinaTek 2012-09-06
  • 打赏
  • 举报
回复
BOOL GSrvBase::SetKeepAlive(int nWaitSec, int nNum)
{
DWORD dwBytes = 0;
DWORD dwError = 0L ;
tcp_keepalive sKA_Settings = {0}, sReturned = {0} ;
sKA_Settings.onoff = 1 ;
sKA_Settings.keepalivetime = nWaitSec * 1000 ; // Keep Alive in 5.5 sec.
sKA_Settings.keepaliveinterval = nNum * 1000 ; // Resend if No-Reply
if (WSAIoctl(m_ListenNode.m_hSocket, SIO_KEEPALIVE_VALS, &sKA_Settings,
sizeof(sKA_Settings), &sReturned, sizeof(sReturned), &dwBytes,
NULL, NULL) != 0)
{
return FALSE;
}
return TRUE;
}
wencan2012 2012-09-06
  • 打赏
  • 举报
回复
在阻塞模式中
recv和send
返回0,表示连接关闭
返回SOCKET_ERROR,表示连接失败
sunnysab 2012-09-06
  • 打赏
  • 举报
回复
顶啊,急需答案
youngwolf 2012-09-05
  • 打赏
  • 举报
回复
如果你在非阻塞的套接字上recv,则无论如何马上返回。
如果你在阻塞的套接字上recv,分两种情况,一种是正常退出(就是对方正常关闭了套接字,已方也收到了相应的关闭消息),那么recv会返回,接收到的数据量为0;如果对方非常退出(死机、拨网线等),recv会被阻塞住,直到超时,这个过程可能是很长的。
sunnysab 2012-09-05
  • 打赏
  • 举报
回复
什么是“mini项目”?没听说过,我只是了解一下,日后一定会用到。最近想做这方面的程序,也要学一学
Gloveing 2012-09-05
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

如果你在非阻塞的套接字上recv,则无论如何马上返回。
如果你在阻塞的套接字上recv,分两种情况,一种是正常退出(就是对方正常关闭了套接字,已方也收到了相应的关闭消息),那么recv会返回,接收到的数据量为0;如果对方非常退出(死机、拨网线等),recv会被阻塞住,直到超时,这个过程可能是很长的。
[/Quote]
++
对于阻塞套接字,正常退出会引起TCP的4次握手关闭TCP连接
如果对方异常退出或者断线,那么会保持TIME_WAIT 状态,等待 2MSL 之后释放连接,(MSL的值在一般的实现中取30s)
Tishion 2012-09-05
  • 打赏
  • 举报
回复
又是一个做mini项目的吧?
sunnysab 2012-09-05
  • 打赏
  • 举报
回复
是WinSocket
sunnysab 2012-09-05
  • 打赏
  • 举报
回复
SOCKET2.0中怎么设置非阻塞?
华科科技大学锐捷平台有线网登陆 FAQ 1、手机和电脑使用什么信号比较好? 答:推荐使用HUST_WIRELESS_AUTO,其次是HUST_WIRELESS的无感知认证。 2、MAC电脑连接HUST_WIRELESS无法弹出认证页面如何处理? 答:首先要确保无线网卡的IP和DNS都是自动获取;之后开网络,清理浏览器的Cookie后,尝试重新连接。 3、无线网频繁掉线如何处理? 答:无线网掉线的原因很多: a、无线网若是一段时间没有任何流量,判定用户下线,这时需要重新认证连接; b、通常情况下,学生账号同一时刻,只能有一个设备在线,若是两个设备相互抢占,导致频繁掉线,这时关闭一个设备校园网连接; c、教工账号同一时刻可以3台设备在线,超限也被强制下线; d、更换认证方式,使用HUST_WIRELESS_AUTO或无感知认证; e、上述方式无法解决及时拨打报修电话。 4、手机在连接HUST_WIRELESS_AUTO的时候,Wi-Fi图标显示满格信号,但是微信是“未连接”状态,该怎么处理? 答:关闭手机Wi-Fi再打开,重新连接HUST_WIRELESS_AUTO。 5、笔记本连接无线频繁掉线,提示用户名或密码不匹配,重连能连上,该如何处理? 答:这是由于(或者是安装的Wi-Fi热点软件)勾选了“启用此网络的IEEE 802.1x身份验证”导致的环境冲突。处理方法:在“本地连接(或者以太网)”的属性的“身份验证”页中,取消“启用此网络的IEEE 802.1x身份验证”即可。 6、有时走在路上连上了校园无线网但无法正常使用,该怎么办? 答:无线网技术主要适用于室内,即使部署了无线网的室外区域也经常因为各种原因导致各种掉线或信号弱,此时无线网信号是部署有无线网的楼栋飘出的信号,建议此时关闭无线网络,到室内部署有无线网的区域进行无线上网。 7、东1/6/7/9-13舍、西8/9舍在电之后恢复来电,宿舍有线网(实际是由无线AP上分出的有线)连接不上该怎么办? 答:将宿舍所有电脑上连接网线全部拔下,等待5分钟,再将网线插上即可正常使用,如此方法无效,请及时报修。

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧