使用ClientBootstrap以显式本地地址连接到LocalChannel

时间:2012-04-20 09:58:03

标签: netty

我希望能够在连接到使用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));

如果我忽略了异常,一切似乎都有效,并且通道的端点确实具有非默认的本地地址。

但是,如果可能的话,我更愿意找到避免例外的方法

1 个答案:

答案 0 :(得分:0)

这听起来像是一个“虫子”。你能在netty的bugtracker中打开一个问题吗?