プロが教えるわが家の防犯対策術!

UNIX-C言語で、TCP/IP通信を勉強していて、疑問にぶつかったのですが、
複数のNIC(もしくはIPアドレス)を実装しているPCは、
自分のIPアドレス(gethostby***関数などで)を取得したばあい、
どのように見えるのでしょう?

また、そのPCがC/S構成におけるserver側だった場合、
bind()関数に設定するIPアドレスはデータ通信したい側のNICの
IPアドレス一つでいいのでしょうか。

NIC2枚挿しのPCが身近にないので、実験できません(^^;)
どなたかご教授いただけませんでしょうか m(_ _)m

A 回答 (1件)

1. gethostby****関数は複数のIPアドレスを報告します。


NIC複数挿し、クラスタリングによる複数IPの可能性がありますが、クライアントとしてはそれらを区別する必要はありません。
struct hostentのh_addrlistは複数IPアドレスに対応してchar **となっています。

2.bindには「全てのNIC」というオプションがあります。
struct in_addrを設定する時にIPアドレスとしてINADDR_ANYを設定すれば全てのNICに対してbindされます。
    • good
    • 0
この回答へのお礼

詳細な説明ありがとうございました。

きちんとした意味をしらずに、gethostby****や、bindなどの関数を
使用していたのだな、と思い知りました(^^;)
まだ、知らなずに使っていることも多々あると思いますが、
できるだけ不明点を残さずに、事にあたろうと思います。

これだけ頼りになる皆様がいるのですから(^^)

お礼日時:2001/07/03 12:56

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています