双击BitBtn1,添加如下代码: procedure TForm1.BitBtn1Click(Sender: TObject); begin memo1.Lines.Clear; if opendialog1.Execute then memo1.Lines.LoadFromFile(opendialog1.FileName); end; 双击BitBtn2,添加如下代码: procedure TForm1.BitBtn2Click(Sender: TObject); var strm:tmemorystream; i,count:integer; strl,str:string; buf:array[1..2048] of char; begin strm:=tmemorystream.Create; strl:=memo1.Lines.Text; if length(strl)<=2048 then begin strm.Write(strl[1],length(strl)); nmudp1.SendStream(strm); end else begin count:=trunc(length(memo1.Lines.text)/2048); for i:=0 to count do begin str:=copy(memo1.Lines.Text,i*2048+1,2048); strm.Position:=0; strm.SetSize(length(str)); strm.Write(str[1],length(str)); nmudp1.SendStream(strm); end end; strm.Free; end; BitBtn3的作用是关闭整个窗口,其代码略。 为控件NMUDP1的OnDataReceived事件中添加如下代码,其作用是当利用控件接收数据,并显示在Memo2中: procedure TForm1.NMUDP1DataReceived(Sender: TComponent; NumberBytes: Integer; FromIP: String; Port: Integer); var buf:array [1..2048] of char; ToF: file; strm:tmemorystream; begin strm:=tmemorystream.Create; strm.Clear; nmudp1.ReadStream(strm); strm.Read(buf,sizeof(buf)); memo2.Lines.Add(buf); strm.Free; end; 程序运行时,首先点击按钮Import导入数据。点击按钮Send通过控件NMUDP1发送数据。当控件NMUDP1接收到数据时,自动将数据存放在Memo2中,其结果如图2所示:
首先在DELPHI编译环境中,创建一工程。在FORM1的界面上添加两个TMemo控件(Memo1,Memo2);三个TBitBtn控件(BitBtn1, BitBtn2, BitBtn3),其Caption分别为“Import”、“Send”、“Close”;一个文件打开对话框OpenDialog1,其Filter属性为“文本文件(*.txt)|*.txt”;一个TNMUDP控件NMUDP1。NMUDP1的属性设置如下所示:
LocalPort:6666
RemoteHost:127.0.0.1
RemotePort:6666
ReportLevel:1
最后的界面如图1所示:
图1
双击BitBtn1,添加如下代码:
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
memo1.Lines.Clear;
if opendialog1.Execute then
memo1.Lines.LoadFromFile(opendialog1.FileName);
end;
双击BitBtn2,添加如下代码:
procedure TForm1.BitBtn2Click(Sender: TObject);
var
strm:tmemorystream;
i,count:integer;
strl,str:string;
buf:array[1..2048] of char;
begin
strm:=tmemorystream.Create;
strl:=memo1.Lines.Text;
if length(strl)<=2048 then begin
strm.Write(strl[1],length(strl));
nmudp1.SendStream(strm);
end
else begin
count:=trunc(length(memo1.Lines.text)/2048);
for i:=0 to count do begin
str:=copy(memo1.Lines.Text,i*2048+1,2048);
strm.Position:=0;
strm.SetSize(length(str));
strm.Write(str[1],length(str));
nmudp1.SendStream(strm);
end
end;
strm.Free;
end;
BitBtn3的作用是关闭整个窗口,其代码略。
为控件NMUDP1的OnDataReceived事件中添加如下代码,其作用是当利用控件接收数据,并显示在Memo2中:
procedure TForm1.NMUDP1DataReceived(Sender: TComponent;
NumberBytes: Integer; FromIP: String; Port: Integer);
var
buf:array [1..2048] of char;
ToF: file;
strm:tmemorystream;
begin
strm:=tmemorystream.Create;
strm.Clear;
nmudp1.ReadStream(strm);
strm.Read(buf,sizeof(buf));
memo2.Lines.Add(buf);
strm.Free;
end;
程序运行时,首先点击按钮Import导入数据。点击按钮Send通过控件NMUDP1发送数据。当控件NMUDP1接收到数据时,自动将数据存放在Memo2中,其结果如图2所示: