【发布时间】:2016-03-01 22:39:11
【问题描述】:
我在 MATLAB 中编写了一个应用程序来打开一个 UDP 套接字并监听传入的数据报。基本上是这样的:
u = udp(rHost, rPort, 'LocalHost', lHost, 'LocalPort', lPort);
u.DatagramAvailableFcn = @(o,e) operateOnData(o,e);
fopen(u);
当我以单播方式收听某些内容时,这非常有用。但我现在希望能够收听多播流量。显然,this isn't possible in MATLAB。
解决方法是,根据上面的链接,
作为连接到 UDP 多播的解决方法,您可以执行以下操作:
- 使用 Java 多播套接字直接从 MATLAB 访问它。有关更多信息,请参阅 Sun 的“核心 java.net”类的 javadoc 或教程,特别是“java.net.MulticastSocket”。这可以在以下位置找到:
http://java.sun.com/j2se/1.4.2/docs/api/java/net/MulticastSocket.html
我没有 Java 的背景,所以这对我来说是一场斗争。我只能运行以下命令来实例化 MulticastSocket 对象:
>> ms = javaObject('java.net.MulticastSocket');
我环顾四周,发现我还需要一个java.net.Datagram 对象来实际包含传入的流。
如何在 MATLAB 上下文中使用 MulticastSocket 和 Datagram 对象?我正在尝试复制u.DatagramAvailableFcn 的功能,即,一旦我收到数据报,就会触发回调以操作数据报的内容。
编辑:在 Java 方面看起来像 this is how I want to go about this,但现在它又回到了 MATLAB 领域...
【问题讨论】: