在一个单位内部或通过广域协议(如X。25)互联的行业内部都有几十或上万台计算机互联,用Intranet虽然可以建立聊天室,但实现点对点实时对话却比较困难。本人用Winsock和VB自制了一套聊天室和对话系统,特拿来供同行们参考。

一·Winsock的主要属性。事件和方法

论文网>Winsock是不可见控件,控件文件名是MSWINSCK。OCX,全称为Mcirosoftwinsockcontrol,使用时要将此控件调入工具箱。

1·属性:①Protocol=0//使用TCP协议;

②RemoteHost//准备连接远程机的IP地址

③RemotePort//连接远程机的IP端口号(1024_65535之间)

④LocalPort//本地机监听IP端口号必须与呼叫机端口号相同

2·方法:①connect//申请连接远程机

②listen//设置监听

③accept//建立实际连接

④senddata//发送数据

⑤getdata//接收数据

⑥close//关闭连接

3·事件:①connectionrequest//一方请求连接时另一方产生

②connect//一方机接受连接时另一方产生

③close//一方机关闭连接时另一方产生

④dataArrival//一方发送数据另一方产生

⑤error//请求连接失败时产生

二·制作方法

⑴在一工程中添加两个表单form1(模拟客户端)。form2(模拟服务器端)。

form1中装入控件:

控件名

主要属性

用途

VB。Formform1

caption=“雷萌聊天室“

controlbox=0‘False

模拟客户机表单

VB。Textboxtext1

multiline=-1‘True

scrollbars=3‘Bath

用于输入发往聊天室的信息

VB。Textboxtext2

locked=-1‘True

multiline=-1‘True

scrollbars=3‘Bath

显示从聊天室发来的信息

VB。Comboboxcombo1

text=“10。84。234。11“‘任定默认地址

放入常用的地址

VB。Commandbuttoncomm1

caption=“退出“

最小化form1

VB。Commandbuttoncomm2

caption=“连接“

请求与输入的地址连接

VB。Commandbuttonsend

caption=“发送“

发送Text1中的内容

VB。Labellabel1

caption=请在此输入发表的信息“

Text1的框标

VB。Labellabel2

caption=聊天室或对方的信息“

Text2的框标

VB。Labellabel3

caption=“等待连接“

显示连接状态信息

VB。Labellabel4

caption=“聊天室或对方地址“

用于指示Combo1

VB。Labellabel5

caption=“操作:选地址连接,连接成功看到聊天室内容后再输信息发送“

操作说明

VB。Timertimer1

interval=6000;enabled=false

防止连接超时

MSWinsocklib。winsocka

用于数据传输

form2中装入控件:

控件名

主要属性

用途

VB。Formform2

caption=“接收信息“

controlbox=0‘False

模拟客户机表单

VB。Commandbuttoncommand1

caption=“返回“

隐含Form2窗口

VB。Commandbuttoncommand2

caption=“对话“

点对点会话时用此直接启动Form1

VB。Textboxtext1

locked=-1‘True

multiline=-1‘True

scrollbars=3‘Bath

存放聊天或对话内容

VB。Labellabel1

caption=“接收的信息“

Text1的框标

MSWinsocklib。Winsocka

用于监听

MSWinsocklib。Winsockb

用于传送聊天信息

⑵在Form1的各控件事件中加入如下代码:

DimflagAsBoolean注释:连接状态变量

PrivateSuba_Connect()

flag=True

EndSub

PrivateSuba_DataArrival(ByValbytesTotalAsLong)

DimiAsString

a。GetDatai

Label3。Caption=“连接成功!“

Comm2。MousePointer=0

Form1。MousePointer=0

Timer1。Enabled=False

Ifi=Chr(0)Then

Text2。Text=“你是今天第一个进入本聊天室的客户。“+Chr(13)+Chr(10)

Else

Text2。Text=Text2。Text+i

EndIf

Text2。SelStart=Len(Text2。Text)

Send。MousePointer=0

Combo1。Enabled=False

Comm2。Caption=“断开连接“

Text1。SetFocus

EndSub

PrivateSuba_Error(ByValNumberAsInteger,DescriptionAsString,ByValScodeAsLong,ByValSourceAsString,ByValHelpFileAsString,ByValHelpContextAsLong,CancelDisplayAsBoolean)

flag=False

Timer1。Enabled=False

Comm2。MousePointer=0

Form1。MousePointer=0

MsgBox“网络连接失败!“

Label3。Caption=“等待连接“

Combo1。Enabled=True

Combo1。SetFocus

a。Close

Comm2。Caption=“连接“

EndSub

[1][2]下一页

高职院校公共机房的管理维护【2471字】

高级RFID阅读器應用對处理器的要求【1354字】

风机风量自动报警装置【517字】

项目管理茬软件中的應用【5351字】

随机型存储模型應用研究【1393字】

间谍软件之危害及其防范對策【1382字】

银行行办公信息服务系统【1544字】

LiMn1-xFexPO4正极材料合成及充放电性能研究

互联网教育”变革路径研究进展【7972字】

ASP.net+sqlserver企业设备管理系统设计与开发

麦秸秆还田和沼液灌溉对...

网络语言“XX体”研究

老年2型糖尿病患者运动疗...

我国风险投资的发展现状问题及对策分析

安康汉江网讯

新課改下小學语文洧效阅...

张洁小说《无字》中的女性意识