两台电脑实现连接

上传人:kms****20 文档编号:40982756 上传时间:2018-05-27 格式:DOC 页数:18 大小:40.50KB
返回 下载 相关 举报
两台电脑实现连接_第1页
第1页 / 共18页
两台电脑实现连接_第2页
第2页 / 共18页
两台电脑实现连接_第3页
第3页 / 共18页
两台电脑实现连接_第4页
第4页 / 共18页
两台电脑实现连接_第5页
第5页 / 共18页
点击查看更多>>
资源描述

《两台电脑实现连接》由会员分享,可在线阅读,更多相关《两台电脑实现连接(18页珍藏版)》请在金锄头文库上搜索。

1、两台电脑实现连接两台电脑实现连接在一个单位内部或通过广域协议(如 X.25)互联的行业内部都有几十或上万台计算机互联,用 Intranet 虽然可以建立聊天室,但实现点对点实时对话却比较困难。本人用 Winsock 和 VB 自制了一套聊天室和对话系统,特拿来供同行们参考。 一Winsock 的主要属性、事件和方法 Winsock 是不可见控件,控件文件名是 MSWINSCK.OCX,全称为Mcirosoft winsock control,使用时要将此控件调入工具箱。 1属性:Protocol=0 /使用 TCP 协议; RemoteHost /准备连接远程机的 IP 地址 RemotePo

2、rt /连接远程机的 IP 端口号 (102465535 之间) LocalPort /本地机监听 IP 端口号必须与呼叫机端口号相同 2方法:connect /申请连接远程机 listen /设置监听 accept /建立实际连接 senddata /发送数据 getdata /接收数据 close /关闭连接 3事件:connectionrequest /一方请求连接时另一方产生 connect /一方机接受连接时另一方产生 close /一方机关闭连接时另一方产生 dataArrival /一方发送数据另一方产生 error /请求连接失败时产生 二制作方法 在一工程中添加两个表单 fo

3、rm1(模拟客户端) 、form2(模拟服务器端) 。 form1 中装入控件: 控件名 主要属性 用 途 VB.Form form1 caption=”雷萌聊天室” controlbox=0 False 模拟客户机表单 VB.Textbox text1 multiline=-1 True scrollbars=3 Bath 用于输入发往聊天室的信息 VB.Textbox text2 locked=-1 True multiline=-1 True scrollbars=3 Bath 显示从聊天室发来的信息 VB.Combobox combo1 text=”10.84.234.11” 任定默认

4、地址 放入常用的地址 VB.Commandbutton comm1 caption=”退出” 最小化 form1 VB.Commandbutton comm2 caption=”连接” 请求与输入的地址连接 VB.Commandbutton send caption=”发送” 发送 Text1 中的内容 VB.Label label1 caption=“请在此输入发表的信息” Text1 的框标 VB.Label label2 caption=“聊天室或对方的信息” Text2 的框标 VB.Label label3 caption=”等待连接” 显示连接状态信息 VB.Label label

5、4 caption=”聊天室或对方地址” 用于指示 Combo1 VB.Label label5 caption=”操作:选地址连接,连接成功看到聊天室内容后再输信息发送” 操作说明 VB.Timer timer1 interval=6000; enabled=false 防止连接超时 MSWinsocklib.winsock a 用于数据传输 form2 中装入控件: 控件名 主要属性 用 途 VB.Form form2 caption=”接收信息” controlbox=0 False 模拟客户机表单 VB.Commandbutton command1 caption=”返回” 隐含 Fo

6、rm2 窗口 VB.Commandbutton command2 caption=”对话” 点对点会话时用此直接启动 Form1 VB.Textbox text1 locked=-1 True multiline=-1 True scrollbars=3 Bath 存放聊天或对话内容 VB.Label label1 caption=”接收的信息” Text1 的框标 MSWinsocklib.Winsock a 用于监听 MSWinsocklib.Winsock b 用于传送聊天信息 在 Form1 的各控件事件中加入如下代码: Dim flag As Boolean 注释:连接状态变量 Pr

