我正在編寫一個具有客戶端和服務器的併發ATM應用程序。如何通過套接字發送和接收Java對象?
我需要知道如何使用Socket編程來調用服務器方法(請求他當前的餘額,轉移資金等)並獲取對象返回給客戶端。
我不希望像Lesson: All About Sockets
我正在編寫一個具有客戶端和服務器的併發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
需要序列數據,發送和反序列化。有關Java序列化類的介紹,請參閱Lesson: Basic I/O。
套接字只是一種打開服務器和客戶端之間的通信通道的方式。套接字連接只是使您可以將字節從一臺機器發送到另一臺機器,僅此而已。特別是,套接字不直接提供在另一臺機器上調用方法的方法。
您需要在套接字上實現應用程序級協議,或者使用一些現有的(標準)應用程序級協議。您可以按照ashiaka的建議使用RMI,或者例如JAX-RS(Java的RESTful Web服務標準API)。這兩個都將使用套接字將數據從一臺機器傳輸到另一臺機器。
所以是的,它可以使用套接字,但你需要使用的東西,實際上遠程調用方法。
我發現這個教程中真正有用的 http://java.sun.com/developer/technicalArticles/ALT/sockets/
他們說:
RMI =套接字+對象序列化+一些公用事業
謝謝你們的貢獻!
+1:RMI =遠程方法調用;) –
是不是可以與套接字?我想要一個簡單的解決方案。 – coder9
它可能與套接字,但在這種情況下,RMI更容易。 – ashiaka