网站导航免费论文 原创论文 论文搜索 原创论文 网学软件 学术大家 资料中心 会员中心 问题解答 原创论文 论文素材 设计下载 最新论文 下载排行 论文上传 在线投稿 联系我们
返回网学首页
网学联系
最新论文 推荐专题 热门论文 素材专题
当前位置: 网学 > 编程文档 > DELPHI > 正文
使用TCP/IP协议实现聊天程序
来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/10/12
下载{$ArticleTitle}原创论文样式

TCP/IP协议的传输即面向点到点的传输方式!

1.创建应用程序

选择“NEW”菜单下的“Application”选项,创建一个普通的应用程序

2.创建所需控件。

首先在控件栏的Win32页中选择ImageList控件和CoolBar控件,再从Win32栏选择ToolBar控件放置到CoolBar

控件上。用鼠标右键单击“ImageList”控件,在弹出的菜单中选择“ImageList Editer”选项,弹出

“ImageList Editer”对话框,单击“Add”按钮,选择5幅位图。在对象管理器Object Inspector中将

ToolBar控件的Image属性设为“ImageList1”,用鼠标右键单击“ToolBar”控件,选“New Button”选项,

总共创建5个ToolButton,在 对象管理器中将5个ToolButton的ImageIndex属性分别设置为0,1,2,3,4。

此时ImageList控件中的5幅位图将会分别显示在Toolbutton上,将5个ToolButton控件的ShowHint属性全都设

置为“ture”,并将它们的Hint属性分别设置为“监听”、“连接”、“断开连接”、“更改你的昵称”和

“退出聊天程序”。

然后在窗体中放置一个Edit控件、Memo控件、StatusBar控件和一个Label控件。将Label控件的Caption属性

设置为“输入框”。

最后,也是最关键的,在控件栏的Internet页中选择SeverSocket控件和ClientSocket控件放置在窗体中,将

SeverSocket控件和ClientSocket控件的Port属性设置为“1100”。SeverSocket控件是基于TCP/IP协议传输

的服务器方的控件,它的主要作用是用来监听其它基于TCP/IP传输计算机的连接请求,并在收到连接请求时

建立连接,进行数据传输,ClientSocket控件是基于TCP/IP传输的客户方的控件,它的主要作用是向监听

TCP/IP传输的服务器发出连接请求,在收到服务器的允许连接的响应后,建立连接,并传输数据,之所以在

窗体中同时创建ServerSocket和ClientSocket控件,是因为应用程序既可作为服务器,又可作为客户端使用。

3.Serversocket和ClientSocket之间的连接

首先设置两个全局变量:

NickName:string;

b_Client:boolean;

其中NickName用于放聊天人的名称,b_Client用于表明应用程序是否作为客户端进行数据传输。

在窗体Form1的Oncreate事件中初始化变量,代码如下:

procedure TForm1.FormCreate(Sender:TObject);

begin

NickName:+="我的昵称";

b_Client:=ture;

end;

双击ToolButton1,编写服务器监听代码如下:

procedure TForm1.Toolbutton1Click(Sender:TObject);

begin

ClientSocket1.close;

ServerSocket1.open;

StatusBar1.SimpleText:=''开始监听’;

end;

双击ToolButton2,编写客户的申请连接,代码如下:

procedure TForm1.ToolButton2Click(Sender:TObject);

var s:string;

begin

if Clientsocket1.Active then

ClientSocket1.close;

if InputQuery(''连接到计算机'',''要连接的计算机名称或IP地址:'',s) then

if Length(s)>0 then  

with ClientSocket1 do

begin

Host:=s;

open;

end;

end;

在对象管理器中,双击ClientSocket事件页的OnConnecting事件,编写处理客户等待连接请求,代码

如下:

procedure TForm1.ClientSocket1Connecting(Sender:TObject;Socket:TCustomWinSocket);

begin

StatusBar1.SimpleText:=''等待来自''+Socket.RemoteAddress+''的连接允许响应'';

end;

在对象管理器中,双击SeverSocket事件页的OnAccept事件,处理服务器响应连接事件,代码如下:

procedure TForm1.SeverSocket1Accept(Sender:TObject;Socket:TCustomWinSocket);

begin

b_Client:=false;

StatusBar1.SimpleText:=''连接到''+Socket.RemoteAddress;

end;

在对象管理器中,双击ClientSocket事件页的OnConnect事件,OnConnect事件在连接成功时被调用,代码如下:

procedure TFo

网学推荐

免费论文

原创论文

浏览:
设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
湘ICP备09003080号