【问题标题】:Netty client bootstrap connection failsNetty 客户端引导连接失败
【发布时间】:2014-12-15 21:28:53
【问题描述】:

我正在使用 Netty 4.0 构建客户端/服务器。 服务器在 localhost:8083 上正确侦听,我可以远程登录它,它会正确触发服务器断点。 但是当我尝试连接那段代码时:

_bootstrap = new Bootstrap();
_bootstrap.group(locGroup)
    .channel(NioServerSocketChannel.class)
    .handler(new ClientInit(this, _sslContext, _logger));
_bootstrap.remoteAddress("127.0.0.1", 8083);
ChannelFuture locChannelFuture = _bootstrap.connect();
_channel = locChannelFuture.sync().channel();

它在 sync() 处引发异常:java.nio.channels.ClosedChannelException。 如前所述,当我 telnet 127.0.0.1 8083(或使用 Socket 在代码中连接)时,它确实有效。 任何想法 ?谢谢。

【问题讨论】:

  • 您能否在管道两端(服务器和客户端)显示更多详细信息,以便查看有哪些类型的处理程序?例如,我看到 _sslContext,我想它是管理 ssl 部分,这可能是连接被拒绝的原因,然后是 ClosedChannelException。堆栈跟踪也很有用。
  • 管道确实是关键。我在回答中解释了这一点。谢谢。

标签: java io netty


【解决方案1】:

我修好了。 问题只是我将 NioServerSocketChannel 作为引导构造函数的默认通道类。建一个客户端,我换了NioSocketChannel,效果很好。

所以,这里是正确的:

_bootstrap.group(locGroup)
    .channel(NioSocketChannel.class)
    .handler(new ClientInit(this, _sslContext, _logger));

【讨论】:

  • 这么明显我没看到!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-12-24
  • 1970-01-01
相关资源
最近更新 更多