7、ivate Sub a_Connect() flag = True End Sub Private Sub a_DataArrival(ByVal bytesTotal As Long) Dim i As String a.GetData i Label3.Caption = “连接成功!“ Comm2.MousePointer = 0 Form1.MousePointer = 0 Timer1.Enabled = False If i = Chr(0) Then Text2.Text = “你是今天第一个进入本聊天室的客户。“ + Chr(13) + Chr(10) Else Text2.T

8、ext = Text2.Text + i End If Text2.SelStart = Len(Text2.Text) Send.MousePointer = 0 Combo1.Enabled = False Comm2.Caption = “断开连接“ Text1.SetFocus End Sub Private Sub a_Error(ByVal Number As Integer, Description As String, ByVal Scode As Long, ByVal Source As String, ByVal HelpFile As String, ByVal Hel

9、pContext As Long, CancelDisplay As Boolean) flag = False Timer1.Enabled = False Comm2.MousePointer = 0 Form1.MousePointer = 0 MsgBox “网络连接失败 !“ Label3.Caption = “等待连接“ Combo1.Enabled = True Combo1.SetFocus a.Close Comm2.Caption = “连接“ End Sub Private Sub Comm1_Click() a.Close 注释:关闭连接 Form1.WindowSta

10、te = 1 End Sub Private Sub Comm2_Click() If Comm2.Caption = “断开连接“ Then a.Close Comm2.Caption = “连接“ Label3.Caption = “等待连接“ Combo1.Enabled = True Timer1.Enabled = False Comm2.MousePointer = 0 Form1.MousePointer = 0 Else Text2.Text = “ Label3.Caption = “正在连接.“ Comm2.MousePointer = 11 Form1.MousePoin

11、ter = 11 Timer1.Enabled = True flag = False a.Protocol = sckTCPProtocol a.RemoteHost = Combo1.Text a.RemotePort = 3000 a.Connect End If End Sub Private Sub Form_DblClick() If MsgBox(“关闭本聊天室! 确认吗?“, 36, “退出系统“) = 6 Then End Else Form1.WindowState = 1 End If End Sub Private Sub Form_Load() If App.Prev

12、Instance Then MsgBox “本系统已经加载,请看任务拦!“, 48, “提示“ End End If flag = False Load Form2 读入 form2 进入监听 End Sub Private Sub Send_Click() Dim S As String On Error GoTo ffff 防止链路中断 Send.MousePointer = 11 If Right(Text1.Text, 1) maxn Then Exit Sub End If Load b(i) 当一客户请求时启动一 Winsock 控件 b(i).Accept requestID 注

13、释:实际建立连接 If Text1.Text = “ Then 注释:发送数据 b(i).SendData Chr(0) Else b(i).SendData Text1.Text End If Form2.Show End Sub Private Sub s_Close(Index As Integer) b(Index).Close 注释:关闭连接 Unload b(Index) 注释:卸载 一个 WinSock 控件 user(Index) = False End Sub Private Sub b_DataArrival(Index As Integer, ByVal bytesTot

14、al As Long) Dim str As String Dim i As Long b(Index).GetData str Text1.Text = Text1.Text + str For i = 1 To maxn If user(i) Then b(i).SendData str End If Next i End Sub 三运行 本程序在 VB6.0 中编译通过,运行后最小化到任务栏上,也可以用API 的 Shell_Notifyicon 函数做入右下角的指示器栏中常驻内存。你可以在网络中用一个固定的机器地址作为聊天讨论室,其他用户都选该机地址连接进入该室聊天或讨论。各用户也可选各自熟悉的地址进行连接对话,双击 form1 空白处从内存中撤出系统。根据同样的原理可以制作电子邮件系统。 Provider=Microsoft.Jet.OLEDB.4.0;Data Source=agent.MDB;Persist Security Info=true;Jet OLEDB:Database Password=密码只能用于局域网(内网)广域网,要收费注册,比较贵,要自行建立网桥(物物联网)

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号