unit Unit1;interfaceuses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Sockets;type
  TForm1 = class(TForm)
    UdpSocketSend: TUdpSocket;
    Memo1: TMemo;
    Label1: TLabel;
    Label2: TLabel;
    Edit1: TEdit;
    Button1: TButton;
    HeIP: TEdit;
    Label3: TLabel;
    Label4: TLabel;
    HePort: TEdit;
    Label5: TLabel;
    MyPort: TEdit;
    Button2: TButton;
    procedure UdpSocketSendReceive(Sender: TObject; Buf: PAnsiChar;
      var DataLen: Integer);
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;var
  Form1: TForm1;implementation{$R *.dfm}procedure TForm1.UdpSocketSendReceive(Sender: TObject; Buf: PAnsiChar;
  var DataLen: Integer);
var
  str:array[0..1000] of char;
begin
  str:='';
  UdpSocketSend.ReceiveBuf(str,DataLen);
  Memo1.Lines.Add(str);
end;procedure TForm1.Button1Click(Sender: TObject);
var
  strarr:array[0..1000] of char;
  Str:string;
  len:integer;
begin
  Str:=Edit1.Text;
  if length(str)=0 then len:=1 else len:=length(str);
  StrpCopy(strarr,Str);
  Memo1.Lines.Add(Edit1.Text);
  UdpSocketSend.RemoteHost:=HeIP.Text;
  UdpSocketSend.RemotePort:=HePort.Text;
  UdpSocketSend.SendBuf(strarr,len);
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
  UdpSocketSend.LocalPort:=MyPort.Text;
  UdpSocketSend.RemoteHost:=HeIP.Text;
  UdpSocketSend.RemotePort:=HePort.Text;
end;end.