2010-01-06 84 views
3

即時通訊開發一個多玩家紙牌遊戲,需要客戶端彼此或通用服務器進行通信。我從來沒有這樣做過,所以我需要一些方向或教程如何實現這一目標。一般的java服務器/客戶端教程

到目前爲止,我已經創建了遊戲的地方,單人版本...

回答

5

Sun有一個良好的tutorial on writing a client/server pair完整的代碼示例。

+1

謝謝!這應該很好.. – Ali

+0

作爲後續...如果我要傳遞對象來回/其他對象(可以說傳遞卡對象到經銷商對象),我必須使用序列化? – Ali

+2

@Ali:當然,雖然如果你要編寫自己的協議,你可能只需發送一些標識符,如AS(黑桃A)或1H(心中1),並跳過序列化過程。 – OscarRyz

1

到目前爲止,我已經創建了遊戲的地方,單人版本...

大,我建議繼續與遊戲的本地多玩家版(甚至當它由同一個「終端」控制時)

從那裏你可以探索RMI遠程調用方法。它應該比創建多玩家版本和添加網絡簡單得多。

RMI做什麼是抽象的網絡連接,並允許您簡化遠程對象調用的執行(即,它簡化了需要編寫與插座自己的協議)

+0

whoaaa我還沒有聽說過這個......這似乎很簡單..參考我上面關於序列化的評論,RMI會是一個更簡單的方法來完成這個嗎? – Ali

+0

其實他們走在一起。通過編寫自己的協議(如上述答案所示),您可以決定是否使用可序列化的對象。 *問題*(或機會)是您還必須對指令進行編碼以調用線路另一端的方法,並將結果發送回去。使用RMI(代表遠程方法調用),您不需要編寫邏輯來調用方法或將結果從客戶端返回到服務器,您只需調用它們即可。關於序列化,它通常很簡單(你只需實現'Serializable'接口) – OscarRyz

0

RMI是比較複雜的。在開始使用RMI之前,您需要了解一些概念,例如擴展Remote,RemoteException等。另外,運行由RMI支持的應用程序還需要一些步驟,例如啓動rmiregistry以及設置策略文件。

如果您是初學者,請先從簡單的套接字開始。它們更容易理解,但編碼時間較長。 RMI更容易編碼,但有點難以理解。

對於套接字:

TCP Sockets

UDP and Datagrams

對於RMI:

Simple tutorial to RMI - Really helped me start

相關問題