- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我有一个客户端和服务器运行在同一台服务器(Linux 机器)上,它们之间有 TCP 连接。我观察到,当我杀死客户端时,内核/操作系统会在客户端被杀死 2 秒后发送 RST 数据包。我的问题是哪个内核参数 os Socket 选项控制这个计时器(2 秒)?
最佳答案
A RST
通常不会在正常连接终止时在对等点之间发送。 FIN
是。当你杀死客户端时,一个 FIN
在连接上发送以向服务器指示客户端将不再发送任何数据。
但服务器显然没有关注 FIN
它在客户端被杀死时接收(即它需要在套接字上尝试 recv
并对它将获得的文件结束指示做出适当的 react ——通常这意味着 close
自己的套接字)。随后,服务器正在尝试 send
数据发送给客户端,但连接已关闭。 那 就是导致 RST
的原因正在发送的数据包。
RST
意思是(大致)“没有事件连接可用于接收您发送的数据;发送更多数据毫无意义。”
因此 RST
的时机可能基于服务器下次尝试 send
的时间给客户端,而不是在任何内核/操作系统配置设置上。如果服务器不尝试 send
并且它没有close
, 连接应该永远闲置在那里,没有 RST
将被发送。
关于c - 客户端被杀死或崩溃时内核发送的 TCP RST,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44362100/
我试图理解什么是 -XX:OnOutOfMemoryError='kill %p' 下面的命令是什么意思? 我不确定 %p 是什么意思? exec /bin/bash -c "LD_LIBRARY_P
我试图理解什么是 -XX:OnOutOfMemoryError='kill %p' 下面的命令是什么意思? 我不确定 %p 是什么意思? exec /bin/bash -c "LD_LIBRARY_P
这个问题在这里已经有了答案: Solving "adb server version doesn't match this client" error [duplicate] (17 个答案) 关闭
我是一名优秀的程序员,十分优秀!