tcp socket 在 wifi 断开的短时间内,send 返回是成功的,要过一段时间才是 close 状态

2014-10-07 15:01:14 +08:00
 zjupigeon
又遇到过这个情况么,手机wifi断了,但是马上发送包是能发送出去得,但是收不到响应包,怎么设置才能判断网络已断
4809 次点击
所在节点    问与答
5 条回复
billlee
2014-10-07 15:14:31 +08:00
send(2) 会在 buf 被复制到内核缓冲区后返回成功。
在 Wifi 断开一段时间后,TCP 检测到连接中断,才返回错误。
zjupigeon
2014-10-07 15:23:20 +08:00
@billlee 可以关闭send buffer这种机制么,直接告诉我错误
billlee
2014-10-07 19:40:41 +08:00
@zjupigeon 这个关不了,TCP 本来就有重传机制。
benjiam
2014-10-07 19:46:16 +08:00
基础知识,不能靠tcp。send成功告诉你业务完成,必须靠逻辑层的响应。看陌陌的服务器总监分享 百万链接服务器还提到了这个问题,说是经验。拜托。这是基础知识。
buf1024
2014-10-07 19:48:55 +08:00
通过心跳包。

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

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

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

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

© 2021 V2EX