5,388
社区成员
发帖
与我相关
我的任务
分享
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, IdUDPServer, IdBaseComponent, IdComponent, IdUDPBase,
IdUDPClient, StdCtrls,IdSocketHandle, IdAntiFreezeBase, IdAntiFreeze;
type
TJ=Record
SendName:String;
Msg:String[100];
end;
type
TForm1 = class(TForm)
Label1: TLabel;
Edit1: TEdit;
Label2: TLabel;
Edit2: TEdit;
Edit4: TEdit;
Label3: TLabel;
Memo1: TMemo;
Edit5: TEdit;
Button1: TButton;
UDPC: TIdUDPClient;
UDPS: TIdUDPServer;
procedure Button1Click(Sender: TObject);
procedure UDPSUDPRead(Sender: TObject; AData: TStream;
ABinding: TIdSocketHandle);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject); //向远程主机发送信息
begin
Memo1.Lines.Add(Edit5.Text);
UDPC.Send(Edit5.Text);
end;
procedure TForm1.UDPSUDPRead(Sender: TObject; AData: TStream;
ABinding: TIdSocketHandle);
var
TTF:String;
begin
TTF:=UDPS.ReceiveString(2000); //获取字符串信息
Memo1.Lines.Add(TTF);
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
UDPC.Host:=Edit1.Text; //设定远程IP
UDPC.Port:=StrToInt(Edit2.Text); //设定远程端口
UDPC.ReceiveTimeout:=2000; //设置超时时间
UDPS.DefaultPort:=StrToInt(Edit4.Text); //设置本地端口
UDPS.Active:=True; //IdUPDServer开始监听
end;
end.
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, IdUDPClient, IdBaseComponent, IdComponent, IdUDPBase,
IdUDPServer, StdCtrls,IdSocketHandle;
type
TForm1 = class(TForm)
Button1: TButton;
IdUDPServer1: TIdUDPServer;
IdUDPClient1: TIdUDPClient;
Memo1: TMemo;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure IdUDPServer1UDPRead(Sender: TObject; AData: TStream;
ABinding: TIdSocketHandle);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
self.IdUDPServer1.DefaultPort:=1984;
self.IdUDPServer1.Active:= true;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
self.IdUDPClient1.Send('127.0.0.1',1984,'fdsafdsa');
end;
procedure TForm1.IdUDPServer1UDPRead(Sender: TObject; AData: TStream;
ABinding: TIdSocketHandle);
var
sStream: TStringStream;
begin
sStream:= TStringStream.Create('');
try
sStream.CopyFrom(AData,AData.Size);
Memo1.Lines.Add(sStream.DataString);
finally
sStream.Free;
end;
end;
end.