2012-01-18 31 views
1

我想在我的舊機器上安裝一個web服務器。我已經安裝了Ubuntu服務器版,並且旨在將它用於以下內容:Java中的客戶機服務器通信

我想在服務器上運行Java程序。我希望能夠使用互聯網連接從另一臺電腦/手機中的程序中檢索數據。我也希望能夠給出程序數據,並得到一個迴應,說明數據是否被正確接收。

因此,例如:

  • 一個.jar程序運行我的服務器上,並擁有可變x
  • 我希望能夠從其它設備查詢x值(通過互聯網)。
  • 我希望能夠從另一個設備遠程設置值x,並獲得一個響應,說它已成功更改值。

我在這裏有什麼選擇?我想盡量保持簡單。也許值得一提的是,我將是唯一使用該系統的人。服務器將專門用於處理上述兩個請求。

難道僅僅是創建一個監聽輸入請求並在服務器上運行它的java程序的情況嗎?

回答

0
  1. 正如您所提到的,您可以從自定義ServerSocket包裝器開始,該包裝器將解碼傳入的請求並進行出價。目前,完成整個框架來封裝該任務的通用代碼 - 請參閱我的第三點。
  2. 老派java解決方案:使用RMI。見RMI tutorial
  3. 新學校的Java解決方案:設計一些簡單的基於文本的協議有兩個命令:
    • 閱讀()
    • 集(的newval)
      然後實現了一些新的流行的Java框架協議,如Apache MINA ,它是專門爲了促進Java中網絡應用程序的快速開發而創建的。

我個人而言,開始與RMI對於此類任務。由於RMI被認爲是核心Java技術,所以瞭解它是明智的。

+0

也許我應該給RMI一個檢查。我需要在我的Web服務器上安裝Apache等東西嗎?謝謝 – 2012-01-18 08:43:42

+0

@AlanAlbus在任何這些解決方案中,您都不需要Apache。如果你想使用HTTP協議進行通信,你可能只需要Apache。對於RMI和自定義解決方案,除了JRE之外,您不需要任何東西。對於Apache MINA,您需要MINA庫。他們也有體面的教程(雖然它的字體很糟糕)。 – 2012-01-18 08:50:06

+0

你不需要Apache來使用RMI,如果你想在這臺服務器上託管一個網站,你必須安裝一個webserver-software--這可能是Apache。 – quaylar 2012-01-18 08:51:33