-PR-
解決済み

C言語のsocket関数で、複数NIC実装PCはどうなるのでしょうか?

  • 暇なときにでも
  • 質問No.95851
  • 閲覧数2043
  • ありがとう数1
  • 気になる数0
  • 回答数1
  • コメント数0

お礼率 100% (8/8)

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

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

NIC2枚挿しのPCが身近にないので、実験できません(^^;)
どなたかご教授いただけませんでしょうか m(_ _)m
通報する
  • 回答数1
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

質問者が選んだベストアンサー

  • 回答No.1
レベル13

ベストアンサー率 37% (570/1525)

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

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

お礼率 100% (8/8)

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

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

これだけ頼りになる皆様がいるのですから(^^)
投稿日時 - 2001-07-03 12:56:21
-PR-
-PR-
このQ&Aのテーマ
このQ&Aで解決しましたか?
AIエージェント「あい」

こんにちは。AIエージェントの「あい」です。
あなたの悩みに、OKWAVE 3,500万件のQ&Aを分析して最適な回答をご提案します。

関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


専門家があなたの悩みに回答!

-PR-

ピックアップ

-PR-
ページ先頭へ