Delphi的UDP网络传输编程
1、打开Delphi7集成开发环境,将默认工程的Form1窗体Caption属性设置为:服务端,在窗体上放一个idUDPServer1控件。

2、在uses单元引用加入IdSocketHandle;
在Form1的OnCreate事件方法写如下代码:
procedure TForm1.FormCreate(Sender: TObject);
begin
idudpServer1.DefaultPort:=5000;
idudpServer1.Active:=True;
end;
在Form1的OnDestroy事件方法写如下代码:
procedure TForm1.FormDestroy(Sender: TObject);
begin
idudpServer1.Active:=False;
end;

3、在idUDPServer1控件的OnRead事件方法写如下代码:
procedure TForm1.IdUDPServer1UDPRead(Sender: TObject; AData: TStream;
ABinding: TIdSocketHandle);
var
Ds: TStringStream;
begin
Ds:= TStringStream.Create(''); //接收数据流
Ds.CopyFrom( AData, AData.Size);
ShowMessage('接收到消息:'+Ds.DataString); //显示数据流内容
Ds.Free;
end;
保存工程工程名为ProServer.dpr,F5运行程序,生成ProServer.exe

4、新建一个Delphi工程,更改默认Form1的Caption属性为:客户端,在窗体上放一个idUDPClient1控件和一个Button1控件


5、在Form1的OnCreate事件方法写如下代码:
procedure TForm1.FormCreate(Sender: TObject);
begin
idUDPClient1.Host:= '127.0.0.1';
idUDPClient1.Port:= 5000;
idUDPClient1.Active:= True;
end;
在Form1的OnDestroy事件方法写如下代码:
procedure TForm1.FormDestroy(Sender: TObject);
begin
idudpClient1.Active:=False;
end;

6、双击Button1进入OnClick事件方法,写代码如下:
procedure TForm1.Button1Click(Sender: TObject);
begin
idUDPClient1.Send('发送消息abc');
end;

7、F5运行程序,再运行第3步生成的ProServer.exe程序,点击客户端的Button1按钮,服务端弹出对话框,显示客户端传过去的内容,数据传输成功。

