如何通过套接字发送和接收Java对象?

如何通过套接字发送和接收Java对象?

问题描述:

我正在编写一个具有客户端和服务器的并发ATM应用程序。如何通过套接字发送和接收Java对象?

我需要知道如何使用Socket编程来调用服务器方法(请求他当前的余额,转移资金等)并获取对象返回给客户端。

我不希望像Lesson: All About Sockets

提到你应该使用Java类RMI库这只是为了打发使用System.out.println文本。

你可以在这里找到一个小例子:http://download.oracle.com/javase/1.3/docs/guide/rmi/getstart.doc.html

+2

+1:RMI =远程方法调用;) –

+0

是不是可以与套接字?我想要一个简单的解决方案。 – coder9

+0

它可能与套接字,但在这种情况下,RMI更容易。 – ashiaka

需要序列数据,发送和反序列化。有关Java序列化类的介绍,请参阅Lesson: Basic I/O

套接字只是一种打开服务器和客户端之间的通信通道的方式。套接字连接只是使您可以将字节从一台机器发送到另一台机器,仅此而已。特别是,套接字不直接提供在另一台机器上调用方法的方法。

您需要在套接字上实现应用程序级协议,或者使用一些现有的(标准)应用程序级协议。您可以按照ashiaka的建议使用RMI,或者例如JAX-RS(Java的RESTful Web服务标准API)。这两个都将使用套接字将数据从一台机器传输到另一台机器。

所以是的,它可以使用套接字,但你需要使用的东西,实际上远程调用方法。

我发现这个教程中真正有用的 http://java.sun.com/developer/technicalArticles/ALT/sockets/

他们说:

RMI =套接字+对象序列化+一些公用事业

谢谢你们的贡献!