• ベストアンサー

無線LANカード2枚挿し時のUDPクライアントプログラミングについて。

LinuxのUbuntu8.04を使用しているのですが、現在無線LANカード2枚挿ししている状態で、同じネットワーク内でIPアドレスを設定しています(192.168.0.10と192.168.0.11)。UDPクライアントプログラムでパケットを送信すると、インターフェイスを勝手に選んでしまうので、任意に「こっちの無線LANカードを使う!」という指定をするためにはどのようにプログラミングすればよいでしょうか? お願いします。

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

  • ベストアンサー
回答No.1

Linuxでは未確認ですが、 SOCKADDR_IN sck; sckをゼロクリア sck.sin_family = AF_INET; sck.sin_port = htons(ポート番号); sck.sin_addr.s_addr = inet_addr(使うLANカードのIPアドレス); bind(socket,&sck,... socketはデータグラムソケット。

d_x-x_b
質問者

お礼

bindの意味を理解して、回答を参考にしたらできました!! ありがとうございます(^▽^*)

d_x-x_b
質問者

補足

素早い返答ありがとうございます。 現在プログラミングと格闘中なのですが、 sck.sin_addr.s_addr = inet_addr(...); のところでは送信相手のIPアドレスを入力すると思っていたので、この通りやってみると、相手のアドレスを記述する部分がわからなくなってしましました(汗) どうすればよいでしょうか(^-^;) 基本的なクライアントプログラムは、 http://www.geekpage.jp/programming/linux-network/udp.php を参考にしてプログラミングしています。

関連するQ&A

  • 無線LANで任意のパケットを作成し送信する方法について

    無線LANで任意のパケットを作成し送信する方法について linux(ubuntu)を使用しています。C言語を使い無線LANで、有線みたいにパケットを作成して目的のアドレス宛に送信したいと考えています。ですが、どのようにしたらよいのかよく分かりません。(IP、TCPヘッダーを作成できた様に無線LANでも同じことが出来るのですか?) プログラムの仕方等、どなたか分かる方教えていただけませんか? なにかそのようなことが載っているサイトや本はご存知ないですか? どうぞよろしくお願いします。

  • UDPのソケットプログラミング

    ソケットプログラミングでの質問です. 初心者です. UDPクライアントで sock = socket(PF_INET,SOCK_DGRAM,0) でUDPソケットを生成した後に bind()なしで,UDPサーバ宛にsendto() を行った場合, サーバのrecvfrom()でクライアントの IPアドレスとポート番号が受け取ることができると思いますが ここでのIPアドレスはクライアントのアドレスで, ポート番号は他のクライアントの他ソケットが使用していないポート番号 が受け取ることができると考えてよろしいですか? クライアントのsendto()で自動的にポート番号が割り当てられるが, クライアントが,どのポートから送信したのかを知る方法はないですか?

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

    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ブロードキャストだと両カードで送信してしまう?) 色々調べてますがこれだという回答がみつかりません 誰かご存知でしたら御教示願います。

  • 無線LAN

    無線LAN接続ができない質問です。パソコン初心者です。 OSは、windows 2000 professionalです。 BUFFALOのWLI-PCM-L11GPの無線LANカードは、パソコンにドライバをインストールして、クライアントマネージャで電波状態は100%です。 でも、ネットワークとダイヤルアップの設定で、ローカルエリア接続 の状態は、パケット送信は約500で、受信が0です。 これは、インターネットに接続できない原因ですか? ウイルスソフトは、使っていません。 パケット受信の設定ってありますか?

  • ネットワーク上に存在しないIPアドレスにはUDPパケットが送信できない?

    はじめまして。よろしくお願いします。 Cでソケットプログラミング(WinXP,VC++6.0)を行っています。 やろうとしていることは、 ・UDPパケットを同じネットワークセグメントのIPアドレスに送信する ということです。 プログラムを作成し、本当に送信しているのかどうかをパケット キャプチャソフト(wireshark)を使って確認してみました。 すると、ネットワーク上に存在するIPアドレスにはパケットを送信 しているのですが、存在しないIP(つまり、電源を切っているPC)には パケットを送信していないことがわかりました。 ネットワーク上においてそのIPの存在に関係なく、パケット を送信することは出来ないのでしょうか? よろしくお願いします。

  • UDPパケットの分割について

    こんにちは。 現在、クライアント&サーバの通信プログラムを作成しています。 クライアントがサーバに接続しにいく際、サーバの待ち受けポートにクライアントが UDPでブロードキャストしています。 その際、クライアントの情報もUDPに乗せて、送信しています。 ここで、問題なのですが、ネットワークモニタで通信データを見てみると、 クライアントから送信するUDPデータが1500バイト?を超えると、UDPパケットの分割が行われ、 2つめのデータが、UDPではなく、IPで送信されています。 しかも、2つめのIPのパケットがサーバ側に届くケースと届かないケースがあるように見受けられます。 (環境の違いかもしれません。) 2つめのパケット破棄は破棄が起こる環境では必ず起きます。 破棄が起きない環境では一回も起こりません。 スイッチ、NIC等で、破棄することってあるのでしょうか? ネットワーク上の問題っぽいので、OSの違い(Win2K pro,Win2k advanced server) などには関係ないですよね? どなたが、ご存知の方がおられましたらご教授願います。

  • Fedora15で無線LANが使えない。

    日経Linux8月号付録のFedora15をINSPIRON 15Rにインストールしたのですが、無線LANが使えません。 パネルからネットワークを見ると、「有線LAN」の項目はあるのですが、ドライバが当たっていないのか「無線LAN」の項目が見当たりません。先日まで使っていたUbuntu11.04では使えていました。 もしドライバが当たっていないのであれば、どのようにドライバを当てればよいのでしょうか。そうでないならば、何が原因でしょうか。教えて下さい。お願いします。

  • 2つ目の無線LANカード

    最近自分専用のノートPCを購入しました。 インターネット接続は、既に家族がADSLの会員で、室内で無線LAN環境を使っていましたので、自分も無線LANカード1枚を買い、それをPCのカードスロットに差し込みました。 問題は次の●2点です。どなたかお知恵を下さい。 ●「ネットワーク接続」の「ワイヤレスネットワーク」の下段「動作状況」をみると、送受信とも出来ているのですが、家族の送受信バイトと比べると著しく少ないバイト数です。 ●OUTLOOKでは、メール受信はできるのですが、送信が出来ません。(因みに有線に切り替えると送れます。)これも無線LAN絡みの問題に思えます。 ではよろしくお願いいたします。

  • 無線LANカードのプロトコルについて

    Windows98に無線LANカードを設定中です。 有線のLANカードアダプタは何度かセットアップした事があり経験があるのですが、無線のカードは今回が初めてです。 通常LANアダプタをインストールすると TCP/IP>○○○・・・・・(カード名) と言うのがネットワークコンピュータのプロパティで確認出来ますよね? それが無線LANカードの時は出て来ないのでしょうか? 全然カードを認識して無いようなのです。 アクセスポイントを確認するように命令しても「無線LANカードが差し込まれていません。」などと言うメッセージが出るだけです。 また質問する事があると思いますがまずは今回の質問からです。 よろしくお願い申し上げます。

  • Linux Ubuntu無線LAN

     私は今度WindowsMeでUbuntuを起動しそれからインターネットに 接続しようと思っています。しかし、うちはMeにPCカードの 無線LANアダプタをつけてインターネットをしています。 この無線LANのソフト(BUFFALO)エアナビゲーターはLinuxには 対応していなさそうなんですよwww。  Linuxでもドライバとかあると思いますか? この質問難しいと思いますが、答えてくれる人がいたら うれしいです。

専門家に質問してみよう