为了账号安全,请及时绑定邮箱和手机立即绑定

TCP套接字连接是否“保持活动”?

TCP套接字连接是否“保持活动”?

哔哔one 2019-09-20 15:03:19
我听说过HTTP keep-alive但是现在我想打开一个与远程服务器的套接字连接。现在这个套接字连接是否会永远保持打开状态,或者是否存在与之相关的超时限制,类似于HTTP keep-alive?
查看完整描述

3 回答

?
尚方宝剑之说

TA贡献1788条经验 获得超4个赞

TCP套接字保持打开状态,直到它们关闭。

也就是说,在没有实际发送数据的情况下检测断开连接(断路,如路由器死亡等,而非关闭)非常困难,因此大多数应用程序每隔一段时间就会做一些ping / pong反应,以确保连接仍然存在。


查看完整回答
反对 回复 2019-09-20
?
紫衣仙女

TA贡献1839条经验 获得超15个赞

您正在寻找SO_KEEPALIVE套接字选项。


在的Java的Socket API暴露了“保活”通过应用程序setKeepAlive和getKeepAlive方法。


编辑:SO_KEEPALIVE在OS网络协议栈中实现,不发送任何“真实”数据。保持活动间隔取决于操作系统,并且可以通过内核参数进行调整。


由于没有数据发送,SO_KEEPALIVE只能测试网络连接的活跃程度,而不能测试套接字所连接的服务的活跃程度。要测试后者,您需要实现一些涉及向服务器发送消息并获得响应的内容。


查看完整回答
反对 回复 2019-09-20
  • 3 回答
  • 0 关注
  • 500 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信