- ベストアンサー
LAN2枚ざしの時のソケット通信
ソケット通信のプログラムを作成しています。 そのマシンはサーバー側なのですが LANカードが2枚刺さっている構成をしています (一応、LANカードごとにIP帯は違います) そのような場合は LANカードどちらかを「指定」する必要があると聞きました。 ですが、 調べてももそれらしい情報が出てきません。 よい情報が載っているページがありましたら よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
普通サーバアプリケーションは自分がlistenするIPアドレスと ポート番号を外部から指定させます。 自分がbindしたいアドレスの情報をgetaddrinfoなどで取得し、 ソケットを作成した後同じ情報を使ってbindすることもできます。 IPアドレスはLAN上で一意になるので、IPアドレスを関連付ければ 自ずとインターフェースカードも特定されます。
その他の回答 (2)
- okg00
- ベストアンサー率39% (1322/3338)
http://www.geekpage.jp/programming/winsock/tcp.php これの事かな? bindの第2引数。
お礼
お礼が遅くなりましたが うまく解決できました ありがとうございました。
- i-kujou
- ベストアンサー率50% (13/26)
LANカード、というよりもネットワークインターフェイスが複数ある場合の話だと思われますが、こちらから接続詞に行く場合(connectする場合)は基本的に指定は必要ありません。 接続先のIPのルーティングに沿って、必要なネットワークインターフェイスを利用して接続しに行きます。 問題はlistenする場合です。listenする場合はlistenポートを指定するためにソケットに対しbindを行っていると思いますが、この際にIPアドレスを指定するとそのIPアドレスが割り当てられているネットワークインターフェイスからのみ接続を受け付けるようになるはずです。 #INADDR_ANY はどのネットワークインターフェイスからも接続を受け付ける、という指定になります。
お礼
お礼が遅くなりましたが うまく解決できました ありがとうございました。
お礼
お礼が遅くなりましたが うまく解決できました ありがとうございました。