0

「エフェメラル」に依存するのではなく、DefaultLocalServerChannelFactory で作成された 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));

例外を無視すると、すべてが機能しているように見え、チャネルのエンドポイントにはデフォルト以外のローカル アドレスがあります。

ただし、可能であれば例外を回避する方法を見つけたいと思います

4

1 に答える 1

0

これは「バグ」のように聞こえます。netty のバグトラッカーで問題を開いていただけますか?

于 2012-04-20T10:05:31.777 に答える