2011-10-04 93 views
7

我必须用Java实现一个简单的游览客户端 - 服务器游戏。不幸的是,我刚刚开始使用网络编程,并在选择适当的解决方案时遇到了一些问题。带小应用程序的Java客户端 - 服务器游戏

我们假设我正在创建一个国际象棋游戏,其中两个客户端可以连接到服务器,用他们的用户名和密码进行身份验证并进行游戏。客户端必须被编程为applet(瘦客户端),但我不知道我应该用作服务器。

我的意思是,我已经阅读了几种不同的可能性,如RMI,套接字,servlet,但仍然不知道哪一个符合我的需求。我有点困惑,因为我不完全理解沟通将如何进行。

我应该创建一个可执行的服务器,它会一直运行在服务器上并等待玩家?这在我看来似乎是一种奇怪的方式。或者是否有更简单的方法来做到这一点,例如我可以制作一个servlet并将它放在Tomcat服务器上,以便服务器只有在有玩家的情况下才能运行?该servlet可以与小程序(客户端)进行通信吗?反之亦然?*

我真的很感激一些提示。

回答

3

我可以做一个servlet,并把它Tomcat服务器上,这样只要有任何玩家

Tomcat实例将反正运行的服务器将运行,否则玩家无法连接到它。

你可以做的是提供一个服务器,当玩家连接时启动一个新的游戏实例。服务器本身必须始终运行。

就技术而言,我建议你使用任何你感觉舒服的东西。不关心性能,但尝试着手。

因此,如果您已经对通信技术有所了解,请尝试使用它。请注意这些限制并考虑这些限制(例如消息格式,推/拉通信等)。

0

如果您正在寻找Java中的netwrok应用程序框架,那么您可以考虑阅读约Apache MINA。文档声称它“可以帮助用户轻松开发高性能和高可扩展性的网络应用程序”。它通过Java NIO支持各种传输,如TCP/IP和UDP/IP。特征摘要可见here

我对MINA的个人经验迄今为止很好,并且用于各种项目。一种实现类似于你的情况,它不是多人游戏,但是涉及到连接服务器的多个小程序。我发现MINA非常擅长处理多个会话。它做得非常整齐。而且它很容易扩展和维护代码。轻松添加过滤器并定义协议。

没有。良好的tutorial available to jump start和初始设置很容易做到。

然而,就像任何新兴的开源项目一样,它也有它的问题。那就是:在线社区很小,文档虽然迅速提高,但是非常有限。

官方user guide涵盖了大部分基础知识,如果您想了解更多信息,这是一个很好的起点。

0

这取决于你之后是什么样的游戏。小程序通常是展示动画(完全以Java)并且可以从浏览器访问的好选择。真实世界的例子会转移到客户端演示Flash。

如果你的游戏是一个转型游戏(国际象棋,卡片等),那么你可以实现你的逻辑形式的servlet或web服务或ajax,适当使用哈希表或数据库来存储服务器端的实时会话。如果您的游戏更多地涉及用户体验(例如以极品飞车为例),那么创建自定义服务器更有意义。

相关问题