0

現在、これが私の苦境です。x と y の 2 つの fd があります。write(x) が発生すると、x トンネルに移動し、write(y) は y トンネルに移動する必要があります。接続ごとにルーティング ルールを作成できない (ここに記載されていない理由)

接続を受け入れるときに設定できる sock opt はありますか、それとも他の方法がありますか?

ありがとう

4

2 に答える 2

-1

あなたの説明は大ざっぱです。SO_REUSEADDR と SO_REUSEPORT の optname による setsockopt() が役立つと思いますが、よくわかりません。

ここでは、Unix ネットワーク プログラミングに関する参考文献をいくつか示します。詳細を知りたい場合は、7.5 章でそれらと例を読むことができます。

SO_REUSEADDR ソケット オプションには、次の 4 つの目的があります。

  1. SO_REUSEADDR を使用すると、このポートをローカル ポートとして使用する以前に確立された接続が存在する場合でも、リスニング サーバーはウェルノウン ポートを起動してバインドできます。
  2. SO_REUSEADDR を使用すると、各インスタンスが異なるローカル IP アドレスをバインドしている限り、ワイルドカード アドレスにバインドされている既存のサーバーと同じポートで新しいサーバーを起動できます。
  3. SO_REUSEADDR を使用すると、各バインドで異なるローカル IP アドレスが指定されている限り、1 つのプロセスで同じポートを複数のソケットにバインドできます。
  4. SO_REUSEADDR は、完全に複製されたバインドを許可します: トランスポート プロトコルがサポートしている場合、同じ IP アドレスとポートが既に別のソケットにバインドされている場合、IP アドレスとポートのバインド。通常、この機能は UDP ソケットでのみサポートされています。
于 2013-05-27T10:48:38.603 に答える