刚学习到 socket,客户连接服务之后,好像默认 3 分钟左右就会自动掉线。找了别的资料,说心跳包能解决这问题,但是在网上找了好久, python 的例子少的可怜。求助……

2016-05-21 23:41:31 +08:00
 bwrj
4330 次点击
所在节点    Python
10 条回复
UnisandK
2016-05-21 23:45:44 +08:00
socket 没默认掉线的吧?
maooyer
2016-05-21 23:49:55 +08:00
v0768ex
2016-05-21 23:59:55 +08:00
心跳包就是定时给对方发包
TheCure
2016-05-22 00:02:10 +08:00
是不是因为 TCP KeepAlive 的问题?
我认为应该是 所以你要不停的发包保活,而不是空着
关注下 FIN 或者 RST 信号的 TTL ,判断是否来自中间设备
bicoff9527
2016-05-22 00:14:59 +08:00
心跳包要自己发的. 完全可以找别的语言的例子进行改写啊, 本来这个也是 java, c++主要的用武之地
neoblackcap
2016-05-22 10:41:11 +08:00
肯定是自己结束了。 TCP 协议不存在自己默认自动断开时间。
P0P
2016-05-22 13:42:53 +08:00
zeromq 自动帮你维护
sleshep
2016-05-23 10:46:51 +08:00
你可以设置 tcp keepalive. setsockopt
wizardoz
2016-05-23 11:05:20 +08:00
@P0P 摆脱人家在学 socket ,你给推荐 mq 。学写基础还是有必要学的啊。
P0P
2016-05-23 11:18:34 +08:00
@wizardoz zmq 不是 mq 啊 lol ,简直是替代 socket 的神器

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/280337

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX