[英]Sending List through DatagramSocket?
我有一個使用Java的電子表格應用程序,它提供的功能(由我開發)是工作表共享。 基本上,任何人都可以成為客戶端或服務器,因為該應用程序同時具有服務器和客戶端代碼。 作為服務器的用戶創建共享,指定IP,然后在服務器監聽其IP和選定端口上的客戶端的情況下,創建共享並激活該共享(最佳情況)。
對於自動發現,我正在通過UDP廣播使用DatagramSockets,而“真實通信”是基於TCP的(在客戶端已經連接之后)。 但是,我正在嘗試通過該UDP套接字發送List
,但我不知道該怎么做。 該List
包含我需要發送給客戶端的服務器上的活動共享,因此它知道它可以連接到什么。
它是這樣的:
客戶端->通過向網絡發送數據包來查找活動的服務器->服務器偵聽並向后發送數據包。 該數據包應該是List
(如果可以通過此類套接字發送的話)。
誰能闡明我的問題? 謝謝。
您可以在發送之前將列表轉換為byte [],然后使用Java序列化將其轉換為接收方的列表。
// Sender
List list = new ArrayList();
ByteArrayOutputStream out = new ByteArrayOutputStream();
ObjectOutputStream outputStream = new ObjectOutputStream(out);
outputStream.writeObject(list);
outputStream.close();
byte[] listData = out.toByteArray();
// Reciever
ObjectInputStream inputStream = new ObjectInputStream(new ByteArrayInputStream(listData));
list = inputStream.readObject();
只要確保您放入列表中的所有對象都實現了Serializable。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.