- ベストアンサー
C言語のsocket関数で、複数NIC実装PCはどうなるのでしょうか?
UNIX-C言語で、TCP/IP通信を勉強していて、疑問にぶつかったのですが、 複数のNIC(もしくはIPアドレス)を実装しているPCは、 自分のIPアドレス(gethostby***関数などで)を取得したばあい、 どのように見えるのでしょう? また、そのPCがC/S構成におけるserver側だった場合、 bind()関数に設定するIPアドレスはデータ通信したい側のNICの IPアドレス一つでいいのでしょうか。 NIC2枚挿しのPCが身近にないので、実験できません(^^;) どなたかご教授いただけませんでしょうか m(_ _)m
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
1. gethostby****関数は複数のIPアドレスを報告します。 NIC複数挿し、クラスタリングによる複数IPの可能性がありますが、クライアントとしてはそれらを区別する必要はありません。 struct hostentのh_addrlistは複数IPアドレスに対応してchar **となっています。 2.bindには「全てのNIC」というオプションがあります。 struct in_addrを設定する時にIPアドレスとしてINADDR_ANYを設定すれば全てのNICに対してbindされます。
お礼
詳細な説明ありがとうございました。 きちんとした意味をしらずに、gethostby****や、bindなどの関数を 使用していたのだな、と思い知りました(^^;) まだ、知らなずに使っていることも多々あると思いますが、 できるだけ不明点を残さずに、事にあたろうと思います。 これだけ頼りになる皆様がいるのですから(^^)