当前位置: 首页 > 知识库问答 >
问题:

Netty 客户端引导连接失败

汤弘文
2023-03-14

我正在使用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连接代码)时,它确实有效。知道吗?非常感谢。

共有1个答案

莘钧
2023-03-14

我修好了。问题很简单,我给了NioServerSocketChannel作为引导构造函数的默认通道类。构建客户端时,我使用了NioSocketChannel,它运行得很好。

所以,这里是正确的:

_bootstrap.group(locGroup)
    .channel(NioSocketChannel.class)
    .handler(new ClientInit(this, _sslContext, _logger));
 类似资料:
  • 在Netty中创建客户端连接时,我有一个问题。 这里,为什么我们没有一个bind方法,将通道绑定到发起客户端连接的端口(在客户端)?我们唯一需要提供的就是给出服务器地址和端口如下: 这是在客户端还是服务器端创建了一个新的通道?此通道绑定在客户端的哪个端口? 我们在执行服务器端引导时进行绑定,如下所示 我很困惑,不明白客户端从哪个端口向服务器发送数据,使用的是什么通道?

  • 我试图理解netty http客户端连接池。如果是NIO和异步的,那么这个连接池的意义是什么? 例如:如果服务A调用服务B,并且服务A的客户端连接池计数设置为50,那么这是否意味着我们最多只能发出50个并行请求? 更新: 我在3.5秒内完成了所有通话。理想情况下,有一个连接,我应该在150秒内完成。

  • 当需要引导客户端或一些无连接协议时,需要使用Bootstrap类。 在本节中,我们将回顾可用的各种方法引导客户端,引导线程,和可用的管道实现。 客户端引导方法 下表是 Bootstrap 的常用方法,其中很多是继承自 AbstractBootstrap。 Table 9.1 Bootstrap methods 名称 描述 group 设置 EventLoopGroup 用于处理所有的 Channe

  • 我的/etc/hosts文件如下所示: 不确定该怎么办?字面上假设我可以传递localhost和port,它应该可以工作。

  • 我们正在运行“helloworld”示例https://grpc.io/docs/quickstart/cpp.html#update-a-grpc-service,我们收到以下错误: 14:连接失败 迎宾员收到:RPC失败。 服务器和客户端正在监听:。服务器正在运行。首先,我们在服务器上只收到一个数据包,客户端崩溃,我用tcpdump检查了它。我们在不同的主机和同一台主机上进行了检查,但这两种情

  • 连接失败客户端一般会有两种报错,connection refuse 和 connection timeout connection refuse(连接拒绝) 一般是以下原因: 1、客户端连接的端口错了 2、客户端连接的域名或者ip错了 3、如果客户端使用了域名连接,域名可能指向了错误的服务器ip 4、服务端没有启动或者端口没有被监听 5、使用了网络代理软件 6、服务端监听ip与访问地址不在一个地址