VB中Winsock控制的UDP协议的使用

2016-02-19 18:11 15 1 收藏

今天图老师小编给大家展示的是VB中Winsock控制的UDP协议的使用,精心挑选的内容希望大家多多支持、多多分享,喜欢就赶紧get哦!

【 tulaoshi.com - 编程语言 】

UDP协议基础:
  UDP(UserDatagramProtocol)是一种无连接协议,与TCP操作不同,计算机间并不需要建立一个连接,同时,一个UDP应用可同时作为应用的客户或服务器方。
  由于UDP协议并不需要建立一个明确的连接,因此建立UDP应用要比建立TCP应用简单得多。在TCP应用中,一个Winsock控制必须明确地设置成“监听”,而其它Winsock控制则必须使用Connect方法来初始一个连接。
  使用UDP协议,在两个Winsock控制间进行数据的发送,在连接的两端必须完成以下三步:
  1.设置RemoteHost属性为其它计算机的名称;
  2.设置RemotePort属性为第二个Winsock控制的LocalPort属性的值;
  3.申请Bind方法。
  通过使用方法Bind,则可将该Winsock控制捆绑到一个本地端口,以便该Winsock控制使用该端口来进行类似TCP的“监听”功能,并防止其它应用使用该端口。
  使用该协议传送数据,首先设置客户计算机的LocalPort属性。而作为服务器的计算机仅需要设置RemoteHost属性为客户计算机的IP地址或域名即可,并将其RemotePort属性设置成客户计算机上的LocalPort属性即可,然后就可通过申请SendData方法来开始信息发送,客户计算机则可在其DataArrial事件中使用方法GetData来获取发送的信息。
  下例具体演示了一个“谈话”应用,以允许相互间进行实时的交谈。
  UDP应用一:
  建立一个新标准EXE工程文件,拖放一个Winsock控制到表单上,添加两个文本框到表单上,然后进行以下属性的设置:
  表单(Form):Name=“frmPeerA”Caption=“UDPApplication(1)”
  Winsock控制:Name=“udpPeerA”Protocol=“sckUDPProtocol”
  文本框1(TextBox):Name“txtSend”
  文本框2(TcxtBox):Name=“txtOutput”MultiLine-TrueScrollBars=2
  然后打开代码窗口,分别在相应的事件下输入以下代码:
  PrivateSubForm_Load()
  WithudpPeerA
  .RemoteHost="197.1.1.2"'要连接到的计算机名
  .RemotePort=1010'要连接到的端口号
  .LocalPort=1011'该Winsock控制将要使用的本地端口号,便于其它端与该Winsock通讯
  .Bind1011'将该Winsock控制绑定到该本地端口
  EndWith
  EndSub
  PrivateSubtxtSend_Change()
  udpPeerA.SendDatatxtSend.Text'发送文本
  EndSub
  PrivateSubudpPeerA_DataArrival(ByValbytesTotalAsLong)
  DimstrDataAsString
  udpPeerA.GetDatastrData,vbString
  txtOutput.Text=strData
  EndSub
  UDP应用二:
  类似建立UDPServer的方法,在表单上添加一个Winsock控制及两个文本框,然后进行以下属性的设置:
  表单(Form):Name=“frmPeerB”Caption=“UDPApplication(2)”
  Winsock控制:Name=“udpPeerB”Protocol=“sckUDPProtoclool”
  文本框1(TextBox):Name=“txtSend”
  文本框2(TextBox):Name=“txtOutput”MultiLine=TrueScrollBars=2
  然后输入以下代码:
  PrivateSubForm_Load()
  WithudpPeerB
  .RemoteHost="197.1.1.2"'要连接到计算机的IP地址
  .RemotePort=1011'要连接到的端口号
  .LocalPort=1010'该Winsock控制将使用的本地端口号,便于其它方与之通讯
  .Bind1010'将该Winsock控制绑定到该本地端口
  EndWith
  EndSub
  PrivateSubtxtSend_Change()
  udpPeerB.SendDatatxtSend.Text'发送文本
  EndSub
  PrivateSubudpPeerB_DataArrival(ByValbytesTotalAsLong)
  DimstrDataAsString
  udpPeerB.GetDatastrData,vbString
  txtOutput.Text=strData
  EndSub
  要运行该实例,打开两个VisualBasic的事例,然后分别运行这两个工程文件即可。若要在不同的机器上运行此两例,只需要将两个工程文件中的RemoteHost改变成相应的计算机的IP地址或域名即可(以上例子在VisualBasic5.0及PWIN97上通过)。->

来源:http://www.tulaoshi.com/n/20160219/1616972.html

延伸阅读
  什么是UDP协议 UDP协议的全称是用户数据报,在网络中它与TCP协议一样用于处理数据包。在OSI模型中,在第四层——传输层,处于IP协议的上一层。UDP有不提供数据报分组、组装和不能对数据包的排序的缺点,也就是说,当报文发送之后,是无法得知其是否安全完整到达的。 为什么要使用UDP 在选择使用协议的时候,选择UDP必须要谨慎。在...
第一部分:得到Winamp的窗口 Winamp是一个32位的Windows应用程序。也就是说,我们可以使用32位的Windows编程的一些基础技术来实现控制Winamp,即使用Windows的消息系统。在你给Winamp发送消息之前,你必须得到Winamp窗口的句柄。这里有个方法,使用外部应用程序(例如你自己编写的VB应用)就可以达到要求。 Public Declare Functi...
计算机的多媒体技术已经广泛普及,相应的在计算机编程领域中又多出了一个多媒体控制技术,对于一般的用户来说,采用可视化编程工具是最好的选择,VB就是其中一个典型的代表。在VB中一般有三种方法可以对多媒体对象进行控制,其方法各具特色,下面简单介绍VB多媒本几种控制方法的具体过程。 ---- 一、OLE控制方法 ----VB是一个优秀的可视编程工具,全面...
摘要:本文根据Winsock技术及网络通信原理, 利用VC++编程技术,通过网络数据传输在客户端得到实时温度运行图形,实现了对人工气候室温度运行状况的远程监控, 满足了低成本、高效率的实时自动化要求。 1 引言 随着网络技术的不断发展进步,网络对整个社会产生了深远的影响。由此也出现了以网络为基础的监控治理新框架。实现基于网络的设备远程监...
标签: ASP
  没有人会在没有必要的情况下采用更加麻烦的方法来工作,除非是没有选择的余地。所以如果我要告诉你有一种简单的技术可以使你的ASP开发更加快速,并且更加高效率,你一定对此特别感兴趣。这一方法将从你的ASP页中的绝大部分business logic转移到一个Visual Basic ActiveX .dll以达到提高整个网页的性能。 使用ActiveX .dll的原因  ...

经验教程

77

收藏

31
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部