2010-09-02 59 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