はじめまして。KKEと申します。
早速なのですが、UPnPのテストをしようと思い、UDPソケットコンポーネントを使用して、
マルチキャストアドレス239.255.255.250:1900に対してデータを送信したいのですが、
どのように送信すればいいのか分かりません。
そもそも、UDPソケットの使用方法も分からない状態です。
もしよろしければ、どなたかサンプルコードを頂けませんでしょうか?
参考URLなどでも構いません。
あと、出来ればデータ受信方法も教えてくだされば幸いです。
よろしくお願い致します。
TIdIPMCastServerを使えば簡単。
早速のレスありがとうございます。
パケットアナライザーソフトで見たところ、送信は出来ているようでした。
ありがとうございます。
しかし今度は、受信の場合はどのようにすればよろしいのでしょうか…?
パケットアナライザーではルータから〜〜のようなデータが返ってくるのかということは分かったのですが、実際にプログラム上ではどのように受信すればよろしいのでしょうか?
調べてはみたのですが、ちょっと分かりませんでした。
よろしければお教えくださいませんでしょうか。
よろしくお願い致します。
追記なのですが、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;
ツイート | ![]() |