快捷搜索:

用Visual Basic也可以实现“P2P”

文/北京 张维

Winsock控件是VB的新增功能,它办理了以往利用VB编程时收集中利用法度榜样之间无法实现点对点通信的难题。Winsock应用的TCP协讲和UDP协议容许建立并维持一个到远程谋略机上的连接,且可以在连接停止之前实时地进行数据互换。用户仅经由过程设置属性并借助事故处置惩罚就能够易如反掌地连接到一个远程的谋略机上,而且只用两个敕令就可以实现数据互换。

应用TCP协议时,假如必要创建一个客户利用法度榜样,就必须识别办事器的名称或IP地址。利用法度榜样的通信端口随时都将仔细监测对方发出的消息,这是系统进行靠得住连接的包管。一旦连接发生,任何一方都可以经由过程SendData发送和接管数据,并借助GetData把自己的数据分离出来。传送数据时,必要先设定客户机的LocalPort属性,办事器则只必要把RemoteHost属性设定为客户机以太网的地址,并设定与客户机LocalPort属性相同的端口地址,借助SendData措施开始发送消息。客户机则在GetData事故中经由过程DataArrival事故分离启程送的信息。一个Winsock控件可以让本地谋略机连接到远程的谋略机上,同时应用UDP或TCP协议,两个协议都能创建客户机和办事器利用。

应用Winsock控件时,通信的双方必要选定相同的协议。TCP协议适用于传送大年夜容量、必要安然性包管的数据文件,而UDP协议适用于必要分手与很多下属通信,或者建立的连接对照多且为时变的环境,分外是在数据量很小的时刻。设准时可以应用Winsock1.Protocol =sckTCPProtocol措施,首先要找到你的谋略机的名称,并把它添入Winsock的LocalHost属性中。

创建一个利用法度榜样时,首先要确定你建立的是客户方利用照样办事器办事,只有建立的办事器利用开始事情,并进入监听状态时,客户利用法度榜样才开始建立连接,进入正常的通信状态。笔者建立了一个利用法度榜样,它的功能是当客户方的鼠标移动时,办事器利用法度榜样上能够实时显示该鼠标的位置。

下面是建立办事器利用的措施:

1.创建一个新的标准EXE文件;

2.加入一个Winsock控件;

3.加入如下代码:

Private Sub Form Load()

tcpServer.LocalPort = 1001

tcpServer.Localhost = "servser"

tcpServer.remotePort = 1002

tcpServer.Localhost = "klint"

tcpServer.Listen

End Sub

′连接反省

Private Sub tcpServer ConnectionRequest(ByVal requestID As Long)

If tcpServer.StatesckClosed Then

tcpklint.Close

tcpklint.Accept requestID

End Sub

接管数据

Private Sub tcpClient DataArrival

(ByVal bytesTotal As Long)

Dim strData As String

tcpklint.GetData strData

if left(strData,1)="X"then

txt x.Text = strData

else

txt y.Text = strData

endif

End Sub

以上例程实现的是一个异常简单的点对点通信,在此根基上略加改造,可以形成功能繁杂的实时谋略机收集A-A交互通信系统,用于节制、图形仿真等。VB中Winsock给我们供给了一种简便的数据传送措施,使我们得以轻松地实现收集点对点通信。

您可能还会对下面的文章感兴趣: