簡體   English   中英

通過DatagramSocket發送列表?

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM