Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sockets Netty连接池未向服务器发送消息_Sockets_Netty_Serversocket - Fatal编程技术网

Sockets Netty连接池未向服务器发送消息

Sockets Netty连接池未向服务器发送消息,sockets,netty,serversocket,Sockets,Netty,Serversocket,我有一个简单的netty连接池和一个简单的HTTP端点,用于将TCP消息发送到ServerSocket。相关代码如下所示,客户端为: 然后打印出发生的事件,这样它们就不相关了。当服务器和客户端启动并且我向测试端点发送测试消息时,我可以看到服务器打印连接的新客户端,但不打印客户端发送的消息。服务器不会打印客户端发送的任何连续消息 如果我尝试telnet,一切正常,服务器会打印消息。同样,它也适用于具有相同引导配置且没有连接池的常规netty客户端 有人能看出我的连接池出了什么问题吗?我没有主意了

我有一个简单的netty连接池和一个简单的HTTP端点,用于将TCP消息发送到ServerSocket。相关代码如下所示,客户端为:

然后打印出发生的事件,这样它们就不相关了。当服务器和客户端启动并且我向测试端点发送测试消息时,我可以看到服务器打印连接的新客户端,但不打印客户端发送的消息。服务器不会打印客户端发送的任何连续消息

如果我尝试telnet,一切正常,服务器会打印消息。同样,它也适用于具有相同引导配置且没有连接池的常规netty客户端

有人能看出我的连接池出了什么问题吗?我没有主意了

Netty版本:4.1.39.1最终版本

所有代码都可用

更新

遵循诺曼·莫雷尔的建议。我补充说

ChannelFuture channelFuture = ch
    .writeAndFlush(msg + System.lineSeparator());

channelFuture.addListener(writeFuture -> {
  System.out
      .println("isSuccess(): " + channelFuture.isSuccess() + " : " + channelFuture.cause());
});
这是打印出来的

isSuccess: false : java.lang.UnsupportedOperationException: unsupported message type: String (expected: ByteBuf, FileRegion)
为了修复它,我只是将字符串转换为ByteBuf


您应该检查writeAndFlush返回的ChannelFuture的状态。。。。我怀疑它失败了

好小费。它返回isSuccess:false和原因:java.lang.UnsupportedOperationException不支持的消息类型:应为字符串:ByteBuf,FileRegion谢谢
ChannelFuture channelFuture = ch
    .writeAndFlush(msg + System.lineSeparator());

channelFuture.addListener(writeFuture -> {
  System.out
      .println("isSuccess(): " + channelFuture.isSuccess() + " : " + channelFuture.cause());
});
isSuccess: false : java.lang.UnsupportedOperationException: unsupported message type: String (expected: ByteBuf, FileRegion)
ch.writeAndFlush(Unpooled.wrappedBuffer((msg + System.lineSeparator()).getBytes()));