主要内容

使用用户数据报协议发送和接收多播数据包

此示例演示如何使用发送和接收多播数据udpport

创建udpport实例

创建一个udpport实例发送多播数据。

uSender = udpport()
uSender = UDPPort属性:IPAddressVersion: "IPV4" LocalHost: "0.0.0.0" LocalPort: 62055 NumBytesAvailable: 0显示所有属性,函数

创建几个udpport实例来接收此多播数据。确保所有这些udpport实例绑定到相同的LocalPortEnablePortSharing设置为true。在本例中,udpport实例uReceiver1而且uReceiver2必然会LocalPort3030.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