0
這是我的流程圖:最後一包丟失gnuradio
文件源>節流>包編碼器>打包解包>包解碼器>文件接收器。
無論我做什麼,最後的1或2個數據包(取決於來自文件源的字節數)都不會寫入文件接收器。如果我用TCP源和TCP接收器替換文件源和文件接收器,問題是一樣的。 我認爲這是一個數據包編碼器和解碼器的問題。任何想法如何解決這個問題?
這是我的流程圖:最後一包丟失gnuradio
文件源>節流>包編碼器>打包解包>包解碼器>文件接收器。
無論我做什麼,最後的1或2個數據包(取決於來自文件源的字節數)都不會寫入文件接收器。如果我用TCP源和TCP接收器替換文件源和文件接收器,問題是一樣的。 我認爲這是一個數據包編碼器和解碼器的問題。任何想法如何解決這個問題?
可能這個問題與每個塊的內部緩衝或文件接收器的緩衝有關。嘗試減少每個塊中緩衝項目的數量和/或將文件接收器上的unbuffered
選項設置爲On
。
另一種解決方案是從流程圖的選項中選擇No-GUI
選項和Run to completion
。通過這種方式,當文件源塊到達文件末尾時,它會向以下塊發送一個特殊值,指示流程圖正在停止。也許通過這種方式,流程圖塊中的所有緩衝項最終都會被刷新。
不起作用。看來分組編碼器塊正在等待字節到達以填滿分組。當沒有發生時,數據包不會被轉發。 –
也許'跑到完成'選項將幫助你。看到我更新的答案。 – Manos
我試過了。仍然給出相同的結果。最後一個或兩個數據包沒有傳輸。 –