delphi软件编程培训节.pdf
Delphi软件编程培训班第24节
1、介绍:
用Delphi编写局域网中的聊天程序
2、说明:
Internet盛行的今天,网上聊天已成为一种时尚。同时,各单位已建成了自己的局域网;能否在局域网上实现聊天呢?可以,网上到处都有这
种工具。当然,我们可以拥有自己的聊天工具。
UserDatagramProtocol(UDP)协议,是一种无连接协议。在Delphi中利用这种协议,可以轻松的编写出聊天程序,
使用IdUDP控件进行通信(delphi)
所以使用Id控件进行UDP通信的基本操作是:
初始化:Remote的IP,Port,(延时),本地IP(DefaultIP),端口,还要激活
接受,Receive为IdUDPServerUDPRead中加入处理代码
发送消息:调用SendBuffer(Comm,Sizeof(comm))方法,把消息放入需要发送的内存即可,至于真正的发送
交给控件自己去完成
以下是代码的简单实例:
unitUnit1;
interface
uses
Windows,Messages,SysUtils,Variants,Classes,Graphics,Controls,Forms,
Dialogs,StdCtrls,ButtontCtrls,IdUDPServer,IdBaseComponent,
IdComponent,IdUDPBase,IdUDPClient,
IdSocketHandle;//这个IdSocketHandle需要手动自己加入
type
TCommBlock=record
SenderName,
Msg:string[100];
end;
TForm1=class(TForm)
Panel1:TPanel;
Label1:TLabel;
Label2:TLabel;
Label3:TLabel;
Label4:TLabel;
EdtRemote:TEdit;
EdtName:TEdit;
EdtRPort:TEdit;
EdtPort:TEdit;
Memo1:TMemo;
BitSet:TBitBtn;
Panel2:TPanel;
EdtMsg:TEdit;
Button1:TButton;
IdUDPClient1:TIdUDPClient;
IdUDPServer1:TIdUDPServer;
procedureBitSetClick(Sender:TObject);
procedureButton1Click(Sender:TObject);
procedureIdUDPServer1UDPRead(Sender:TObject;AData:TStream;
ABinding:TIdSocketHandle);
private
{Privatedeclarations}
public
{Publicdeclarations}
end;
var
Form1:TForm1;
implementation
constRECIEVETIMEOUT=5000;//定义延时,单位为毫秒
{$R*.dfm}
procedureTForm1.BitSetClick(Sender:TObject);//初始化
begin
IdUDPClient1.Host:=EdtRemote.Text;//IP地址
IdUDPClient1.Port:=StrToInt(EdtRPort.Text);//端口
IdUDPClient1.Recei