UDPでマルチキャストアドレスにデータ送信するには?(UPnPテスト)


KKE  2006-03-01 21:18:56  No: 20280

はじめまして。KKEと申します。
早速なのですが、UPnPのテストをしようと思い、UDPソケットコンポーネントを使用して、
マルチキャストアドレス239.255.255.250:1900に対してデータを送信したいのですが、
どのように送信すればいいのか分かりません。
そもそも、UDPソケットの使用方法も分からない状態です。

もしよろしければ、どなたかサンプルコードを頂けませんでしょうか?
参考URLなどでも構いません。
あと、出来ればデータ受信方法も教えてくだされば幸いです。
よろしくお願い致します。


いんでぃ  2006-03-01 22:40:36  No: 20281

TIdIPMCastServerを使えば簡単。


KKE  2006-03-01 23:53:11  No: 20282

早速のレスありがとうございます。
パケットアナライザーソフトで見たところ、送信は出来ているようでした。
ありがとうございます。
しかし今度は、受信の場合はどのようにすればよろしいのでしょうか…?
パケットアナライザーではルータから〜〜のようなデータが返ってくるのかということは分かったのですが、実際にプログラム上ではどのように受信すればよろしいのでしょうか?
調べてはみたのですが、ちょっと分かりませんでした。
よろしければお教えくださいませんでしょうか。
よろしくお願い致します。


KKE  2006-03-02 08:56:48  No: 20283

追記なのですが、TIdIPMCastClientを追加して
MulticastGroupとPortをTIdIPMCastServerと同じにしてみたのですが、
IPMCastReadイベントは発生していないようでした。
何か根本的にやり方が間違っているのかもしれませんが、下記にコードを載せておきます。
よろしくお願い致します。

procedure TForm1.Button1Click(Sender: TObject);
begin
  IdIPMCastServer1.MulticastGroup := '239.255.255.250';
  IdIPMCastServer1.Port := 1900;
  IdIPMCastServer1.Active := True;
  IdIPMCastServer1.Send('M-SEARCH * HTTP/1.1'#13#10'MX: 3'#13#10'HOST: 239.255.255.250:1900'#13#10'MAN: "ssdp:discover"'#13#10'ST: urn:schemas-upnp-org:service:WANIPConnection:1'#13#10#13#10);
  IdIPMCastServer1.Active := False;
end;

procedure TForm1.IdIPMCastClient1IPMCastRead(Sender: TObject; AData: TStream; ABinding: TIdSocketHandle);
begin
  // とりあえずイベント発生通知のみ
  Memo1.Lines.Add('Receive');
end;


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加