2012-04-20 40 views
0

我希望能夠在連接到使用DefaultLocalServerChannelFactory創建的LocalChannel服務器時指定顯式本地地址,而不是依賴「Ephemeral」。使用ClientBootstrap以明確的本地地址連接到LocalChannel

(原因是我希望能夠建立多個連接並讓服務器使用遠程地址對相關連接進行分組)。

如果我適應所提供的LocalExample類,只是改變:

ChannelFuture channelFuture = cb.connect(socketAddress); 

到:

ChannelFuture channelFuture = cb.connect(socketAddress, new LocalAddress("C1")); 

的信道異常(已結合的)被拋出,因爲信道是由ClientBootstrap第一約束,並然後再通過LocalClientChannelSink,它在連接時始終綁定信道:

 bind(channel, succeededFuture(channel), new LocalAddress(LocalAddress.EPHEMERAL)); 

如果我忽略異常,似乎一切正常,並且通道的端點具有非默認本地地址。

不過,我更願意找到避免了異常,如果在所有可能的

回答

0

這聽起來像一個「錯誤」的一種方式。你可以在netty的bugtracker中打開一個問題嗎?

+0

這固定在3.4.2.Final – 2012-04-29 20:44:23