2010-09-02 107 views
0

我需要在Matlab中设置一个接收来自多个源的数据的UDP读取器。我通常用这个单一数据源:在Matlab中接收来自多个源的UDP数据

[packet,~,~,senderaddress]=fread(s,s.BytesAvailable) 

的问题是,我想避免等待超时,我没有终止的数据到达,和包都是未知的尺寸。有没有其他人有这个问题?谢谢

回答

0

为什么不使用Java的网络功能。 UDP File Exchange会执行一些Java脚本来访问UDP套接字。定义数据包的最大大小(UDP数据报最长可达65536字节)以及首选超时。

+0

我已经尝试过之前的Java方法,并且问题不在于打开连接或接受数据包。问题在于设置超时以获得最大吞吐量。由于只有一个远程单元以固定的时间间隔发送数据包,这根本不是问题。在目前的设置下,我有多个远程设备以非固定的时间间隔发送。不幸的是,数据包也没有终止,所以我不能使用fgetl甚至fgets。我安装了新的Matlab版本R2010b,并且我似乎没有任何s.BytesAvailable用法的问题。我们会看到。谢谢! – Jeff 2010-09-07 14:06:59

+0

我不明白你的意思是数据包终止。据我的理解,任何UDP帧(数据包)都有一个给定的长度,这在帧头中指出。 – zellus 2010-09-07 14:52:01