使用Java编写的客户端-服务器游戏,并使用小程序

7
我需要使用Java实现一个简单的游戏客户端和服务器。不幸的是,我对网络编程刚刚入门,因此在选择合适的解决方案时遇到了一些问题。
让我们假设我正在创建一个象棋游戏,其中两个客户端可以连接到服务器,通过用户名和密码进行身份验证并开始游戏。客户端必须作为小程序(轻客户端)进行编程,但我不知道应该使用什么样的服务器。
我的意思是,我已经阅读了关于几种不同可能性的资料,例如RMI、套接字、servlets,但仍然不确定哪一种最适合我的需求。我有点困惑,因为我没有完全理解通信是如何进行的。
我应该创建一个可执行的服务器,在服务器上运行并等待玩家吗?这对我来说似乎是一种奇怪的方式。还是有更简单的方法可以做到这一点?例如,我可以制作一个Servlet并将其放在Tomcat服务器上,这样只有在有玩家时才会运行该服务器?该Servlet是否可以与小程序(客户端)进行通信,反之亦然?
非常感谢您提供一些提示。
3个回答

3
我能做一个servlet并将其放在Tomcat服务器上,只有当有任何玩家时服务器才会运行吗?
无论如何,Tomcat实例都会运行,否则玩家无法连接它。
您可以提供一个服务器,当玩家连接时启动新的游戏实例。该服务器本身必须始终运行。
从技术上讲,建议您使用您熟悉的任何通信技术。暂时不必担心性能,但请尝试开始。
因此,如果您已经具备某种通信技术的知识,请尝试使用该技术。只需注意限制并考虑这些限制(例如,消息格式、推拉式通信等)。

0

如果您正在寻找一个Java网络应用程序框架,那么您可以考虑阅读Apache MINA。文档声称它“帮助用户轻松开发高性能、高可扩展性的网络应用程序”,并且通过Java NIO支持各种传输方式,如TCP/IP和UDP/IP。功能摘要可以在这里查看。

我个人对MINA的经验到目前为止还不错,并在各种项目中使用它。其中一个实现类似于您的情况,虽然不是多人游戏,但涉及多个小程序连接服务器。我发现MINA非常擅长处理多个会话。它做得非常干净。此外,它非常容易扩展和维护代码。易于添加过滤器和定义协议。

有许多好的教程可供快速入门,初始设置非常容易完成。

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

官方用户指南涵盖了大部分基础知识,如果您想了解更多,这是一个很好的起点。


0

这取决于你想要什么类型的游戏。Applets通常是呈现动画(完全在Java中)并可从浏览器访问的良好选择。现实世界的示例会转向Flash用于客户端演示。

如果你的游戏是回合制游戏(象棋、纸牌等),那么你可以使用hashtables或数据库来存储服务器端上的实时会话,并以Servlets或Web服务或Ajax的形式实现逻辑,以适当地处理。如果你的游戏涉及用户体验更多(例如Need For Speed类型),那么创建自定义服务器更有意义。


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