Netty 使用ClientBootstrap以显式本地地址连接到LocalChannel
我希望在连接到使用DefaultLocalServerChannelFactory创建的LocalChannel服务器时能够指定一个显式的本地地址,而不是依赖于“Ephemeral” (原因是我希望能够建立多个连接,并让服务器使用远程地址对相关连接进行分组) 如果我调整提供的LocalExample类,只需更改:Netty 使用ClientBootstrap以显式本地地址连接到LocalChannel,netty,Netty,我希望在连接到使用DefaultLocalServerChannelFactory创建的LocalChannel服务器时能够指定一个显式的本地地址,而不是依赖于“Ephemeral” (原因是我希望能够建立多个连接,并让服务器使用远程地址对相关连接进行分组) 如果我调整提供的LocalExample类,只需更改: ChannelFuture channelFuture = cb.connect(socketAddress); 致: 引发通道异常(已绑定),因为通道首先由ClientBootst
ChannelFuture channelFuture = cb.connect(socketAddress);
致:
引发通道异常(已绑定),因为通道首先由ClientBootstrap绑定,然后由LocalClientChannelSink绑定,该LocalClientChannelSink在连接时始终绑定通道:
bind(channel, succeededFuture(channel), new LocalAddress(LocalAddress.EPHEMERAL));
如果忽略该异常,则一切似乎都正常,并且通道的端点确实具有非默认本地地址
然而,如果可能的话,我更愿意找到一种避免异常的方法。这听起来像是一个“bug”。你能在netty的bugtracker中打开一个问题吗
bind(channel, succeededFuture(channel), new LocalAddress(LocalAddress.EPHEMERAL));