我的系統涉及通過TCP套接字發送大量的數據和元數據。我發送一個包含各種元數據的單個對象,以及二十個字節的數組。到目前爲止,我一直在使用包含BufferedOutputStream的ObjectOutputStream處理小示例(130kB數組)。我試圖達到我的67MB數組目標,但ObjectOutputStream無法處理那麼多的數據。我能夠發送1MB數組,但writeObject()掛起2MB。如何通過套接字發送非常大的對象
我聽說DataOutputStream更快,但我寧願不必將我的元數據編碼爲字節並在另一側解碼。有沒有一個很好的選擇能夠快速發送非常大的物體?
編輯:每次寫入方法後
我已經使用復位()。我目前正在發送一個SignedObject,它包含我自己的Message對象,它包含了20個數組以及一些元數據字段。我寧願保留所有包裝,因爲它非常方便,但我知道分離可能是唯一的出路。話雖如此,我仍然需要確保所有傳輸都是安全的。
UPDATE:
所以我去吃午飯,回來了,決定我會嘗試找出事情是否掛在發送或接收端。然後它永遠不會掛斷。我可以繼續成功發送高達4MB的陣列,直到我用完堆(這是無關的,只是意味着我需要更好的計算機或更高效的處理)。所以我猜這個問題消失了?並不意味着我不需要更好的方式來傳遞這個,所以如果人們擁有它們,我會採取更多的想法。此外,我假設一旦我更新這個,它會停止再次工作...
使用量子物理學森它瞬間? :-) 或者做它無聊的方式:壓縮 – theglauber
定義「太慢」。 – jtahlborn
你真的希望60MB數據的傳輸能夠立即發生嗎?不管你怎麼做(除非你可以壓縮或消除它的大部分),它會比較慢。這就是爲什麼我們沒有從互聯網等引導的電腦的一部分。 – cHao