UDPマルチキャスト – プログラミング – Home

通知
すべてクリア

UDPマルチキャスト


Green
 Green
(@Green)
ゲスト
結合: 22年前
投稿: 11
Topic starter  

皆さんはじめまして。Greenと申します。
早速ですが質問させて下さい。

WinsockのUDPにてマルチキャストを使って送受信しようと考えています。
アプリケーションはサーバーとクライアント2つを作成します。
基本的な機能は実装し複数PCを使った動作は確認しています。
サーバー・クライアントは同一PC上でも動作するようにしたいのですが
同一PC上だとマルチキャストで送信するとクライアント側で受信しません。
同一PC上でも受信できるようにはできないのでしょうか?
IP_MULTICAST_LOOPをsetsockoptでTRUEに設定するとループバックして受信できる
という話をどこかで見たので試してみたのですが駄目でした。

どなたかご存知のかたがいらっしゃいましたらご教授下さい。
宜しくお願い致します。


引用解決済
トピックタグ
Green
 Green
(@Green)
ゲスト
結合: 22年前
投稿: 11
Topic starter  

環境を書き忘れてしまいました。
WinXP SP1 + VC6です。


返信引用
dairygoods
 dairygoods
(@dairygoods)
ゲスト
結合: 23年前
投稿: 1421
 

マルチキャストのループバックはデフォルトでTRUEになっているはずです。
失敗しそうな点としては、
サーバーとクライアントで同一のポートを使おうとしているとか、
LANにつなげずに1台で実験しているとか。


返信引用
ボコノン教徒
 ボコノン教徒
(@ボコノン教徒)
ゲスト
結合: 22年前
投稿: 90
 

setsockoptでSO_REUSEADDRをONにする必要があったような。

> IP_MULTICAST_LOOPをsetsockoptでTRUEに設定するとループバックして受信できる。

クライアント側で実行してますよね。


返信引用
Green
 Green
(@Green)
ゲスト
結合: 22年前
投稿: 11
Topic starter  

Greenです。
dairygoods様、ボコノン教徒様 レスありがとうございます。

> LANにつなげずに1台で実験しているとか。
ちょっと現在出張中でLANに繋げられる環境がないので
ノートPC一台でテストしています。
LANにつながっていない場合はループバックは入らないのでしょうか?

>setsockoptでSO_REUSEADDRをONにする必要があったような。
>> IP_MULTICAST_LOOPをsetsockoptでTRUEに設定するとループバックして受信できる。
>クライアント側で実行してますよね。
これはSO_REUSEADDRはONにしていますしクライアント側で実行しています。


返信引用
dairygoods
 dairygoods
(@dairygoods)
ゲスト
結合: 23年前
投稿: 1421
 

> LANにつながっていない場合はループバックは入らないのでしょうか?

ネットワークが有効でない環境では、
そもそもマルチキャスト・グループへの参加がエラーとなり、
受信できなかったと記憶しています。

ソケット初期化のエラーチェックをしていますか?


返信引用
Green
 Green
(@Green)
ゲスト
結合: 22年前
投稿: 11
Topic starter  

LANには繋いでいないのですがADSLルータに接続しているのでエラーには
ならなかったみたいです。一応マルチキャストのチェックをするときは
WANに接続をせずに行っていましたが特にエラーは出ませんでした。
(ルータとPCは繋いでいました)
ルータと繋いでいるLANケーブルを抜くとエラーが出ます。


返信引用
ボコノン教徒
 ボコノン教徒
(@ボコノン教徒)
ゲスト
結合: 22年前
投稿: 90
 

パフォーマンスモニターかタスクマネージャー(XPの場合)で
トラフィックの確認(Sentのみのようだけど)ができませんか?


返信引用
Green
 Green
(@Green)
ゲスト
結合: 22年前
投稿: 11
Topic starter  

返事遅くなってしまいました。すみません。
トラフィック確認してみましたがどうやら発生していないようです。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました