在VB中如何使用Winsock 控件
本文介绍如何inSk控件可以与远程计算机连接,并用户数据文报协议(UDP)或者传输控制协议(TP)数据交换,并分别给出insk控件使用UDP协议和TP协议远程计算机连接的应用实例关键词:VB、控件、协议1.引言…
控件的使用本文介绍如何inSk控件可以与远程计算机连接,并用户数据文报协议(UDP)或者传输控制协议(TP)数据交换,并分别给出insk控件使用UDP协议和TP协议远程计算机连接的应用实例关键词:VB、控件、协议1.引言1.1insk控件的用途创建收集用户信息的客户端应用程序,并将收集的信息发送到某服务器。创建服务器应用程序,多个用户的数据的汇入点。创建“聊天”应用程序。1.2选择通讯协议的标准在使用inSk控件时,需要考虑使用协议。可以使用的协议包括TP和UDP。两种协议之间的区别在于它们的连接状态:(1、)TP协议控件是基于连接的协议,可以将它同电话系统相比。在开始数据传输之前,用户先连接。(2、)UDP协议是无连接协议,两台计算机之间的传输类似于传递邮件:消息从一台计算机发送到另一台计算机,两者之间的连接。,单次传输的最大数据量取决于的络。到底选择哪协议通常是由需要创建的应用程序决定的。下面的几个问题将有助于选择适宜的协议:在收发数据的时候,应用程序需要客户端或者服务器的确认信息?需要,使用TP协议,在收发数据之前先的连接。数据量大(例如图象与声音文件)?在连接之后,TP协议将连接并数据的完整性。不过,连接需要更多的计算资源,是“昂贵”的。数据发送是间歇的,在会话内?例如,应用程序在某个任务的时候需要通知某个计算机,U
DP协议是更适宜的。UDP协议适合发送少量的数据。1.3协议的设置在设计时,可以按如下设置应用程序使用的协议:在“属性”窗口中单击“协议”,然后选择skTPPrtl或者skUDPPrtl。也可以使用程序代码来设置Prtl属性,如下所示:insk1.Prtl=skTPPrtl 1.4计算机的名称在与远程计算机相连接的时候,需要知道它的IP地址或者它的“计算机名”。IP地址是一串数字,每三个数字为一组,中间用点隔开(形如x)。通常,最易记住的是“计算机名”。要“计算机名”,请:(1)在计算机的“任务栏”上,单击“启动”。(2)在“设置“项中,单击“控制面板“。(3)双击“络”图标。(4)单击“标识”选项卡。(5)在“计算机名称”框中可以到计算机的名称。(6)上面到的计算机名称可以ReteHst属性的值。2.insk控件使用TP协议应用实例应用程序要使用TP协议,那么决定应用程序是服务器客户端。要创建服务器端,那么应用程序需要“监听”指定的端口。当客户端连接请求时,服务器端能够请求并连接。在连接之后,客户端与服务器端可以自由地互相通讯。下列创建非常简单的服务器:(1)要创建TP服务器,请:(2)创建新的StandardEXE工程。(3)将窗体的标题改为“TP服务器”。(4)在窗体中放入insk控件(:\inds\syste\sinsk.x),并将它的名字改为tpServer。(5)在窗体上添加两个TextBx控件。将个命名为txtSend,个为txtutput。为窗体添加如下的代码。PrivateSubFr_Lad() ’将LalPrt属性设置为整数。’然后调用Listen方法。tpServer.LalPrt=1001 tpServer.Listen EndSub PrivateSubtpServer_nnetinRequest(ByValrequestIDAsLng) ’检查控件的State属性为关闭的。’,’在新的连接之前先关闭此连接。IftpServer.State sklsedThen_ tpServer.lse ’requestID 参数的’连接。tpServer.AeptrequestID EndSubPrivate Sub txtSend_hange()'名为txtSend 的TextBx 控件中'包含了要
发送的数据。当用户往文本框中'键入数据时,使用SendData 方法'发送输入的字符串。tpServer.SendData txtSend.TextEnd SubPrivate Sub tpServer_DataArrival (ByVal bytesTtal As Lng)'为的数据声明变量。'调用GetData 方法,并将数据赋予名为txtutput 的TextBx 的Text 属性。Di strData As StringtpServer.GetData strDatatxtutput.Text = strDataEnd Sub 上面的创建了简单的服务器应用程序。使它能够工作,还为它创建客户端的应用程序。要创建TP 客户端,请:(1)在工程中添加新的窗体。(2)将窗体的标题改为“TP lient”。(3)在窗体中添加insk 控件,并将其命名为tplient。(4)在frlient 中添加两个TextBx
控件。将个命名为txtSend,个为txtutput。(5)在窗体上放andButtn 控件,并将其命名为dnnet。(6)将andButtn 控件的标题改为nnet。在窗体中添加如下的代码。注意:将ReteHst 属性值修改为您的计算机的名字。Private Sub Fr_Lad() 'insk 控件的名字为tplient。'注意:要指定远程主机,可以使用' IP 地址(例如:"121.111.1.1"),也可以使用“计算机名”如下所示。tplient.ReteHst = "ReteputerNae" tplient.RetePrt = 1001End SubPrivate Sub dnnet_lik() '调用nnet 方法,初始化连接。End SubPrivate Sub txtSend_hange() tplient.SendData txtSend.TextEnd SubPrivate Sub tplient_DataArrival (ByVal bytesTtal As Lng) Di strData As String tplient.GetData strData txtutput.Text = strDataEnd Sub 上面的代码创建了简单的客户/服务器模式的应用程序。可以将两者都运行起来:运行工程,然后单击“连接”。在两个窗体的txtSend 文本框中键入文本,可以看到同样的文字将在另窗体
的txtutput 文本框中。3.insk控件使用UDP 协议应用实例创建UDP 应用程序比创建TP 应用程序还要简单,UDP 协议不需要显式的连接。在上面的TP 应用程序中,insk 控件显式地“监听”,另使用nnet 方法初始化连接。UDP 协议不需要显式的连接。要在两个控件中间发送数据,需要的三步(在连接的双方):(1)将ReteHst 属性设置为另一台计算机的名称。(2)将RetePrt 属性设置为个控件的LalPrt 属性。(3)调用Bind 方法,指定使用的LalPrt。在创建UDP 应用程序时调用Bind 方法。Bind 方法的作用是为控件“保留”本地端口。例如,将控件绑定到1001 号端口,那么其它应用程序将使用该端口“监听”。该方法阻止其它应用程序使用同样的端口。Bind 方法的个参数是任选的。计算机上多个络适配器,可以用LalIP 参数来指定使用哪适配器。忽略该参数,控件使用的将是计算机上“控制面板”设置中“络”控制面板对话框中列出的个适配器。在使用UDP 协议的时候,可以任意地ReteHst 和RetePrt 属性,绑定在同LalPrt 上。TP 协议与此不同,在ReteHst 和RetePrt 属性之前,先关闭连接。两台计算机的地位可以看成“平等的”,应用程序也被称为点到点的。说明问题,下面将创建“聊天”应用程序,两个人可以它实时的交谈。要创建UDP 伙伴,请:创建新的Standard EXE 工程。将缺省的窗体的名称修改为frPeerA。将窗体的标题修改为“Peer A”。在窗体中放入insk 控件,并将其命名为udpPeerA。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论