通用Java服务器/客户端教程

3

我正在开发一个多人卡牌游戏,需要客户端之间或通用服务器进行通信。由于我以前从未做过这样的事情,因此需要一些指导或教程来实现此目标。

到目前为止,我已经创建了本地的单人游戏版本...

3个回答

5

Sun公司有一个很好的关于编写客户端/服务器对的教程,其中包括代码示例。


作为后续...如果我要将对象传递给另一个对象(比如将Card对象传递给Dealer对象),我是否需要使用序列化? - Ali
2
@Ali:当然,如果你要编写自己的协议,你可以只发送一些标识符,比如AS(代表黑桃A)或1H(代表红桃1),跳过序列化过程。 - OscarRyz

1
到目前为止,我已经创建了本地的单人游戏版本...
太好了,我建议继续制作本地多人游戏版本(即使由同一“终端”控制)。
从那里,您可以尝试使用RMI来远程调用方法。这应该比创建多人游戏版本并添加网络功能要简单得多。
RMI的作用是抽象出网络连接,并允许您简化远程对象调用的执行(也就是说,它简化了必须使用套接字编写自己的协议的过程)。

哇,我甚至没有听说过这个...这似乎简单多了...关于我的上面关于序列化的评论,RMI是否是更简单的实现方式? - Ali
实际上它们是相互关联的。通过编写自己的协议(如上面的答案所建议的),您可以决定是否使用可序列化对象。问题(或机会)在于,您还必须编写指令以调用另一侧电线的方法并发送结果回来。使用RMI(远程方法调用),您无需编写逻辑来调用客户端到服务器端的方法或获取结果,只需调用即可。关于序列化,通常而言非常简单(只需实现Serializable接口)。 - OscarRyz

0

RMI更加复杂。在开始使用RMI之前,您需要了解一些概念,例如扩展Remote、RemoteExceptions等。此外,运行由RMI驱动的应用程序需要一些步骤,例如启动rmiregistry并设置策略文件。

如果您是初学者,请先从简单的sockets开始。它们更容易理解,但编码时间较长。RMI更容易编码,但有点难以理解。

对于Sockets:

TCP Sockets

UDP和Datagrams

对于RMI:

RMI简单教程-真的帮助了我开始


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接