如何解决NIO ServerSocket 在 Linux 上一段时间后无法关闭套接字
我知道我已经问过这个问题 (ServerSocketChannel stops Accepting after a while on Linux) 但问题仍然存在,我已经尝试了各种方法,但我不知道如何继续或如何调试它以找到原因。
所以正如我所说,问题仍然存在,我不知道这是否由我的应用程序运行的位置处理。
问题仅在一段时间后出现,有时是几个小时,有时是在小时标记之后。连接已关闭,如果不是,则在超时后关闭,因此关闭时我不应该泄漏连接。 (我猜/至少希望)
由于它是在 Linux 下运行,这里是我运行 ss -dst | grep "5895"
的屏幕截图。
平均同时连接的人不超过 50 人(排除应用本身无法同时处理多个连接的可能性)。
我尝试将积压(应用明智 -> bind()
- 调用)增加到 1000,通过 cat /proc/sys/net/core/netdev_max_backlog
检查我的 linux 机器 max_backlog 也返回 1000。
通过 ip -s -s -d link show dev
检查接口是否有错误数据包或丢失数据包显示没有丢失或错误数据包。
对应的代码在链接的主题里,如果你还需要输入code-wise不要犹豫问,我会提供的!
我希望你能帮助我,并提前致谢。 (抱歉,我不应该就这个问题创建一个新主题并使用旧主题)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。