我希望能够在连接到使用 DefaultLocalServerChannelFactory 创建的 LocalChannel 服务器时指定一个明确的本地地址,而不是依赖于“Ephemeral”。
(这样做的原因是我希望能够建立多个连接并让服务器使用远程地址对相关连接进行分组)。
如果我调整提供的 LocalExample 类,只需更改:
ChannelFuture channelFuture = cb.connect(socketAddress);
至:
ChannelFuture channelFuture = cb.connect(socketAddress, new LocalAddress("C1"));
抛出通道异常(已经绑定),因为通道首先由 ClientBootstrap 绑定,然后再次由 LocalClientChannelSink 绑定,后者在连接时始终绑定通道:
bind(channel, succeededFuture(channel), new LocalAddress(LocalAddress.EPHEMERAL));
如果我忽略该异常,一切似乎都正常,并且通道的端点确实具有非默认本地地址。
但是,如果可能的话,我更愿意找到一种避免异常的方法