用Winsock实现点对点通信
Winsock控件是VB5.0的新功能,解决了过去使用VB编程时,网络中应用程序之间无法实现点对点通信的问题。Winsock使用的TCP和UDP协议允许建立和维护与远程计算机的连接,并且在连接结束之前可以实时交换数据。
用户可以通过设置属性和事件处理轻松连接到远程计算机,并且只使用两个命令来交换数据。
使用TCP协议时,如果需要创建客户端应用程序,必须标识服务器的名称或IP地址。应用的通信端口会随时仔细监听对方发来的消息,这是系统可靠连接的保证。一旦连接发生,任何一方都可以通过SendData发送和接收数据,并通过GetData分离自己的数据。
传输数据时,需要先设置客户端的LocalPort属性,而服务器只需要将RemoteHost属性设置为客户端的以太网地址,并设置与客户端的LocalPort属性相同的端口地址,然后借助SendData方法开始发送消息。然后客户端通过GetData事件中的DataArrival事件分离发送的信息。
Winsock控件可以将本地计算机连接到远程计算机,同时使用UDP或TCP协议。这两种协议都可以创建客户端和服务器应用程序。
使用Winsock控件时,通信双方需要选择相同的协议。TCP协议适合传输需要安全保障的大容量数据文件;UDP协议适用于需要单独与多个下属通信,或者建立的连接较多且时变的情况,尤其是数据量较小时。设置时可以使用Winsock 1 . protocol = scktcpprotocol方法。首先,找到您的计算机的名称,并将其添加到Winsock的LocalHost属性中。
创建应用程序时,必须首先确定您是在构建客户端应用程序还是服务器服务。只有当已建立的服务器应用程序开始工作并进入监听状态时,客户端应用程序才会开始建立连接并进入正常的通信状态。作者建立了一个应用程序,其功能是当客户端的鼠标移动时,服务器应用程序可以实时显示鼠标的位置。下面是构建服务器应用程序的方法:
1.创建一个新的标准EXE文件;
2。添加一个Winsock控件;
3。添加以下代码:[/Br/]private subform _ load()[/Br/]TCP server . local port = 1001[/Br/]TCP server . localhost = " servser "[/Br/]TCP server . remote port = 1002[/Br/]TCP server . localhost = " klint "[/Br/]TCP server . listen[/Br/]end sub[/Br/]'连接检查[/Br/]private sub TCP server _ connection请求_ [/brsclosedthen _
TCP server . close
TCP server . accept request id
end sub
' Send data
Private sub frm server _ mon semove(x,Y)
tcpserver。send data " x " & str(x)
TCP server。send data " y " & str(y)
end sub
建立客户端应用程序的方法是:
1。创建一个新的标准EXE文件。
2。添加一个Winsock控件;
3。添加两个文本框-txt _ x和txt _ y;
4。添加以下代码:
private subform _ load()
TCP server . local port = 1002
TCP server . localhost = " klint "
TCP server . remote port = 1001
TCP . localhost = " servser "
TCP server . listen
end sub
'连接检查
private sub TCP klint _连接请求_
sckClosed Then _
tcpklint。关闭
tcpklint。接受request id
End Sub
Private Sub TCP client _ data arrival _
(ByVal bytesTotal As Long)
Dim strData As String
TCP klint。get data strData
if left(strData,1)=″X″then
txt _ X . Text = strData
else
txt _ y . Text = strData
endif
End Sub
0条评论