sockets - 存在连接不稳定时套接字的行为方式
问题描述
想象一下客户端和服务器之间建立的连接。如果其中一个参与者在短时间内失去了与网络的连接,socket 是否仍然有效?大多数情况下,我对 LWIP 实现感兴趣,但有些东西告诉我,任何套接字的答案都是相同的。
顺便说一句,当需要非常快速的断开连接检测但时间很短时,将 KEEP_ALIVE 参数更改为几秒钟的数量级是不是很酷?
“连接丢失”是指物理原因,例如失去与 wifi 网络的连接。
解决方案
如果其中一个参与者在短时间内失去了与网络的连接,socket 是否仍然有效?
这取决于。假设您的意思是 TCP 套接字:如果在这段时间内不必交换数据,那么短暂的连接丢失根本无关紧要。相反,如果必须交换数据或 TCP 保持活动状态,则连接可能会降级(减慢并重试发送数据,以防应用程序数据尚未得到确认)或因错误而关闭,具体取决于物理连接丢失发生的时间长短.
在 UDP 或原始套接字的情况下,它无论如何都不关心丢失的数据,因此不会发生任何重要的事情。
推荐阅读
- javascript - 如何在 reactstrap 中使用 onMouseEnter?
- asp.net-core - 在 .Net Core 2.2 中将 HttpResponseMessage 作为 IActionResult 返回的正确方法
- python - 我将如何对字典的第二个键的值进行排序?
- excel - 在 Excel 数据透视表中的已汇总组中搜索最小值
- leaflet - 单击标记时传单更改图层颜色
- java - 如何从 MaterialCardVew 中移除涟漪效应?
- android - 使用 TabLayout + AppBarLayout 时 Fragment 的布局过高
- excel - 如何使用 vb 将 DAX Query 提取到 CSV 中,同时用空格替换逗号
- debugging - 通过类似于 GDB readline 的起始字符搜索 LLDB 命令历史记录?
- mysql - SQL CASE WHEN (1=1) 1=1 在做什么?