社区
网络编程
帖子详情
服务器端的TCP如果长时间没有通讯,可以自动断开吗?
亚细亚
2010-03-03 12:21:34
如题!
...全文
1979
11
打赏
收藏
服务器端的TCP如果长时间没有通讯,可以自动断开吗?
如题!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
hslinux
2010-03-05
打赏
举报
回复
最好就是发心跳包检测,一定次数的心跳包没有数据回复,服务器端就主动关闭。
WizardK
2010-03-03
打赏
举报
回复
LZ问可不可以,我只能说可以,但是TCP这种长连接(连接保持)的方式,断开了就需要CLIENT重连了。
小马喝水
2010-03-03
打赏
举报
回复
不会,回复内容太短了!
cpp2017
2010-03-03
打赏
举报
回复
循环检查各个连接的最好活动时间,如果超时就close掉。
亚细亚
2010-03-03
打赏
举报
回复
引用 5 楼 zhdf189 的回复:
TCP连接只要建立,默认是一直保持的,不会自动断开
当然,也可以自己设置超时自动断开
怎么设置?
WizardK
2010-03-03
打赏
举报
回复
TCP SERVER判断CLIENT的断开情况:
1.正常情况,CLIENT关闭SOCKET,SERVER在上层收到CLOSE事件或阻塞型RECV返回0,关闭SOCKET。
2.网线断开,需要加入KEEPALIVE支持,默认是7200秒,或者自己维护KEEPALIVE,定时发送1字节的OOB数据包。
3.异常退出,客户端异常退出,系统会关闭和释放网络描述符,现象同1。
dd_zhouqian
2010-03-03
打赏
举报
回复
自己来做判断吧,TCP是长连接
yanghehong
2010-03-03
打赏
举报
回复
貌似TCP协议标准本身没有这种空闲死连接的检查机制;所以需要上层来自己实现。不过有的系统的TCP协议栈提供了一些keep-alive机制,可以帮助你应用程序诊断TCP连接是不是死掉了。
-
千里孤行
jiuchang
2010-03-03
打赏
举报
回复
最好是超时断开
防止客户端死机
这样能节省系统资源
不过需要客户端实现重连机制,也不是很麻烦
zhdf189
2010-03-03
打赏
举报
回复
TCP连接只要建立,默认是一直保持的,不会自动断开
当然,也可以自己设置超时自动断开
TCP
建立后数据传输完
长时间
不交互会出现什么?(
TCP
的Keepalive机制)
问题:客户端和服务器建立起
TCP
连接后,如果双方
长时间
不进行通信,会出现什么情况?如何保证连接的存活? 分析:在实际现实中,建立起长连接后客户端可很意外失联的情况,这些
TCP
连接并未来得及正常释放,
长时间
的积累会导致非常多的半打开连接,造成资源浪费,也有可能一个正常的请求得不到正常的返回。所以
服务器端
就有了
TCP
的Keepalive机制。 * 如上图所示,
长时间
不通信,服务端会给客户端发送一个
TCP
Keep-Alive来查看客户端是否还存活,如果客户端
没有
应答,服务端超时
没有
收到回复就会再次重新发送;连
如何避免 Modbus
TCP
连接因
长时间
无请求而
断开
?
在Modbus
TCP
通信中,
长时间
没有
发送请求包可能导致连接
断开
。定期发送请求:即使
没有
实际需求,也可以定期发送简单的请求来保持连接活跃。设置合理的超时时间:根据网络环境和从站的配置,设置合适的超时时间。检测连接状态并重连:如果连接
断开
,需要在代码中检测并重新连接。通过以上方法,你可以有效避免Modbus
TCP
连接因
长时间
无请求而
断开
,确保通信的稳定性和可靠性。希望这篇文章对你有所帮助!如果你有任何问题或建议,欢迎在评论区留言讨论。
TCP
通讯
客户端怎样判断与
服务器端
断开
,该如何处理
TCP
通讯
客户端怎样判断与
服务器端
断开
大虾们,神们,C# winform里面,采用多线程监听端口,接收方式为阻塞式,创建单一线程进行监听函数,这样阻塞时只阻塞单一线程,对主线程
没有
影响,并使用异步通信模式,来一个连接后回调函数进行解析入库。这是我的实现原理,目前有个问题,如何在客户端检测到与服务器
断开
,目前我只能做到写入TXT文档里面,看文档查看最后一次连接时间,如下: ------------------------告警信息2012-2-22 23:31:04----...
Linux中
TCP
断开
等待时间
Linux中
TCP
断开
等待时间 查看 /proc/sys/net/ipv4/
tcp
_fin_timeout中的数值,默认为60秒 #cat /proc/sys/net/ipv4/
tcp
_fin_timeout 60 可以修改这个值 修改为20,并查询 #echo 20 > /proc/sys/net/ipv4/
tcp
_fin_timeout netstat 常用命令格式 #netstat -anutp 参数含义: -a 显示所有 -n 以ip形式显示当前建立的有效连接和端口 -u 显示UDP协议
Tcp
通信中服务器处理客户端意外
断开
!
所谓意外
断开
,是客户端(多指支持3G的移动设备)指并
没有
关闭socket,双方并未按照协议上的四次挥手去
断开
连接,一般的处理办法都是利用保活机制。而保活机制分又可以让底层实现也可自己实现。 一、双方拟定心跳(自实现) 一般由客户端发送心跳包,服务端并不回应心跳,只是定时轮询判断一下与上次的时间间隔是否超时(超时时间自己设定)。服务器并不主动发送是不想增添服务器的通信量,减少压力。 但这会出现
网络编程
18,357
社区成员
64,164
社区内容
发帖
与我相关
我的任务
网络编程
VC/MFC 网络编程
复制链接
扫一扫
分享
社区描述
VC/MFC 网络编程
c++
c语言
开发语言
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章