tcp - 客户端 channel 不处于可写状态(NIO)Netty

标签 tcp client netty nio channel

客户端 channel 在 netty 中不处于可写状态。有没有高手指导一下,看看是什么原因

为什么 channel 一直处于不可写状态?

因为它不处于可写状态,所以我们的线程处于 sleep 模式。我们使用 Thread dump 分析了线程的状态,在下面的循环中添加了一个计数器,它等待一分钟然后退出循环。但我真的很想弄清楚不可写状态的原因。

channel 关闭后 channel 是否还留在ctx中(如果EOF不是客户端发送的)?

这是否会发生(意味着永远不会处于可写状态)?

while (!ctx.getChannel().isWritable()) {
    Thread.sleep(100);
    }

请帮忙。

非常感谢

最佳答案

从表面上看,这是因为 ChannelBuffer 已满,即没有更多可写字节。

可能是写入速度太快,或者 channel 无法发送任何字节造成的。如果您没有写得太快,可能是因为 channel 从未成功发送写入的字节。

关于tcp - 客户端 channel 不处于可写状态(NIO)Netty,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15263180/

相关文章:

python - 'METHODNAME' 作为客户端方法与扭曲的 irc _'METHODNAME'

google-cloud-firestore - FirestoreException - 找不到 TLS ALPN 提供程序 - 没有工作 netty-tcnative

java - Web 服务与 TCP/IP 套接字 (Java) + SQL 连接

python - PC 通过 TCP/IP 套接字连接到树莓派

javascript - 使用 PHP 进行淡出的更好方法

exception - Netty 服务器绑定(bind)异常

java - 通过 java 客户端的 netty websocket 连接

python - 如何将应用程序附加到原始 IP 和 TCP 层

c# - .Net 套接字 -> 抛出 System.InvalidOperationException

java - 通过 JAX-WS 和 WS-Addressing 使用 SOAP