2013-04-11 179 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