2011-08-17 81 views
1

實施客戶端/服務器解決方案時,您總是需要回答的問題之一就是協議。在Java中實現自定義協議邏輯?

在簡單情況下,數據包總是可能是相同類型的,所以協議甚至可能根本沒有邏輯:客戶端連接到服務器,服務器只是說一些事實,客戶端斷開連接,就是這樣。

在更復雜的情況下,某些數據包只能在特定情況下發送。例如,想象一個需要授權的抽象服務器:在發送或獲取任何有用數據之前,客戶端必須授權。在這種情況下,會話的概念出現。

會話是一種描述客戶端/服務器對話狀態的概念:客戶端和服務器端希望來自彼此的東西,但也有一些事情他們都不期望。

然後,更深入,假裝協議是相當複雜的,它的實現應該很容易擴展。我相信,這裏理論上正確的解決方案是使用有限狀態機。是否有任何Java框架/庫允許這個狀態機容易實現?或者可能還有其他協議特定的解決方案?

我期待的是一個框架,它允許我定義它們之間的狀態和轉換。

更新:問題不在於最簡單的客戶端/服務器解決方案實現,而是關於實現自定義協議的問題。所以,請不要推薦使用網絡服務。

+1

你有沒有考慮使用網絡服務或類似的東西?你不必實現自己的解決方案,你可以使用WS作爲已經證明的方法。 – vmg 2011-08-17 11:13:09

回答

2

我記得幾年前有限狀態機使用Unimod FSM,雖然對於認真的工作,我總是喜歡直接實現有限狀態機。