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

原创 2000年08月21日 19:29:00
VB中Winsock控制的UDP协议的使用 
  UDP协议基础:
  UDP(User Datagram Protocol)是一种无连接协议,与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=“UDP Application(1)”
  Winsock控制:Name=“udpPeerA” Protocol=“sckUDPProtocol”
  文本框1(TextBox): Name“txtSend”
  文本框2(TcxtBox): Name=“txtOutput” MultiLine-True ScrollBars=2
  然后打开代码窗口,分别在相应的事件下输入以下代码:
  Private Sub Form_Load()
   With udpPeerA
   .RemoteHost=“197.1.1.2” '要连接到的计算机名
   .RemotePort=1010 '要连接到的端口号
   .LocalPort=1011 '该Winsock控制将要使用的本地端口号,便于其它端与该Winsock通讯
   .Bind 1011 '将该Winsock控制绑定到该本地端口
   EndWith
  End Sub
  Private Sub txtSend_Change()
   udpPeerA.SendData txtSend.Text'发送文本
  End Sub
  Private Sub udpPeerA_DataArrival(ByVal bytesTotal As Long)
   Dim strData As String
   udpPeerA.GetData strData,vbString
   txtOutput.Text = strData
  End Sub
  UDP应用二:
  类似建立UDP Server的方法,在表单上添加一个Winsock控制及两个文本框,然后进行以下属性的设置:
  表单(Form):Name=“frmPeerB” Caption=“UDP Application(2)”
  Winsock控制:Name=“udpPeerB” Protocol=“sckUDPProtoclool”
  文本框1(TextBox):Name=“txtSend”
  文本框2(TextBox):Name=“txtOutput” MultiLine=True ScrollBars=2
  然后输入以下代码:
  Private Sub Form_Load()
   With udpPeerB
   .RemoteHost=“197.1.1.2” '要连接到计算机的IP地址
   .RemotePort=1011 '要连接到的端口号
   .LocalPort=1010 '该Winsock控制将使用的本地端口号,便于其它方与之通讯
   .Bind 1010 '将该Winsock控制绑定到该本地端口
   End With
  End Sub
  Private Sub txtSend_Change()
   udpPeerB.SendData txtSend.Text '发送文本
  End Sub
  Private Sub udpPeerB_DataArrival(ByVal bytesTotal As Long)
   Dim strData As String
   udpPeerB.GetData strData,vbString
  txtOutput.Text=strData
  End Sub
  要运行该实例,打开两个Visual Basic的事例,然后分别运行这两个工程文件即可。若要在不同的机器上运行此两例,只需要将两个工程文件中的RemoteHost改变成相应的计算机的IP地址或域名即可(以上例子在Visual Basic 5.0及PWIN97上通过)。

VB实现UDP通信,并对接收到的数据进行简单处理!

  • 2009年06月24日 15:54
  • 13KB
  • 下载

使用winsock+UDP写的一个简单接收端程序

本文原创,如转发,请标注原文链接地址:发表时间:2010-11-26  09:35:40本程序使用VS2008编写,代码如下://先打开服务器端,服务器在执行完recvfrom()后堵塞,等待接收数据...
  • Microsues
  • Microsues
  • 2010年11月25日 09:39
  • 1604

WinSock编程流程(2)- UDP

TCP 由于可靠、稳定的特点而被用在大部分场合,但它对系统资源要求比较高。UDP 是一个简单的面向数据报的传输层协议,又叫用户数据报协议。它提供了无连接的、不可靠的数据传输服务。无连接是指它不像TCP...
  • u011628751
  • u011628751
  • 2015年06月10日 14:57
  • 815

vb socket通信(TCP/UDP)一对一、多对一

利用 WinSock 控件可以与远程计算机建立连接,并通过用户数据文报协议 (UDP)或者传输控制协议 (TCP)进行数据交换。这两种协议都可以用来创建客户与服务器应用程序。与 Timer 控件类似,...
  • bihaiqiyuan
  • bihaiqiyuan
  • 2013年12月25日 22:26
  • 7474

VB Winsock 控件TCP与UDP连接实例

利用 WinSock 控件可以与远程计算机建立连接,并通过用户数据文报协议 (UDP)或者传输控制协议 (TCP)进行数据交换。这两种协议都可以用来创建客户与服务器应用程序。与 Timer 控件类似,...
  • niepangu
  • niepangu
  • 2014年10月19日 10:19
  • 2511

VB Winsock 控件TCP与UDP连接实例

利用 WinSock 控件可以与远程计算机建立连接,并通过用户数据文报协议 (UDP)或者传输控制协议 (TCP)进行数据交换。这两种协议都可以用来创建客户与服务器应用程序。与 Timer 控件类似,...
  • mannhello
  • mannhello
  • 2012年06月06日 09:05
  • 8686

VB Socket通讯UDP方式

  • 2017年09月04日 15:17
  • 4KB
  • 下载

VB 利用UDP制作简单的点对点聊天程序

VERSION 5.00Object = "{248DD890-BB45-11CF-9ABC-0080C7E7B78D}#1.0#0"; "MSWINSCK.OCX"Begin VB.Form frm...
  • chenhui530
  • chenhui530
  • 2007年10月01日 19:24
  • 4123

UDP&TCP在windows下基于winsock的数据传输实现

  • 2016年05月17日 10:59
  • 5KB
  • 下载

VB通过WINSOCK发送HTTP协议

 原创文章,转载请注明来源于本博客或给出超连接hi.abidu.com/石首,谢谢WINSOCK发送HTTP协议已经不是什么新鲜事物。最近有些朋友QQ上问我怎么发POST数据,怎么伪造来源地址和伪造I...
  • wjb9921
  • wjb9921
  • 2008年11月26日 23:32
  • 3732
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:VB中Winsock控制的UDP协议的使用
举报原因:
原因补充:

(最多只允许输入30个字)