我的系统涉及通过TCP套接字发送大量的数据和元数据。我发送一个包含各种元数据的单个对象,以及二十个字节的数组。到目前为止,我一直在使用包含BufferedOutputStream的ObjectOutputStream处理小示例(130kB数组)。我试图达到我的67MB数组目标,但ObjectOutputStream无法处理那么多的数据。我能够发送1MB数组,但writeObject()挂起2MB。如何通过套接字发送非常大的对象
我听说DataOutputStream更快,但我宁愿不必将我的元数据编码为字节并在另一侧解码。有没有一个很好的选择能够快速发送非常大的物体?
编辑:每次写入方法后
我已经使用复位()。我目前正在发送一个SignedObject,它包含我自己的Message对象,它包含了20个数组以及一些元数据字段。我宁愿保留所有包装,因为它非常方便,但我知道分离可能是唯一的出路。话虽如此,我仍然需要确保所有传输都是安全的。
UPDATE:
所以我去吃午饭,回来了,决定我会尝试找出事情是否挂在发送或接收端。然后它永远不会挂断。我可以继续成功发送高达4MB的阵列,直到我用完堆(这是无关的,只是意味着我需要更好的计算机或更高效的处理)。所以我猜这个问题消失了?并不意味着我不需要更好的方式来传递这个,所以如果人们拥有它们,我会采取更多的想法。此外,我假设一旦我更新这个,它会停止再次工作...
使用量子物理学森它瞬间? :-) 或者做它无聊的方式:压缩 – theglauber
定义“太慢”。 – jtahlborn
你真的希望60MB数据的传输能够立即发生吗?不管你怎么做(除非你可以压缩或消除它的大部分),它会比较慢。这就是为什么我们没有从互联网等引导的电脑的一部分。 – cHao