【问题标题】:Multi-client multi instance centralised server using TCP protocol gaming system in JavaJava中使用TCP协议游戏系统的多客户端多实例集中服务器
【发布时间】:2012-03-24 20:18:26
【问题描述】:

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

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

这些是我的标准:

最多和最少的玩家可以参加?? 服务器在给定状态的棋盘前的行为:应该邀请一个或多个玩家提供他们的击球,通知对手的打击还是一个玩家可以宣布一方结束? 玩家提供投篮时如何更新游戏???

我不是在这里寻找一个直接的答案。我正在寻找一些对我开始该项目有帮助的指导。有没有使用TCP协议的多客户端多实例集中服务器的工具???

【问题讨论】:

标签: java sockets tcp centralized


【解决方案1】:

首先是网络层

java、mina、netty有几个网络库..

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

还有逻辑层

您应该在服务器内存中维护所有user_context 对象,并将每个对象绑定到相应的tcp 连接。在大多数情况下,user_context 对象作为 RB-tree 的 hashmap/dictionary 维护。

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

【讨论】:

    【解决方案2】:

    我认为最小玩家人数是0;

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

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-05-14
      • 1970-01-01
      • 2015-03-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-14
      相关资源
      最近更新 更多