使用用户数据报协议发送和接收多播数据包
此示例演示如何使用发送和接收多播数据udpport
.
创建udpport实例
创建一个udpport
实例发送多播数据。
uSender = udpport()
uSender = UDPPort属性:IPAddressVersion: "IPV4" LocalHost: "0.0.0.0" LocalPort: 62055 NumBytesAvailable: 0显示所有属性,函数
创建几个udpport
实例来接收此多播数据。确保所有这些udpport
实例绑定到相同的LocalPort
与EnablePortSharing
设置为true。在本例中,udpport
实例uReceiver1
而且uReceiver2
必然会LocalPort
3030.uReceiver1
是数据报类型吗udpport
实例和uReceiver2
是字节类型udpport
实例。
uReceiver1 = udpport(“报”,“LocalPort”, 3030,“EnablePortSharing”,真正的)
uReceiver1 = UDPPort with properties: IPAddressVersion: "IPV4" LocalHost: "0.0.0.0" LocalPort: 3030 NumDatagramsAvailable: 0显示所有属性,函数
uReceiver2 = udpport(“LocalPort”, 3030,“EnablePortSharing”,真正的)
uReceiver2 = UDPPort属性:IPAddressVersion: "IPV4" LocalHost: "0.0.0.0" LocalPort: 3030 NumBytesAvailable: 0显示所有属性,函数
您还可以在不同的MATLAB®实例上创建发送方和接收方,以便在同一计算机上的多个MATLAB实例之间进行通信。
准备多播接收器
设置组播udpport
多播接收器使用configureMulticast
函数。订阅组播地址组“226.0.0.1”。当uSender
发送数据到这个多播地址组,每udpport
订阅此地址的实例接收多播数据。
configureMulticast (uReceiver1“226.0.0.1”);configureMulticast (uReceiver2“226.0.0.1”);
这反映在MulticastGroup
而且EnableMulticast
属性。
uReceiver1。MulticastGroup
Ans = "226.0.0.1"
uReceiver1。EnableMulticast
ans =逻辑1
uReceiver2。MulticastGroup
Ans = "226.0.0.1"
uReceiver2。EnableMulticast
ans =逻辑1
发送多播数据
的uSender
实例将“hello”作为字符串数据类型发送到组播地址组“226.0.0.1”和端口3030。
写(uSender“你好”,“字符串”,“226.0.0.1”, 3030);
接收多播数据
验证多播接收器uReceiver1
而且uReceiver2
获取数据。在MATLAB中读取此数据。
确保接收端收到组播报文。uReceiver1
作为数据报类型udpport
实例以数据报的形式接收数据。uReceiver2
作为一个字节类型udpport
实例以原始字节形式接收数据。
uReceiver1Count = uReceiver1。NumDatagramsAvailable
uReceiver1Count = 1
uReceiver2Count = uReceiver2。NumBytesAvailable
uReceiver2Count = 5
从第一个接收方以字符串的形式读取数据,指定要读取的数据报数量。
data1 = read(uReceiver1,uReceiver1Count,“字符串”);
data1
是一个udpport.datagram.Datagram
对象。查看接收到的数据
data1。数据
Ans = "hello"
从第二个接收器以字符串的形式读取数据,并指定要读取的数据的字节数。
data2 = read(uReceiver2,uReceiver2Count,“字符串”)
Data2 = "hello"
取消订阅和清除
取消订阅多播地址组。
configureMulticast (uReceiver1“关闭”);configureMulticast (uReceiver2“关闭”);
清除udpport
实例。
清晰的uReceiver1清晰的uReceiver2清晰的uSender