服务器端的TCP如果长时间没有通讯,可以自动断开吗?

亚细亚 2010-03-03 12:21:34
如题!
...全文
1911 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用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连接只要建立,默认是一直保持的,不会自动断开
当然,也可以自己设置超时自动断开

18,363

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