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

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

サーバ(送信側)
フォームへ IdIPMCastServer1, Edit1, Button1 を置く
  1. uses IdGlobal;  
  2.   
  3. procedure TMultiCastServerForm.Button1Click(Sender: TObject);  
  4. begin  
  5.     IdIPMCastServer1.Send(Edit1.Text, IdGlobal.IndyTextEncoding_UTF8);  
  6. end;  
  7.   
  8. procedure TMultiCastServerForm.FormCreate(Sender: TObject);  
  9. begin  
  10.     IdIPMCastServer1.MulticastGroup := '224.0.0.1';  
  11.     IdIPMCastServer1.Port := 5000;  
  12.     IdIPMCastServer1.Active := True;  
  13. end;  

クライアント(受信側)
フォームへ IdIPMCastClient1, Memo1 を置く
  1. uses IdGlobal;  
  2.   
  3. procedure TMulticastClientForm.FormCreate(Sender: TObject);  
  4. begin  
  5.     IdIPMCastClient1.MulticastGroup := '224.0.0.1';  
  6.     IdIPMCastClient1.DefaultPort := 5000;  
  7.     IdIPMCastClient1.Active := True;  
  8. end;  
  9.   
  10. procedure TMulticastClientForm.IdIPMCastClient1IPMCastRead(Sender: TObject; const AData: TIdBytes; ABinding: TIdSocketHandle);  
  11. begin  
  12.     Memo1.Lines.Add(IdGlobal.IndyTextEncoding_UTF8.GetString(AData));  
  13. end;  
終了時(IdIPMCastClient1.Active := False;)で例外が発生するようなので補足するべきかも

コメント