[英]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.