社区
网络编程
帖子详情
服务器如何知道客户端异常断开连接?
zero1977
2003-11-11 11:59:41
如果采用发测试包处理得话,因为不可能时刻都检测,
这样服务器知道客户端连接断开总有个延时,
怎么在很短时间内知道客户端连接断开了?
...全文
612
15
打赏
收藏
服务器如何知道客户端异常断开连接?
如果采用发测试包处理得话,因为不可能时刻都检测, 这样服务器知道客户端连接断开总有个延时, 怎么在很短时间内知道客户端连接断开了?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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 nio 服务端如何
知道
客户端
断开连接
本文介绍了一种使用Java NIO检测
客户端
断开连接
的方法,并演示了如何在
客户端
断开后通知
服务器
,进而广播给其他
客户端
。通过在读操作中捕获
异常
,
服务器
能够及时响应并采取相应措施。
客户端
突然
断开连接
本文分析
客户端
突然
断开连接
时
服务器
的行为,涵盖正常与
异常
断连下recv()的返回值及处理方式;解释recv函数flags参数的作用与非阻塞模式实现;阐明多进程模型中父子进程关闭套接字的必要性以防资源泄漏;并对比多进程、多线程与I/O多路复用三种并发处理机制的区别。
TCP
客户端
判断与服务端
断开连接
的几种方法
博客介绍了TCP
客户端
判断与服务端
断开连接
的几种方法,包括epoll、read方式检测、keeplive方式检测、自定义心跳包方式检测和getsockopt。其中epoll有事件触发机制但检测有局限,read和自定义心跳包方式通用但有延时且增加
服务器
负荷。
java 断开tcp连接_处理TCP
客户端
断开连接
博主在运行一个TCP
服务器
,每当
客户端
断开连接
时,
服务器
会抛出NullPointerException。问题出现在BufferedReader的readLine()方法上,当
客户端
断开连接
时,输入流可能变为null,导致
异常
。博主希望了解
客户端
断开连接
时的实际过程,并找到适当地捕获和处理该
异常
的方法。
java socket
客户端
断开连接
_java中判断socket
服务器
端是否
断开连接
在Java开发中,如何判断远程
服务器
是否断开Socket连接是一个常见问题。使用socket类的isClosed()等相关方法只能检查本地状态,无法准确判断远程状态。通过sendUrgentData方法可以发送一个字节数据,若对方未打开SO_OOBINLINE属性,可用来检测连接状态。此外,可以尝试通过ping命令检查网络连接,但这种方法无法判断
客户端
是否在线。在处理网络编程时,
异常
处理能捕获到
客户端
异常
退出的情况。
网络编程
18,357
社区成员
64,165
社区内容
发帖
与我相关
我的任务
网络编程
VC/MFC 网络编程
复制链接
扫一扫
分享
社区描述
VC/MFC 网络编程
c++
c语言
开发语言
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章