我最近在 TCP/IP 套接字编程中使用 ObjectOutputStream 编写对象。
如果我要写大尺寸的List<Object>/ArrayList<Object>
通过套接字
(例如list.size: 100,总字节数可能大于负载大小),
我应该打电话writeObject(List<Object>/ArrayList<Object>)
吗? ?
可以吗,还是出现任何异常?
在发送数据包之前,ObjectOutputStream 是否会自动将列表分成几段?还是不支持?
还有其他方法可以发送大尺寸的对象吗?
至于ObjectInputStream,我可以直接调用readObject()
吗?领取大号List<Object>/ArrayList<Object>
?
提前致谢。
->
另一个问题:当发送者未完全发送列表时,ObjectInputStream 是否会收到任何内容? 我想关闭套接字,但 ObjectOutputStream 仍在发送列表。当我关闭套接字时它是否立即关闭,并且列表段被销毁?
最佳答案
Is that OK, or any Exception occurs? It's ok.
Does ObjectOutputStream automatically split the list to a few segments
是的。
before sending the packets? Or it doesn't support?
底层套接字无法控制数据包的发送方式。您也不应该需要它。
Is there another way to send a large size of an object?
很多,但 100 个并不是很大。如果您有几百万个大型物体,那可能是值得的。如果你有几十亿,你绝对需要考虑替代方案。有很多选择,但除非您需要,否则我不会打扰。
As for ObjectInputStream, can I just call readObject() to receive the large size of List/ArrayList?
是的,这就是它的用途。
关于Java/Android-在TCP/IP套接字编程中如何使用ObjectOutputStream写入大尺寸的List对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34213012/