2013-04-11 178 views
-2

我有一個客戶端 - 服務器應用程序。 java.net API正在客戶端和服務器端使用。相反,java.net.ObjectOutputStreamjava.net.ObjectInputStream串聯,具體。ObjectOutputStream最大緩衝區大小

我試圖找出ObjectOutputStream.write的行爲,當基礎TCP層緩衝區已滿。我想寫儘可能多的數據。但是現在我很害怕我可能不會提供太多的數據。因此,在編寫頻繁而龐大的數據之前要確認這一點,如果文檔可能會提及任何有關這方面的內容,這將會很有幫助。

我應該寫多少。直到我能繼續寫作。我將如何知道它何時變得太多?

任何知道如何或一個好的指針?

我假設最大帶寬取決於底層的物理網絡功效。 Regards, Mawia

回答

0

像所有其他流和作家一樣,ObjectOutputStream在底層套接字發送緩衝區已滿時阻塞。沒有「太多」,「抽太多數據」等等,更不用說而不是「抽得太多的數據」,這就是你自己擔心的。

不是一個真正的問題。

+0

我得到了我的答案。這就是我想知道的,ObjectOutputStream是一個阻塞調用或不是。它是阻塞。謝謝! – mawia 2013-04-12 06:11:53

+0

Btw對於太多的數據的評論,我認爲這是一個非常相關的問題,如果TCP寫不同步,並且寫入操作不阻止。鑑於此,正如你所說的,「像所有其他流和作者一樣,ObjectOutputStream塊」完美地清除了這種懷疑。 – mawia 2013-04-12 06:14:51

+0

@mawia我不明白'清楚'有什麼'疑問'。所有OutputStream都被阻塞。所有對'OutputStreams'的寫入都是阻塞的。 – EJP 2013-04-12 07:20:16