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