type
TForm1 = class(TForm)
memRcv: TMemo;
txtIP: TEdit;
txtPort: TEdit;
memSend: TEdit;
Button1: TButton;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
procedure receiveStr(AMsg : string ; IP : string; Port : Integer);
procedure receiveFile(AFile : string ; IP : string; Port : Integer);
public
{ Public declarations }
end;
var
Form1: TForm1;
userver : TUdpCommBase;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
userver := TUdpCommBase.Create;
userver.Start(9902);
userver.receiveString := receiveStr; // Callback function for string receive
userver.receiveFile := receiveFile; // Callback function for file receive
end;
//
procedure TForm1.receiveStr(AMsg : string; IP : string; Port : Integer);
begin
memRcv.Lines.Append(IP + ':'+ IntToStr(Port) + ' ' + AMsg);
if (AMsg = 'connect') then
begin
userver.sendString('ok', IP, Port);
end
else
begin
end;
end;
procedure TForm1.receiveFile(AFile : string; IP : string; Port : Integer);
begin
memRcv.Lines.Append(IP + ':'+ IntToStr(Port) + ' receive file : ' + AFile);
end;
procedure TForm1.Button1Click(Sender: TObject);
var
msg : string;
IP : string;
Port: Integer;
begin
msg := memSend.Text;
IP := txtIP.Text;
Port := StrToInt(txtPort.Text);
userver.sendString(msg, IP, Port);
memSend.Clear;
end;