Delphi TIdIPMCastClient および TIdIPMCastServer でのマルチキャスト送受信

Delphi TIdIPMCastClient と TIdIPMCastServer を利用したマルチキャスト送受信
最小コード

サーバ(送信側)
フォームへ IdIPMCastServer1, Edit1, Button1 を置く
uses IdGlobal;

procedure TMultiCastServerForm.Button1Click(Sender: TObject);
begin
    IdIPMCastServer1.Send(Edit1.Text, IdGlobal.IndyTextEncoding_UTF8);
end;

procedure TMultiCastServerForm.FormCreate(Sender: TObject);
begin
    IdIPMCastServer1.MulticastGroup := '224.0.0.1';
    IdIPMCastServer1.Port := 5000;
    IdIPMCastServer1.Active := True;
end;

クライアント(受信側)
フォームへ IdIPMCastClient1, Memo1 を置く
uses IdGlobal;

procedure TMulticastClientForm.FormCreate(Sender: TObject);
begin
    IdIPMCastClient1.MulticastGroup := '224.0.0.1';
    IdIPMCastClient1.DefaultPort := 5000;
    IdIPMCastClient1.Active := True;
end;

procedure TMulticastClientForm.IdIPMCastClient1IPMCastRead(Sender: TObject; const AData: TIdBytes; ABinding: TIdSocketHandle);
begin
    Memo1.Lines.Add(IdGlobal.IndyTextEncoding_UTF8.GetString(AData));
end;
終了時(IdIPMCastClient1.Active := False;)で例外が発生するようなので補足するべきかも

コメント