如何使用java在网络上传输对象

use*_*522 3 java

我应该使用什么库?有什么功能可以帮到我?

b_e*_*erb 8

最简单的方法可能是使用序列化.因此,您的对象类必须实现serializable,所以请确保所有成员(原始和大多数标准java类已经这样做).这允许在运行时在对象实例和字节流之间进行映射.

您还需要一个转换协议.你可以看看RMI,如果你不想通过网络处理流式传输字节流,虽然这并不困难.但是,使用RMI可以在以后构建更强大的分布式Java应用程序.


Vla*_*hev 7

的ObjectOutputStream/ObjectInputStream的.

整个逻辑大致如下.根据您的应用需求进行调整.

发送:

ByteArrayOutputStream baos = new ByteArrayOutputStream();
ObjectOutputStream oos = new ObjectOutputStream(baos);
oos.writeObject(objectToSend);
oos.close();

byte[] bytes = baos.toByteArray();
socket.write(bytes);
Run Code Online (Sandbox Code Playgroud)

接收:

ObjectInputStream ois = new ObjectInputStream(socketInputStream);
MyObject mo = (MyObject)ois.readObject();
Run Code Online (Sandbox Code Playgroud)