繁体   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