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