如何通过数据报套接字发送对象

时间:2012-04-27 23:01:52

标签: java android sockets datagram

我正在开发一些Android项目&试图通过Datagram Socket将对象传递给另一个设备 对象包含类的'String'数据成员(UserName,Services).. 我怎么能这样做?

2 个答案:

答案 0 :(得分:6)

在发送方的ByteArrayOutputStream之上层叠ObjectOutputStream。从ByteArrayOutputStream中收集字节(在写入之后),并将其发送到数据报包中。在接收端执行相反操作,将数据解压缩回对象。

您的发送方的伪代码:

final ByteArrayOutputStream baos = new ByteArrayOutputStream(6400);
final ObjectOutputStream oos = new ObjectOutputStream(baos);
oos.writeObject(o);
final byte[] data = baos.toByteArray();

final DatagramPacket packet = new DatagramPacket(data, data.length);
// Send the packet

答案 1 :(得分:0)

Object transport via datagram packets

你不能通过nework作为对象发送对象,你必须使用这个类将它转换为字节数组

  • 的ObjectOutputStream
  • ByteArrayOutputStream

然后通过DatagramPacket类发送它,但你自己的类应该可以通过添加实现可序列化的接口来序列化,如果你查看上面的链接,你将逐步获得更多的细节,更有帮助