使用Java中的TCP协议游戏系统的多客户端多实例集中式服务器

时间:2012-03-24 20:18:26

标签: java sockets tcp centralized

我不是Java编程的新手。我想知道如何继续我的项目。

我想使用TCP / IP协议套接字系统在Java中开发集中式游戏系统。它应该获取玩家的详细信息并在游戏窗口中显示信息。

这些是我的标准:

最高&最少玩家可以参加? 服务器在游戏板的给定状态之前的行为:应该邀请一个或多个玩家提供他们的投篮,通知对手的打击或玩家可以宣布该聚会结束? 如何在玩家提供镜头时更新游戏???

我不是在寻找直接回答。我正在寻找一些指导,这对我开始这个项目很有帮助。是否有任何工具用于使用TCP协议的多客户端多实例集中式服务器???

2 个答案:

答案 0 :(得分:1)

首先是网络层

java,mina,netty有几个网络库。

借助这些网络库,您可以轻松解决网络问题

和逻辑层

您应该维护服务器内存中的所有user_context个对象,并将每个对象绑定到相应的tcp连接。在大多数情况下,user_context对象维护为RB树的哈希映射/字典。

因此,当某些事件发生时,您可以找到相应的用户/客户端并将消息发送给他们。

答案 1 :(得分:1)

我认为最小球员数是0;

最大可能取决于; - 你的带宽,你需要有一个显着的上传速度,你想要成千上万的用户。 - 管理每个用户的工作量。您可以在单个服务器上连接10,000个用户(如果他们没有做太多工作),但是当您添加功能时,每个服务器的用户数将减少到1000个,可能只有100个。

当您拥有无限带宽和每个连接的繁琐工作(通常复制byte[]零)时,IO框架的选择会产生很大的不同。对于实际应用程序,它不太可能重要。如果您以后找到更好的解决方案,我建议您选择哪种解决方案,以便轻松更换。

  

是否有使用TCP协议的多客户端多实例集中服务器的工具???

使用的常用工具是JMS,但游戏可能是您可能不会使用它的一个区域。我将从ActiveMQ开始,因为这将使您快速启动并运行,只需确保您以后可以轻松更换它。