web-dev-qa-db-ja.com

ソケットを複数のインターフェースにバインドする方法

何時間もインターネットで検索した後も、問題の答えを見つけることができませんでした。

私のタスクは、可変数のインターフェースからソケットを受け入れるサーバーを作成することです(eth0, eth1, etc.として構成ファイルで指定)。

これを行う最も簡単な方法は何ですか? 1つのソケットを複数のインターフェースにバインドする方法はありますか?まだその方法を見つけていません。
または、INADDR_ANYを使用して、パケットの送信元のインターフェイスを何らかの方法で見つける必要がありますか?

この問題を処理する別の方法はありますか?

22
Hynek Blaha

bind(2)oneソケットからallINADDR_ANY 、または複数のソケットを作成して、それぞれをIPアドレスにバインドします希望するインターフェースの。いずれの場合も、 SO_REUSEADDR ソケットのオプション。

32