締切済み

winsockで複数のLANカードを使用するには

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

お礼率 15% (3/19)

winsock初心者です。
TCPまたはUDPにて1枚のLANカードで通信するプログラムはよくあるのですが
複数のLANカードで通信する場合の参考プログラムがありません。
具体的には,
UDPクライアントを作成する場合,指定したLANカード(IPアドレス)に生成したsocketとリンクして通信させたいのです。

bind()のsockname.sin_addr.s_addrにてINADDR_ANYではなくカードに設定したIPアドレスを設定すればよいのでしょうか?

同じ疑問がTCPクライアント作成でもあります。
この場合bind()ではなく,connect()で送信したいカードに接続されるサーバー側のIPアドレスを指定するということでしょうか?

また2枚のカードを使用する場合,同じネットワークアドレス(192.168.0.XXX)は使用しない方が良いのでしょうか?(UDPブロードキャストだと両カードで送信してしまう?)

色々調べてますがこれだという回答がみつかりません
誰かご存知でしたら御教示願います。

回答 (全2件)

  • 回答No.2

ベストアンサー率 44% (8/18)

複数のNICがある場合はIPアドレスを検出して
そのIPアドレスでbindなどしないとだめだと思います。
以下の「ネットワークインターフェース情報を取得する」と
「ネットワークインターフェースのIPアドレス情報を取得する 」が参考になるかと
http://www.geekpage.jp/programming/iphlpapi/

1台のPCにある複数のNICで同じIPを指定するのはお勧めしません。
http://www.atmarkit.co.jp/fnetwork/rensai/troutol03/02.html

ちょっと変なたとえかもしれませんが同じ住所に複数人が住んでいて
「住所に対して宛てた手紙」が来た場合
誰宛かわかりませんからね
  • 回答No.1

ベストアンサー率 42% (1231/2878)

IPネットワークの場合、経路情報からどのインタフェースを使うかを決定しますので、通信を開始する前にrouteコマンドとかで事前に経路情報を変更するといったプログラムにしてみては。

そんなことすると、なんか安定して通信できなさそうな気がしないでもないですが。
結果を報告する
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。
関連するQ&A
AIエージェント「あい」

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

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

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

ピックアップ

ページ先頭へ