java - 一段时间后,Netty 客户端不会发送更多数据

标签 java netty

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

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

谢谢!

最佳答案

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

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

当连接处于 Activity 状态但处于空闲状态(客户端未接收数据)时,检查连接是否处于状态 ESTABLISHED。并在服务器端做同样的事情。从那里使用 Wiresharktrace 等工具尝试确定连接是在服务器上断开还是被防火墙终止。

关于java - 一段时间后,Netty 客户端不会发送更多数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16920619/

相关文章:

java - Virtuoso Jena 程序中的 Reasoner

java - 高性能网络的 Netty 替代品是什么?

java - NoClassDefFoundError : io/netty/util/Timer

java - 一个端口用于读取,一个端口用于写入是套接字应用程序的好主意吗?

java - 如何使用 io.netty.handler.codec.http.multipart.HttpPostRequestEncoder FinalizeRequest

java - 改造和 SimpleXmlConverterFactory

java - 如何在Spring Boot应用程序的main方法中正确初始化Bean?

java - 难以从使用谷歌地图地点选择器 API 获得的位置传递数据并将其发送到 textView 以供用户查看位置

java - GroupingBy 和 List 作为结果

java - 如何将应用程序/用户数据传递到 ChannelHandler Netty