簡體   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