Delphi-网络编程-第一个网络方面作品(UDP聊天程序)
2010-11-16 16:57
627 查看
其实这不算是一个聊天程序,因为还不能实现双方互发信息,只有一方能发信息,呵呵
我以后再改进吧。。。。
服务端代码:
客户端代码:
我以后再改进吧。。。。
服务端代码:
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, IdBaseComponent, IdComponent, IdUDPBase, IdUDPServer, StdCtrls, ExtCtrls,IdSocketHandle; type TCommBlock = record // 通讯结构 SenderName, // 发信方名字 Msg : string[100]; // 消息 end; TForm1 = class(TForm) Memo1: TMemo; Panel1: TPanel; Memo2: TMemo; GroupBox1: TGroupBox; GroupBox2: TGroupBox; LabeledEdit1: TLabeledEdit; Button1: TButton; IdUDPServer1: TIdUDPServer; Button2: TButton; Button3: TButton; procedure IdUDPServer1UDPRead(Sender: TObject; AData: TStream; ABinding: TIdSocketHandle); procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Button3Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.IdUDPServer1UDPRead(Sender: TObject; AData: TStream; ABinding: TIdSocketHandle);//客户端连接上后触发的事件 var Comm : TCommBlock; begin AData.ReadBuffer(Comm,AData.Size); Memo1.Lines.Add(Comm.SenderName+':'+Comm.Msg); end; procedure TForm1.Button1Click(Sender: TObject);//倾听 begin IdUDPServer1.DefaultPort := StrToInt(LabeledEdit1.Text); IdUDPServer1.Active := True; Button1.Enabled:=True; end; procedure TForm1.Button2Click(Sender: TObject);//清空记录 begin Memo1.Clear; end; procedure TForm1.Button3Click(Sender: TObject);//关闭 begin Close; end; end.
客户端代码:
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, IdBaseComponent, IdComponent, IdUDPBase, IdUDPClient; type TCommBlock = record // 通讯结构 SenderName, // 发信方名字 Msg : string[100]; // 消息 end; TForm1 = class(TForm) Panel2: TPanel; Memo2: TMemo; GroupBox1: TGroupBox; GroupBox2: TGroupBox; LabeledEdit1: TLabeledEdit; LabeledEdit2: TLabeledEdit; Button1: TButton; Button2: TButton; Memo1: TMemo; IdUDPClient1: TIdUDPClient; LabeledEdit3: TLabeledEdit; Button3: TButton; Button4: TButton; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Button3Click(Sender: TObject); procedure Button4Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation const RECIEVETIMEOUT = 5000; // 毫秒,连接等待 {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject);//连技 begin IdUDPClient1.Host:=LabeledEdit1.Text; IdUDPClient1.Port:=StrToInt(LabeledEdit2.Text); IdUDPClient1.ReceiveTimeout:=RECIEVETIMEOUT; end; procedure TForm1.Button2Click(Sender: TObject);//发送 var Comm:TCommBlock; begin Comm.SenderName:=LabeledEdit3.Text; Comm.Msg:=Memo2.Lines.Text; Memo1.Lines.Add(Comm.SenderName+':' + Comm.Msg); IdUDPClient1.SendBuffer(Comm,sizeof(Comm)); end; procedure TForm1.Button3Click(Sender: TObject);//关闭 begin Close; end; procedure TForm1.Button4Click(Sender: TObject);//清空记录 begin Memo1.Clear; end; end.
相关文章推荐
- Delphi-网络编程-第一个网络方面作品(UDP聊天程序)
- Delphi-网络编程-UDP聊天程序(转)
- JAVA 网络编程 UDP(聊天程序)
- java 网络编程【6】 用UDP编写网络聊天程序 以及 TCP编程实例
- Java网络编程(UDP协议-聊天程序)
- 基于Udp的Socket网络编程聊天程序
- 基于Udp的Socket网络编程聊天程序
- Java 网络编程之 (UDP网络聊天程序)
- 【Java网络编程】UDP协议实例——简单的在线聊天程序
- 黑马程序员_Java基础_网络编程_UDP传输协议编程,控制台聊天程序
- 网络编程应用:基于UDP协议【实现聊天程序】--练习
- 网络编程学习笔记(二)UDP协议及聊天小程序的实现
- 网络编程与多线程的应用--基于socket udp编写一个简单聊天程序
- 26-网络编程-09-网络编程(UDP协议-聊天程序)
- 网络编程-UDP程序聊天小程序
- 网络编程之简单的多人聊天程序
- java网络编程实现一个聊天程序
- Java网络编程以及简单的聊天程序
- linux网络编程之socket(十四):基于UDP协议的网络程序
- Java Socket 编程——多线程网络聊天程序