预览加载中,请您耐心等待几秒...
1/5
2/5
3/5
4/5
5/5

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

用Delphi编写局域网中的UDP聊天程序 2004-04-0518:08:32 Internet盛行的今天,网上聊天已成为一种时尚。同时,各单位已建成了自己的局域网;能否在局域网上实现聊天呢?可以,网上到处都有这种工具。当然,我们可以拥有自己版权的聊天工具。 UserDatagramProtocol(UDP)协议,是一种无连接协议。在Delphi中利用这种协议,可以轻松的编写出聊天程序,以下的程序,在Delphi5+Pwin98中通过。 打开Delphi,新建Application,放置以下几个控件: Panel1,Panel2,Edit1,ListBox1,Memo1,Button1,Button2,BitBtn1,Nmudp1 源程序如下: unitmain; interface uses Windows,messages,SysUtils,Classes,Graphics,Controls,Forms,Dialogs,StdCtrls, Buttons,ExtCtrls,NMUDP,Menus,ComCtrls,WinSock;//增加WinSock type TForm1=class(TForm) NMUDP1:TNMUDP; Panel1:TPanel; Panel2:TPanel; Label1:TLabel; Edit1:TEdit; BitBtn1:TBitBtn; Memo1:TMemo; Panel3:TPanel; Panel4:TPanel; ListBox1:TListBox; Button1:TButton; Button2:TButton; procedureFormShow(Sender:TObject); procedureBitBtn1Click(Sender:TObject); procedureNMUDP1DataReceived(Sender:TComponent;NumberBytes:Integer; FromIP:String;Port:Integer); procedureEdit1KeyPress(Sender:TObject;varKey:Char); procedureButton1Click(Sender:TObject); procedureButton2Click(Sender:TObject); private {Privatedeclarations} public {Publicdeclarations} end; var Form1:TForm1; ComputerName:array[0..127]ofChar; implementation {$R*.DFM} procedureTForm1.FormShow(Sender:TObject); var sz:dword; begin sz:=SizeOf(Computername); GetComputerName(ComputerNamesz);//得到本机的标识 ListBox1.Items.Clear; ListBox1.Items.Add(’大家’);//在网友清单中,增加”大家”和 ListBox1.Items.Add(ComputerName);//本机名称 ListBox1.ItemIndex:=0; end; procedureTForm1.BitBtn1Click(Sender:TObject); var MyStream:TMemoryStream; TmpStr:String; i:integer; Begin ifEdit1.Text<>’’then//如果所说的内容不为空则发送 begin NMUDP1.ReportLevel:=Status_Basic; NMUDP1.RemotePort:=8888;//端口为:8888,可以自己定义,但必须与LocalPort相一致。 ifListBox1.Items[ListBox1.ItemIndex]=ComputerNamethen Edit1.Text:=ComputerName+’自言自语道:’+Edit1.Text //如果和自己对话. Else Edit1.Text:=ComputerName+’对’+ListBox1.Items[listbox1.itemindex]+’说:’+Edit1.Text; TmpStr:=Edit1.text; MyStream:=TMemoryStream.Create; try MyStream.Write(TmpStr[1],Length(Edit1.Text)); ifListBox1.ItemIndex=0then begin fori:=1toListBox