我有一个关于 MATLAB 中的 udp 数据包的问题。我一直在使用 oscsend.m 脚本将 udp 数据包发送到其他应用程序。 http://www.mathworks.fr/matlabcentral/fileexchange/31400-send-open-sound-control-osc-messages/content/oscsend.m 它工作正常。但是,现在我需要使用 TCP/UDP/IP 工具箱 2.0.6 http://www.mathworks.de/matlabcentral/fileexchange/345-tcpudpip-toolbox-2-0-6中的 pnet 功能, 因为我不再可以访问 oscsend 使用的 Matlab 中的仪器控制工具箱。
我在网上查找答案,甚至联系了作者,但到目前为止都没有运气。即使这个问题看起来微不足道,我也无法让它发挥作用。
通常,仪器控制工具箱的用法是:
u = udp('127.0.0.1', 12345) %12345 being the port
fopen(u)
oscsend(u, /test, 'f', 1.05) %"f" indicating a floating number
但现在没有 udp 或 fopen 我尝试像这样使用 pnet
%write data to UDP
data = [oscstr(path) types data];
sock=pnet('udpsocket',12345) %it returns 0, a sign that the socket is working
%however when I try to send the oscsend signal through this socket nothing happens
pnet(sock, 'writepacket' data) %data being the output of oscsend
我也尝试将 pnet 函数集成到 oscsend 中,但没有成功,但我无法接收到信号,(我正在使用另一个 MATLAB 实例,它正在接收从前面提到的端口发送的数据)。这就是我在 oscsend 中所做的,但没有一个起作用
%write data to UDP
data = [oscstr(path) types data];
%pnet(u, 'writepacket', data, '127.0.0.1', 12345 );%
%pnet u 'write' data %
%pnet(u,'write',data, '127.0.0.1', 12345 )
%pnet(u,'write',data, '127.0.0.1', 12345 ) %returned value?
%pnet(0,'write',data, '127.0.0.1', 12345 ) %
%sock = pnet('udpsocket',12345 ); %
%pnet(sock,'write', data, '127.0.0.1', 12345 )
提前感谢所有花时间阅读本文的人。最好的。马里奥。