用 Delp hi 编写局域网中 C/S 型聊天程序 中原工学院计算机教研室 夏敏捷 Internet 盛行的今天,网上聊天 QQ 已成为一种时尚
QQ 是深圳腾讯公司的一个网络实时通讯软件,在国内拥有大量的用户群
但 QQ 必须连接上互联网登陆到腾讯的服务器才能使用
所以我们可以自己写一个在局部网里面使用的自己的 QQ
QQ 使用的是 UDP 协议,这是一种无连接协议,即通信双方不用建立连接就可以发送信息,所以效率比较高
Delphi 本身自带的 FastNEt 公司的 NMUDP 控件就是一个 UDP 协议的用户数据报控件
这里我们编写的局域网上实现聊天的程序采用的是 TCP 协议,TCP是一种面向连接协议,具有较高的可靠性
在 Delphi 中利用 ClientSocket、ServerSocket 这两种控件(Internet 面板上),可以轻松的编写出 C/S 聊天程序,以下的程序在 Delphi 6+winXP中通过
一、原理 首先建立客户与主机的连接,把要发送的文字信息写进字符串中,然后ClientSocket 组件的 Socket
sendtext 方法把文本发送出去
当主机有数据接收时,触发它的 ServerSocket组件 onClientRead 事件,我们在这里用 socket
ReceiveText 接收字符信息,然后显示出来
主机可以通过Socket
sendtext 方法再将此用户信息转发给所有用户或单独的用户,在数据到达客户端后触发客户端OnRead 事件,接受主机的数据
为了区分不同的信息(新用户信息、昵称、交谈、用户离开)设计了以下协议格式: 1. 发送添加的新用户信息的格式: “添加用户”@用户的昵称 ^它的 IP@用户的昵称 ^它的 IP@… … @ 此信息中将所有的用户的昵称和它的 IP 均包含在其中,新用户是最后一个