繁体   English   中英

Java / Android-如何在TCP / IP套接字编程中使用ObjectOutputStream编写大型List对象

[英]Java/Android- How to use ObjectOutputStream to write a large size of List object in TCP/IP socket programming

我最近使用ObjectOutputStream在TCP / IP套接字编程中编写对象。

如果我想通过套接字编写大尺寸的List<Object>/ArrayList<Object>

(例如list.size:100,总字节数可能大于有效负载大小),

我应该只调用writeObject(List<Object>/ArrayList<Object>)吗?

这样可以吗,或者发生任何异常?

在发送数据包之前,ObjectOutputStream是否自动将列表拆分为几个段? 还是不支持?

还有另一种发送大型对象的方法吗?

至于ObjectInputStream,我可以只调用readObject()来接收大尺寸的List<Object>/ArrayList<Object>吗?

提前致谢。

->

另一个问题:当发件人未完全发送列表时,ObjectInputStream会收到任何东西吗? 我想关闭套接字,但是ObjectOutputStream仍在发送列表。 当我关闭套接字时,列表段被破坏了吗?

这样可以吗,或者发生任何异常? 没关系。

ObjectOutputStream是否将列表自动拆分为几个段

是。

在发送数据包之前? 还是不支持?

基础套接字无法控制数据包的发送方式。 您也不需要它。

还有另一种发送大型对象的方法吗?

很多,但100不是很大。 如果您有几百万个大型对象,那可能是值得的。 如果您有几十亿,那么您绝对需要考虑替代方案。 有很多选择,但除非您需要,否则我不会打扰。

至于ObjectInputStream,我可以只调用readObject()来接收较大的List / ArrayList吗?

是的,这就是它的用途。

我应该只调用writeObject(List<Object>/ArrayList<Object>)?

是。

这样可以吗,或者发生任何异常?

可以,但是总是会发生异常,尤其是在网络上。

在发送数据包之前, ObjectOutputStream是否自动将列表拆分为几个段? 还是不支持?

是的,TCP也是如此,IP也是如此。

还有另一种发送大型对象的方法吗?

为什么? 你有这种方式。 您不需要其他方式。

至于ObjectInputStream,我可以只调用readObject()来接收较大的List<Object>/ArrayList<Object>?

是。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM