labview UDP组播编程简介

简介

       IP网络传输方式共分为单播,组播(多播),广播三种。平时我们最常用的一对一的网络传输方式就是属于单播;而组播是一对多的传输方式,其中有个组播组的 概念,发送端将数据向一个组内发送,网络中的路由器通过底层的IGMP协议自动将数据发送到所有监听这个组的终端。至于广播则和组播有一些相似, 区别是路由器向子网内的每一个终端都投递一份数据包,不论这些终端是否乐于接收该数据包。

       

相对于极度消耗网络带宽的广播来说(广播只能在内网广播),UDP组播有了很大的优化,只有终端加入到了一个广播组,UDP组播的数据才能被他接收到。 UDP组播是采用的无连接,数据报的连接方式,所以是不可靠的。也就是数据能不能到达接受端和数据到达的顺序都是不能保证的。但是由于UDP不用保证数据 的可靠性,所有数据的传送速度是很快的。


UDP和TCP协议的主要区别是两者在如何实现信息的可靠传递方面不同。TCP协议中包含了专门的传递保证机制,当数据接收方收到发送方传来的信息时,会自动向发送方发出确认消息;发送方只有在接收到该确认消息之后才继续传送其它信息,否则将一直等待直到收到确认信息为止。与TCP不同,UDP协议并不提供数据传送的保证机制。如果在从发送方到接收方的传递过程中出现数据报的丢失,协议本身并不能做出任何检测或提示。因此,通常人们把UDP协议称为不可靠的传输协议


在labview中有集成的UDP通讯函数,其所在位置为 后面板--》数据通讯--》协议--》UDP。

在labview的UDP通讯组件中既支持一般的UDP通讯也支持UDP广播及组播,其中组播函数使用打开UDP多点传送函数,改函数是一个多态vi。



我们可以打开labview 自带的UDP组播范例,帮助我们学习UDP组播通讯。范例中分为发送方和接收方,下图是发送方的程序框图,

程序中发送方发送一个随机数,让接收方接收。我们使用打开UDP多点传送的只写模式,配置本地端口为58431.为写入UDP数据函数配置

组播地址和接收方端口。

同样在接收方我们使用打开UDP多点传送的只读模式,配置端口和组播地址。



由上面两图可以看出,UDP组播是  一组  成员在一个组播地址下相互通讯的一组协议,(类似qq群?),在组内的成员可以交换信息,但与qq群不同的是UDP组播必须指定是谁可以接受我发出的信息,这个指定就是依靠发送时的端口来决定,如上图发发送方程序中指定了58432端口接受它发出的随机数数据,所以其他人就接收不该数据,那么谁是这个58432端口呢?在接受方的打开UDP多点传送函数时指定了自己的接受端口,告诉大家它接受这个58432端口的数据,有人想call它就拨打这个端口号码。ok!


但是组播地址是有范围的,在这个范围下的通讯才是组播通讯,范围之外的留作它用。 组播地址是一组D类IP地址,范围从224.0.0.0 到 239.255.255.255。其中还有很多地址是为特殊的目的保留的。224.0.0.0到224.0.0.255的地址最好不要用,因为他们大多是 为了特殊的目的保持的(比如IGMP协议)


这样我们就可以编写自己的组播程序了!




  • 0
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值