2

我正在编写一个应用程序,该应用程序由使用 Netty 用 Ja​​va 编写的服务器和客户端组成。

我还没有找到这个问题的真正答案,但我想知道为什么我的服务器-客户端连接在一段时间后如果不使用就停止发送数据。“keepAlive”选项设置为 True,并且一切正常,直到客户端有足够的时间“断开”但服务器没有收到断开状态。只是一般好奇,keepAlive ping-pong 客户端/服务器还是我必须自己做?

谢谢!

4

1 回答 1

0

值得一看的是,如果有一些网络设备(例如防火墙)可能关闭了您的连接,请记住,连接状态处理不在协议中。所以很可能你有一个半封闭的连接

如果您确实设置了该keepAlive选项,请确保它正在通过网络执行这些选项ping。最好的办法是检查连接的两端是否仍然打开套接字。

当连接处于活动状态但空闲(客户端未接收数据)时,检查连接是否处于状态ESTABLISHED。并在服务器端做同样的事情。从那里使用工具,例如Wiresharktrace尝试建立连接是否在服务器上断开或被防火墙杀死。

于 2013-06-04T15:58:42.343 回答