用VB实现聊天讨论室和点對点會话【671字】
时间:2023-04-11 22:37 来源:毕业论文 作者:www.youerw.com 点击:次
在一个单位内部或通过广域协议(如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]下一页 (责任编辑:qin) |