永发信息网

如何判断客户端SOCKET已经断开连接

答案:2  悬赏:10  手机版
解决时间 2021-03-22 20:59
如何判断客户端SOCKET已经断开连接
最佳答案
你可以根据服务器收到的数据的长度来判断,如果服务器收到的数据长度是0,那么意味着你的客户端程序已经断开了连接。从TCP/IP协议栈的角度来说,就是客户端程序关闭了自己写的这一半连接,向服务器发出了一个FIN。这涉及到TCP的状态迁移,关于这方面的知识,建议你看一下Richard Stevens先生的《TCP/IP 详解》卷一和《Unix网络编程》卷一,上面有详细的解释。

关于你的第二个问题,建议你仔细看一下自己的服务器程序代码。服务器程序首先要建立一个监听socket,当有客户端连接上来时,服务器会在一个新socket上接受客户端连接。所以并不存在“乱”的问题。关于这个问题同样推荐你看上面的两本关于网络编程的经典著作。
全部回答
1.当recv返回值为0是表示对方已经正常(msdn说是完美的)的断开连接. 2.当recv返回socket_error时,说明对方已经断开连接,但是可能是非正常断开(断网或者客户端进程结束).
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
会计如何取得老板们的信任
描写小孩玩沙子的诗句,形容孩子很开心的句子
水深60米鲤鱼在几米
语文实践活动。(7分)【活动主题】某校准备
目前各县扶贫工作队员存在什么问题
妇女之友杂志社地址在什么地方,想过去办事
龙水山大酒楼怎么样
找一首歌,歌词吧嗒吧嗒吧嗒嘣,跟我来跳舞,
下列离子方程式正确的是A.氯气溶于水:Cl2+H2
从东莞东汽车站坐汽车到惠州要多久?票价多少
已知一次函数y=kx+b的图象经过点(-1,-5),
戴尔电脑15-7572-1745G中15是什么意思
波不是一种物质吗?
二十一世纪二十年代最有潜力的行业是哪些行业
上打比这个地址在什么地方,我要处理点事
推荐资讯
文玩核桃脐敢去掉吗
米迦乐地址在什么地方,想过去办事
联通卡开彩铃怎么开?????
益诚餐料配送中心地址有知道的么?有点事想过
应该是彩金的,爱心图案,哪位大神知道这个项
javascript在客户端应用方面的主要思想
Many students say that they are willing to
1920年,首都遭到外国干涉军占领的国家是A.伊
冰箱初次使用为什么要等两小时
同学说要转学了 怎么缓解悲伤气氛
太阳为什么日出时大,日中时小
Foxpro中将数值转换成字符的函数是什么
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?