通过Internet发送对象

joe*_*moe 8 java networking serialization

我定义了一个类,然后我实现了该类类型的对象.我想将此对象透明地发送到另一台计算机上运行的另一个Java应用程序.实现这一目标的最佳技术是什么?

Bil*_*ard 12

您将首先考虑使用Java Serializable接口进行序列化.Sun有一篇很好的文章称为发现Java Serialization API的秘密.

有关通过网络实际传输序列化对象的信息,请参阅Java套接字教程.


fas*_*seg 10

您可以使用java API创建对象流并发送任何可序列化对象.但你必须要记住,这些通过网络未加密:

在发件人方面:

CustomObject objectToSend=new CustomObject();
Socket s = new Socket("yourhostname", 1234);
ObjectOutputStream out = new ObjectOutputStream(s.getOutputStream());
out.writeObject(objectToSend);
out.flush();
Run Code Online (Sandbox Code Playgroud)

在接收端:

ServerSocket server = new ServerSocket(1234);
Socket s = server.accept();
ObjectInputStream in = new ObjectInputStream(s.getInputStream());
CustomObject objectReceived = (CustomObject) in.readObject();
Run Code Online (Sandbox Code Playgroud)


Rod*_*ley 6

有很多方法可以做到这一点.以下是一些需要研究的内容,您可以选择最适合您应用的内容.

  • J2EE
  • RMI
  • 对象序列化通过套接字推送位
  • 网页服务

几乎任何通信框架都允许您以某种方式通过网络推送对象.您只需要查看它们,看看哪些适用于您的应用程序.快速谷歌应该找到更多的方法.