2016-03-07 94 views
0

因爲我沒有java web服務器,所以無法嘗試。我的想法是通過套接字向服務器發送一個號碼。發送的號碼將取決於用戶的迴應或要求。例如: 考慮一個井字遊戲。讓我們假設用戶輸掉了比賽,並且我希望用戶輸入yes重播或no退出。是否有可能要求服務器端執行不使用RMI的方法?

如果用戶輸入yes,程序將向套接字的outputstream寫入一個數字(例如1)。現在,服務器使用inputstream接收該號碼並將其存儲在一個整型變量中。如果發現輸入的號碼是1,則遊戲再次開始。將會有處理這些數字的方法。

是否可以與服務器通信並以此方式調用遠程方法?

如果是,爲什麼RMI可以通過編碼完成(很容易)?

+0

你是什麼意思,你「沒有」一個Web服務器? Spring Boot和類似的工具使啓動一個微不足道。 – chrylis

+0

@chrylis我無法配置Tomcat。 –

+0

Spring Boot爲你做到這一切! – chrylis

回答

1

是否有可能與服務器

是溝通。

和調用遠程方法

號服務器本地調用方法。你只是給它發送一個數字,告訴它該怎麼做。這裏沒有遠程方法調用。

爲什麼RMI可以通過編碼完成(很容易)?

RMI提供了一種語法直接調用一個遠程方法,而不必擔心:

  • 連接
  • 方法號碼
  • 絲規格爲請求和響應
  • 編組參數
  • 反編組回覆
  • 轉一些響應轉換成例外
  • 確保所有響應服從異常語義
  • 動態類加載
  • ...

你當然可以重新實現所有的自己,當然,RMI是用Java實現但也不要低估其範圍或難度。

+0

我的想法是通過套接字發送一個號碼給servef。服務器接收到這個數據,一個方法會測試這個數字並根據這個數字調用一個方法。這不工作嗎? –

+0

當然,它會工作。沒有人說過。這就是RMI在其他方面所做的事情。 – EJP

+0

好的。最後一個疑問。在服務器中,通常一個循環會持續運行,等待用戶的連接請求。因爲,這個循環是永遠運行的,它不會導致服務器上的任何stackoverflow異常(因爲它是一個無限循環)? –

相關問題