利用Winsock控件实现局域网通信

利用Winsock控件实现局域网通信,第1张

利用Winsock控件实现局域网通信,第2张

对于局域网用户中的编程爱好者来说,如果能自己编写一个局域网通信程序该有多好!但是,如果你想完全靠自己从零开始编写一个通信程序,你必须对相关的网络协议和其他底层技术有深刻的理解,这不是一件容易的事情。现在,有了Winsock控件,一切都不同了。它为您封装了所有繁琐的技术细节,并提供了访问TCP和UDP网络服务的便捷方式。通过设置控件的属性并调用其方法,可以很容易地连接到远程计算机,并且可以双向交换数据,所有这些都不需要您了解TCP的详细信息或调用低级别的Winsock APIs。

Winsock控件可供Microsoft Acess、Visual Basic、Visual C++或Visual Foxpro的开发人员使用。本文以Visual Basic 6企业版为开发环境,介绍Winsock控件的初步应用。

Winsock控件可以使用两种协议:TCP协议和UDP协议,下面介绍。

TCP是数据传输协议,它允许您创建并维护与远程计算机的连接,以便它们可以相互传输数据。使用TCP协议通信,客户端应用程序和服务器应用程序必须分开建立。

创建客户端应用程序时,必须知道服务器计算机的名称或IP地址(存储在RemoteHost属性中)以及服务器计算机侦听的端口(存储在RemotePort属性中),然后调用Connect方法。

创建服务器应用程序时,您应该设置一个监听端口(LocalPort属性)并相应地调用listen方法。当客户端需要连接时,会发生ConnectionRequest事件。若要完成连接,可以在ConnectionRequest事件中调用Accept方法。连接建立后,任何计算机都可以发送和接收对方的数据。如果要发送数据,请调用SendData方法。当接收到数据时,会发生DataArrival事件,通过调用DataArrival事件中的GetData方法可以获得对方发送的数据。

说了这么多,你可能还是不太了解。我来用程序详细解释一下。

如果只有两台电脑,那就很容易了。假设机器A是客户端,机器B是服务器,其IP是192.192.192.1,接收端口是1200(只需选择一个未使用的端口)。首先在A机的客户端程序中添加一个Winsock控件,命名为sckconnect,设置其属性:remotehost = "192.192.192.1 ",为A机的IP地址,RemotePort=1200,为A机的监听端口。如果第二个服务器程序中有一个名为sckserver(0)的Winsock控件,则它的LocalPort=1200,并且Form_Load()被添加到第二个服务器程序中。

Sckserver (0)。BindSckserver (0)。“localport”绑定到本地端口。

Sckserver (0)。“听众”倾听

要传输数据,两台机器必须首先建立连接。建立连接的过程如下:

客户端需要首先请求连接。

sckconnect.connect sckconnectRemoteHost,sckconnect。远程端口

当执行这句话时,它将触发服务器程序中的ConnectRequest事件。在这个过程中,它将决定是否建立连接。其代码如下:

private sub sck server _ connection request(index为整数,Byval requestid为长整型)

如果sckserver.count=1,则

加载sckserver(1)

sckserver(1)。接受requestId

如果…就会结束

end sub

位律师回复
DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
白度搜_经验知识百科全书 » 利用Winsock控件实现局域网通信

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情