社区
网络编程
帖子详情
Socket瞬断时间设置,100分
lzzqqq
2005-12-06 02:37:55
前一段时间给人家做了个类似QQ的聊天软件.其中涉及到一个客户端与服务端的断开连接问题(TCP连接),一个是程序主动断开连接属于正常断开,一个是意外断开连接(如网线断开,交换机掉电,网络故障等),我实际测试了一下如果将网线拔掉然后迅速再插上,这时间客户端和服务端的Socket连接并不断开,好象收不到断开事件.但如果将网线拔掉的时间长一些,就可以收到断开事件.不知道这个断开的判断是以多长时间为依据,是否能人为地设置它的大小?(我想设置得时间长一些为断开)
...全文
243
7
打赏
收藏
Socket瞬断时间设置,100分
前一段时间给人家做了个类似QQ的聊天软件.其中涉及到一个客户端与服务端的断开连接问题(TCP连接),一个是程序主动断开连接属于正常断开,一个是意外断开连接(如网线断开,交换机掉电,网络故障等),我实际测试了一下如果将网线拔掉然后迅速再插上,这时间客户端和服务端的Socket连接并不断开,好象收不到断开事件.但如果将网线拔掉的时间长一些,就可以收到断开事件.不知道这个断开的判断是以多长时间为依据,是否能人为地设置它的大小?(我想设置得时间长一些为断开)
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
lzzqqq
2005-12-08
打赏
举报
回复
谢谢楼上的兄弟!
freemme
2005-12-07
打赏
举报
回复
在win2000以上版本可以针对每个socket用setsockopt设置SO_KEEPALIVE的时间间隔
hjunxu
2005-12-07
打赏
举报
回复
可以自己做实验,抓包看看。
lzzqqq
2005-12-07
打赏
举报
回复
有没有类似的代码粘出来看看啊?
hjunxu
2005-12-06
打赏
举报
回复
超时重传时间间隔为1.5,3,6,12,24,48,和多个64,大约9分钟。
但一般操作系统设的好像是2分左右。
hjunxu
2005-12-06
打赏
举报
回复
据tcp/ip详解说的,如果设了保活,那么每隔75秒发一个保活包,发10次。为750秒,6分半的样子,不过各个操作系统地实现会不同。
hjunxu
2005-12-06
打赏
举报
回复
tcp本来就有超时机制,也会有重发机制。
网线被拔的情况还真没有做过这样的实验。
socket
网络异常断开
那网络异常断开原因主要有那些呢?归纳起来主要有以下两种: 1、客户端程序异常。 对于这种情况,我们很好处理,因为客户端程序异常退出会在服务端引发ConnectionReset的
Socket
异常(就是WinSock2中的
100
54异常)。只要在服务端处理这个异常就可以了。 2、网络链路异常。 如:网线拔出、交换机掉电、客户端机器掉电。当出现这些情况的时候服务端不会出现...
(精)java.sql.SQLException: No more data to read from
socket
dbcp (Oracle)重新链接的问题 - Cause: java.sql.SQLException: No more data to read from
socket
老是出现这个No more data to read from
socket
问题(ibatis+spring)。该异常通常是因为使用了连接池,当从连接池取得的connection失效或者超时的时候,使用这个连接来进行数据库操作就会
java.sql.SQLException: No more data to read from
socket
dbcp (Oracle)重新链接的问题 - Cause: java.sql.SQLException: No more data to read from
socket
老是出现这个No more data to read from
socket
问题(ibatis+spring)。 该异常通常是因为使用了连接池,当从连接池取得的connection失效或者超时的时候,使用这个连接来...
No more data to read from
socket
问题
分
析
1.问题描述 程序在测试环境和生产环境运行都没有问题,但生产数据库的数据出了问题,排查服务器日志发现抛出以下异常信息(截选): [2021-07-07 17:32:25][ERROR][PlatformMappingExceptionResolver.java Line:27 (doResolveException)] org.springframework.dao.RecoverableDataAccessException: ### Error querying database....
拣点芝麻:dbcp (Oracle)重新链接的问题 - Cause: java.sql.SQLException: No more data to read from
socket
之前用c3p0 做的心跳,这次改成了dbcp做心跳,老是出现这个No more data to read from
socket
问题(ibatis+spring)。 该异常通常是因为使用了连接池,当从连接池取得的connection失效或者超时的时候,使用这个连接来进行数据库操作就会抛出以上异常。 解决方法就是让数据库连接池在给你返回connection之前,检查该connnection是否
网络编程
18,356
社区成员
64,214
社区内容
发帖
与我相关
我的任务
网络编程
VC/MFC 网络编程
复制链接
扫一扫
分享
社区描述
VC/MFC 网络编程
c++
c语言
开发语言
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章