2013-05-02 36 views
0

有沒有辦法通過套接字傳遞對象引用?通過套接字傳遞對象引用?

說我有一個客戶端連接到服務器,我想通過套接字將該客戶端對象引用傳遞給服務器。那可能嗎?如果是,如何?這是建議?或者有其他選擇?

+2

爲什麼你需要傳遞引用而不是對象?如果客戶端和服務器駐留在單獨的JVM的對象上,引用將不會有用,因爲只有其中一個JVM可以使用對象。如果客戶端和服務器位於同一個JVM上,則應使用進程內通信,例如公共靜態隊列。 – 2013-05-02 12:25:05

+0

你想達到什麼目的?我想他們正在不同的JVM上運行! – NINCOMPOOP 2013-05-02 12:25:12

+0

我想實現一個聊天..我無法找到一種方法打印每個客戶端的OWN控制檯中的所有信息 – Rouki 2013-05-02 12:28:05

回答

2

的副本,如果你真的意味着Java引用,則沒有:

你不能傳遞到另一臺機器(或甚至另一個進程)有以下幾個原因:

  • 的Java不會讓你訪問實際的參考值(你只能去引用它,即訪問參考後面的對象/值)
  • ,即使你可以,值將沒有米需要整理原工藝

取決於你想要達到的目標,它可能會更好放棄一些自己的ID(如果你要處理它像一個句柄/令牌這將是容忍)之外排序(例如數字),從這些ID到實際對象的映射,並通過連接傳遞ID。

0

您無法發送對象的引用,因爲在正常情況下,服務器和客戶端運行在不同的jvms中。

您可以通過「參考」發送的對象

0

你想實現什麼目標。爲什麼不創建客戶端+服務器架構,其中每個客戶端也是服務器。這就是它在許多協議中的工作原理,這些協議需要客戶端可以連接到服務器並且其他客戶端可以連接到此客戶端的行爲。爲您的客戶端和服務器連接使用不同的端口。你應該很好。