delphi.gif (306 バイト) UDPの使い方


UDPはTCPに似ていますが、送ったデータが正しく転送されたか確認しません。その代わりTCPに比べて高速です。LANなどでは伝送路のエラーはめったに起こらないので、TCPよりもUDPのほうが効率のよい転送が行えると思われます。

 

toach.gif (917 バイト) UDPでデータを送るには

  1. RemoteHost,RemotePort,LocalPortを正しく設定します。RemoteHostはIPアドレス('XXX.XXX.XXX.XXX')です。RemotePort,LocalPortはポート番号で予約ずみでない適当な値です。
  2. SendDataメソッドを実行します。

delphi1.gif (322 バイト)

// データを送る
procedure TForm1.Button1Click(Sender: TObject);
begin
    UDP1.LocalPort := StrToInt(Edit4.Text);
    UDP1.RemoteHost := Edit1.Text;
    UDP1.RemotePort := StrToInt(Edit2.Text);
    Edit3.Text := UDP1.LocalIP;
    UDP1.SendData(txtSendMsg.Text);
end;

toach.gif (917 バイト) UDPでデータを受け取るには

  1. LocalPortプロパティを正しく設定します。この値は送り側のRemotePortプロパティと同じです。
  2. データが到着するとOnDataArrivalイベントが発生するので、GetDataメソッドによってデータを受け取ります。

delphi1.gif (322 バイト)

procedure TForm1.UDP1DataArrival(Sender: TObject; bytesTotal: Integer);
var
    data: OleVariant;
begin
    UDP1.GetData(data, varOlestr);
    Edit3.Text := data;
end;

 

Delphi4 パワーガイド」の「6-14 UDPを使うには」にも説明とサンプルがあります。