用Winsock实现点对点通信

上传人:公**** 文档编号:431141378 上传时间:2023-06-27 格式:DOCX 页数:3 大小:11.15KB
返回 下载 相关 举报
用Winsock实现点对点通信_第1页
第1页 / 共3页
用Winsock实现点对点通信_第2页
第2页 / 共3页
用Winsock实现点对点通信_第3页
第3页 / 共3页
亲,该文档总共3页,全部预览完了,如果喜欢就下载吧!
资源描述

《用Winsock实现点对点通信》由会员分享,可在线阅读,更多相关《用Winsock实现点对点通信(3页珍藏版)》请在金锄头文库上搜索。

1、用 Winsock 实现点对点通信Winsock控件是VB5.0的新增功能,它解决了以往应用VB编程时网络中应用 程序之间无法实现点对点通信的难题。Winsock使用的TCP协议和UDP协议允许 建立并保持一个到远程计算机上的连接,且可以在连接结束之前实时地进行数 据交换。用户仅通过设置属性并借助事件处理就能够轻而易举地连接到一个远 程的计算机上, 而且只用两个命令就可以实现数据交换。使用 TCP 协议时, 如果需要创建一个客户应用程序, 就必须识别服务器的名 称或IP地址。应用程序的通信端口随时都将仔细监测对方发出的消息,这是系 统进行可靠连接的保证。一旦连接发生, 任何一方都可以通过 Se

2、ndData 发送和 接收数据, 并借助 GetData 把自己的数据分离出来。传送数据时,需要先设定客户机的LocalPort属性,服务器则只需要把 RemoteHost 属性设定为客户机以太网的地址,并设定与客户机LocalPort属性相同的端口地 址, 借助SendData方法开始发送消息。客户机则在GetData事件中通过DataArrival 事 件分离出发送的信息。一个 Winsock 控件可以让本地计算机连接到远程的计算机上, 同时使用 UDP 或 TCP 协议, 两个协议都能创建客户机和服务器应用。使用Winsock控件时,通信的双方需要选定相同的协议。TCP协议适用于传 送

3、大容量、需要安全性保证的数据文件;而UDP协议适用于需要分别与很多下属通 信, 或者建立的连接比较多且为时变的情况,特别是在数据量很小的时候。设定时可 以使 用 Winsock1.Protocol = sckTCPProtocol 方法, 首先要找到你的计算机的名称, 并把 它添入Winsock的LocalHost属性中。创建一个应用程序时,首先要确定你建立的是客户方应用还是服务器服务, 只 有建立的服务器应用开始工作,并进入监听状态时,客户应用程序才开始建立连 接, 进入正常的通信状态。笔者建立了一个应用程序,它的功能是当客户方的鼠标移 动时, 服务器应用程序上能够实时显示该鼠标的位置。下面

4、是建立服务器应用的方 法:1. 创建一个新的标准 EXE 文件;2. 加入一个Winsock控件;3. 加入如下代码: Private Sub Form_Load() tcpServer.LocalPort = 1001tcpServer.Localhost 二 servser tcpServer.remotePort = 1002t cpServer.Localhos t 二 kli nt tcpServer.ListenEnd Sub连接检查Private Sub tcpServer_ConnectionRequest (ByVal requestID As Long)If tcpServ

5、er.State sckClosed Then _ tcpServer.Close tcpServer.Accept requestIDEnd Sub发送数据Private Sub frmserver_monsemove(x,y) t cpServer.SendDa ta x& st r(x) t cpServer.SendDa ta y& st r(y)End Sub 建立客户应用的方法为:1. 创建一个新的标准EXE文件;2. 加入一个Winsock控件;3. 加入两个TEXT框txt_x和txt_y;4. 加入如下代码: Private Sub Form_Load() tcpServer

6、.LocalPort = 1002t cpServer.Localhos t 二 kli nt tcpServer.remotePort = 1001 tcpServer.Localhost 二 servser tcpServer.ListenEnd Sub 连接检查Private Sub tcpklint_ConnectionRequest (ByVal requestID As Long)If tcpklint.State sckClosed Then _ tcpklint.Close tcpklint.Accept requestIDEnd Sub Private Sub tcpClie

7、nt_DataArrival _ (ByVal bytesTotal As Long) Dim strData As String tcpklint.GetData strDataif lef t(st rDa ta,l) = X t hen txt_x.Text = strData elsetxt_y.Text = strData endifEnd Sub以上例程实现的是一个非常简单的点对点通信,在此基础上略加改造,可以 形成功能复杂的实时计算机网络A-A交互通信系统,用于控制、图形仿真等。使用UDP协议建立对等通信和通过TCP建立客户/服务器通信的方法略有不 同, 它不需要建立客户和服务器

8、,而是建立对等通信。此过程通过以下几步实现:1. 设定Winsock的RemoteHost属性为一个通信的计算机名称;2. 设定 RemotePort 为一个接口号;3. 调用Winsock的Bind事件绑定本地的接口号。具体设定方法为: Private Sub Form_Load()With Winsock1.RemoteHost二 PeerB.Remo tePor t 二 1001,远程连接号.Bind 1002绑定的本地号End WithEnd Sub程序的其它部分与TCP方法类似,即通过SendDa ta和Get Da ta方法发送或提取数据OUDP和TCP协议在使用中各有特点,如果灵活使用,可以得到很好的效果。 令人欣慰的是,VB5.0中Winsock给我们提供了一种简便的数据传送方法,使我们 得以轻松地实现网络点对点通信。

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

当前位置:首页 > 办公文档 > 解决方案

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