找回密码
 加入我们

QQ登录

只需一步,快速开始

搜索
查看: 5355|回复: 1

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

[复制链接]

1214

主题

352

回帖

11

精华

管理员

菜鸟

积分
93755

贡献奖关注奖人气王精英奖乐于助人勋章

发表于 2007-2-5 09:40:36 | 显示全部楼层 |阅读模式
<div style="PADDING-RIGHT: 0px; MARGIN-TOP: 10px; FONT-SIZE: 9pt; OVERFLOW-X: hidden; WIDTH: 97%; WORD-BREAK: break-all; TEXT-INDENT: 24px; LINE-HEIGHT: normal; HEIGHT: 200px; WORD-WRAP: break-word;"><br/>  UDP协议基础:&nbsp;&nbsp;<br/>  UDP(User Datagram Protocol)是一种无连接协议,与TCP操作不同,计算机间并不需要建立一个连接,同时,一个UDP应用可同时作为应用的客户或服务器方。&nbsp;&nbsp;<br/>  由于UDP协议并不需要建立一个明确的连接,因此建立UDP应用要比建立TCP应用简单得多。在TCP应用中,一个Winsock控制必须明确地设置成“监听”,而其它Winsock控制则必须使用Connect方法来初始一个连接。&nbsp;&nbsp;<br/>  使用UDP协议,在两个Winsock控制间进行数据的发送,在连接的两端必须完成以下三步:&nbsp;&nbsp;<br/>  1.设置RemoteHost属性为其它计算机的名称;&nbsp;&nbsp;<br/>  2.设置RemotePort属性为第二个Winsock控制的LocalPort属性的值;&nbsp;&nbsp;<br/>  3.申请Bind方法。&nbsp;&nbsp;<br/>  通过使用方法Bind,则可将该Winsock控制捆绑到一个本地端口,以便该Winsock控制使用该端口来进行类似TCP的“监听”功能,并防止其它应用使用该端口。&nbsp;&nbsp;<br/>  使用该协议传送数据,首先设置客户计算机的LocalPort属性。而作为服务器的计算机仅需要设置RemoteHost属性为客户计算机的IP地址或域名即可,并将其RemotePort属性设置成客户计算机上的LocalPort属性即可,然后就可通过申请SendData方法来开始信息发送,客户计算机则可在其DataArrial事件中使用方法GetData来获取发送的信息。&nbsp;&nbsp;<br/>  下例具体演示了一个“谈话”应用,以允许相互间进行实时的交谈。&nbsp;&nbsp;<br/>  UDP应用一:&nbsp;&nbsp;<br/>  建立一个新标准EXE工程文件,拖放一个Winsock控制到表单上,添加两个文本框到表单上,然后进行以下属性的设置:&nbsp;&nbsp;<br/>  表单(Form):Name=“frmPeerA” Caption=“UDP Application(1)”&nbsp;&nbsp;<br/>  Winsock控制:Name=“udpPeerA” Protocol=“sckUDPProtocol”&nbsp;&nbsp;<br/>  文本框1(TextBox): Name“txtSend”&nbsp;&nbsp;<br/>  文本框2(TcxtBox): Name=“txtOutput” MultiLine-True ScrollBars=2&nbsp;&nbsp;<br/>  然后打开代码窗口,分别在相应的事件下输入以下代码:&nbsp;&nbsp;<br/>  Private Sub Form_Load()&nbsp;&nbsp;<br/>   With udpPeerA&nbsp;&nbsp;<br/>   .RemoteHost=“197.1.1.2” '要连接到的计算机名&nbsp;&nbsp;<br/>   .RemotePort=1010 '要连接到的端口号&nbsp;&nbsp;<br/>   .LocalPort=1011 '该Winsock控制将要使用的本地端口号,便于其它端与该Winsock通讯&nbsp;&nbsp;<br/>   .Bind 1011 '将该Winsock控制绑定到该本地端口&nbsp;&nbsp;<br/>   EndWith&nbsp;&nbsp;<br/>  End Sub&nbsp;&nbsp;<br/>  Private Sub txtSend_Change()&nbsp;&nbsp;<br/>   udpPeerA.SendData txtSend.Text'发送文本&nbsp;&nbsp;<br/>  End Sub&nbsp;&nbsp;<br/>  Private Sub udpPeerA_DataArrival(ByVal bytesTotal As Long)&nbsp;&nbsp;<br/>   Dim strData As String&nbsp;&nbsp;<br/>   udpPeerA.GetData strData,vbString&nbsp;&nbsp;<br/>   txtOutput.Text = strData&nbsp;&nbsp;<br/>  End Sub&nbsp;&nbsp;<br/>  UDP应用二:&nbsp;&nbsp;<br/>  类似建立UDP Server的方法,在表单上添加一个Winsock控制及两个文本框,然后进行以下属性的设置:&nbsp;&nbsp;<br/>  表单(Form):Name=“frmPeerB” Caption=“UDP Application(2)”&nbsp;&nbsp;<br/>  Winsock控制:Name=“udpPeerB” Protocol=“sckUDPProtoclool”&nbsp;&nbsp;<br/>  文本框1(TextBox):Name=“txtSend”&nbsp;&nbsp;<br/>  文本框2(TextBox):Name=“txtOutput” MultiLine=True ScrollBars=2&nbsp;&nbsp;<br/>  然后输入以下代码:&nbsp;&nbsp;<br/>  Private Sub Form_Load()&nbsp;&nbsp;<br/>   With udpPeerB&nbsp;&nbsp;<br/>   .RemoteHost=“197.1.1.2” '要连接到计算机的IP地址&nbsp;&nbsp;<br/>   .RemotePort=1011 '要连接到的端口号&nbsp;&nbsp;<br/>   .LocalPort=1010 '该Winsock控制将使用的本地端口号,便于其它方与之通讯&nbsp;&nbsp;<br/>   .Bind 1010 '将该Winsock控制绑定到该本地端口&nbsp;&nbsp;<br/>   End With&nbsp;&nbsp;<br/>  End Sub&nbsp;&nbsp;<br/>  Private Sub txtSend_Change()&nbsp;&nbsp;<br/>   udpPeerB.SendData txtSend.Text '发送文本&nbsp;&nbsp;<br/>  End Sub&nbsp;&nbsp;<br/>  Private Sub udpPeerB_DataArrival(ByVal bytesTotal As Long)&nbsp;&nbsp;<br/>   Dim strData As String&nbsp;&nbsp;<br/>   udpPeerB.GetData strData,vbString&nbsp;&nbsp;<br/>  txtOutput.Text=strData&nbsp;&nbsp;<br/>  End Sub&nbsp;&nbsp;<br/>  要运行该实例,打开两个Visual Basic的事例,然后分别运行这两个工程文件即可。若要在不同的机器上运行此两例,只需要将两个工程文件中的RemoteHost改变成相应的计算机的IP地址或域名即可</div>
【VB】QQ群:1422505加的请打上VB好友
【易语言】QQ群:9531809  或 177048
【FOXPRO】QQ群:6580324  或 33659603
【C/C++/VC】QQ群:3777552
【NiceBasic】QQ群:3703755

0

主题

2

回帖

0

精华

初来乍到

积分
284
QQ
发表于 2008-6-29 06:42:29 | 显示全部楼层

继续支持

继续支持没话说~ 楼主真强

----------------------------------------------------------
个性签名:我爱笑....We provide all WoW Gold services. You can buy Cheap wow gold here! Welcome to our website for you World of Warcraft Gold,wow gold,Cheap World of Warcraft Gold,buy cheap wow gold, real WoW Power Leveling.......WoW Power Leveling,.. .
您需要登录后才可以回帖 登录 | 加入我们

本版积分规则

快速回复 返回顶部 返回列表