社区
网络编程
帖子详情
服务器如何知道客户端异常断开连接?
zero1977
2003-11-11 11:59:41
如果采用发测试包处理得话,因为不可能时刻都检测,
这样服务器知道客户端连接断开总有个延时,
怎么在很短时间内知道客户端连接断开了?
...全文
564
15
打赏
收藏
服务器如何知道客户端异常断开连接?
如果采用发测试包处理得话,因为不可能时刻都检测, 这样服务器知道客户端连接断开总有个延时, 怎么在很短时间内知道客户端连接断开了?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
15 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
sjdf
2003-12-02
打赏
举报
回复
如果这个问题很简单的话,那么对于防御SYN攻击早已有办法了。
现在有好办法么?
zoutaiqi
2003-12-02
打赏
举报
回复
自己设置定时器,每隔2s发个数据包测试对方是否还在线,然后做相应的处理,我就是这样做的,测试的效果还不错。
BlueEngine
2003-12-01
打赏
举报
回复
楼主,你可能早解决问题了,但是我还补充下吧,以方便后来的XDJM们,^_^
keepAlive并不能实时反映链路连接状况,可参考tcpip协议详解中关于tcp保活的论述.
windows2k的缺省keepalive时间为2小时,这是我试验得出的.如chenshijin(阿土)所言此值可通过注册表修改,但我不知道是哪个键值.
BlueEngine
2003-11-28
打赏
举报
回复
up.
to:chenshijin(阿土) :keep_alive设为true之后为什么还要改注册表啊,怎么改,你倒是说的明白点啊.
keep_alive机制是不是实时反映链路连接状况呢?
danfeng
2003-11-27
打赏
举报
回复
tcp可以保证在短时间内自动连接
williamxia8
2003-11-27
打赏
举报
回复
就使用心跳来检测吧,在某几个时间周期内得不到客户端的反馈信息,就认为客户端已经断开
danfeng
2003-11-26
打赏
举报
回复
如果是tcp 其中一方异常断开 另外一方send会返回错误
如果是udp 需要自己做确认机制 如果没有收到确认返回 则认为另一方异常断开
mingcedar
2003-11-26
打赏
举报
回复
我现在作的程序也遇到同样的问题。
如用发测试包的方法,测试时间设得长,会有延时。设得短,如果有很多客户相连(比如1000人),是不是会占用太多的服务器资源。
to:chenshijin(阿土) :怎样用SetSockOpt来设置keepalive属性,怎样修改注册表?能否说详细一些?
dxp
2003-11-26
打赏
举报
回复
直接看send,recv的返回值就行了吧,或者GetLastError
我顺便问一下,是不是网络意外断开后重新连接,非要重新connect才能继续传送数据啊?
connect开销比较大啊!
joinrry
2003-11-12
打赏
举报
回复
发测试包的方法不错啊,其实很多也是这样作的!
测试时间可以设置小一点啦!
zero1977
2003-11-12
打赏
举报
回复
都说了是异常断开,比如突然断电等,套接字是不会被关闭的
zero1977
2003-11-12
打赏
举报
回复
int iValue = 1;
setsockopt( sockfd, SOL_SOCKET, SO_KEEPALIVE, (char*)&iValue, sizeof(iValue) ) ;
用这个就可以吗? 该注册表什么?
突然断电,服务器也能知道吗???
chenshijin
2003-11-12
打赏
举报
回复
你在服务器端可以采用SetSockOpt来设置keepalive属性,同时修改注册表,这样出现客户端异常退出的时候,服务器端就能够知道,并且上报应用层
ljzcom
2003-11-11
打赏
举报
回复
UP
happyhuang
2003-11-11
打赏
举报
回复
客户端连接断开之后套接字会被关闭的,服务器可以通过检测套接字关闭之后的GetLastError()返回值来判断是否是客户端连接断开。
Java实现Socket长连接和短连接
Java实现Socket长连接和短连接,实现原理可参见个人博客
C#访问OPC读取数据
C#访问OPC读取数据 一般用于自动化编程
androidpn消息推送
androidpn消息推送 其中包含
客户端
服务器
端包含tomcat和jetty版本
Unity3DSocketDemo
原文地址:http://blog.csdn.net/genius840215/article/details/7411749
C# ASP.NET MVC WebSocket
用ASP.NET MVC C#语言实现WebSocket
网络编程
18,363
社区成员
64,187
社区内容
发帖
与我相关
我的任务
网络编程
VC/MFC 网络编程
复制链接
扫一扫
分享
社区描述
VC/MFC 网络编程
c++
c语言
开发语言
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章