【问题标题】:Creating network connection for turn based, 2 player, board game为回合制、2 人、棋盘游戏创建网络连接
【发布时间】:2013-01-28 20:39:42
【问题描述】:

我正在尝试在 Java 中创建一对一的回合制棋盘游戏。如果玩家在同一台计算机上,则基本的游戏结构已经创建并正在运行。我现在正在努力实现在线多人游戏,因为我以前从未做过任何与网络相关的事情。

玩家每回合必须输入最多 9 个十进制数字(如果遗漏了一个数字,则视为 0)。因为我想允许任意精度,所以我将这些数字存储在 BigDecimals 数组中。

按照我想象的工作方式,两个客户端可以通过 IP 直接相互连接,每轮交换消息,并在另一个客户端断开连接时得到通知。

我已尝试查看几个不同的教程,但它们对我不起作用,因为它们实现了服务器/客户端解决方案,或者因为它们不允许我发送 BigDecimal 对象。到目前为止,我对这个主题有点困惑,不确定从哪里开始实施网络连接。这就是为什么我什至没有任何代码可以在这里发布。

【问题讨论】:

  • 欢迎来到 Stack Overflow!

标签: java networking


【解决方案1】:

如果我对this post 的理解是正确的,则您无法在两个客户端之间创建简单的连接。您必须在两者之间有某种服务器,否则其中一个客户端必须充当服务器。连接两个“客户端套接字”没有简单的方法。

话虽如此,我不确定是否可以通过 LAN 创建连接。我个人玩过一些游戏,你需要设置一些复杂的东西才能通过互联网在线玩,但是共享 LAN 连接的两个人可以轻松连接,没有问题。我之前提到的帖子涉及到这一点,但我还没有真正做足够的研究来了解他们在那里谈论的一半。


附加信息:

This 是 Oracle 关于通过服务器和套接字等进行连接的说法。他们可能能够提供一些额外的支持,即使他们的文章讨论了三个客户端的情况,而您的只有两个。

祝你的游戏好运,希望对你有帮助!

【讨论】:

  • 感谢您的回答!如果无法连接两个“客户端套接字”,是否可以让客户端成为这个单一连接的服务器?我真的不打算为我的这个小游戏设置永久服务器。
  • 我不相信,因为服务器和客户端运行两个不同的程序。如果有的话,您也许可以在 Java 之外找到一些替代解决方案,并将其合并到您的程序中。但是,我了解您正在尝试使程序保持较小。外部解决方案的一个示例可能是设置程序,使其与您的系统交互以创建远程桌面连接,从而允许用户在实际上不在一起时在同一台计算机上玩。不过,这可能很困难,之后代码会非常脆弱......
  • 我看到一个没有服务器here 的网络上运行的两人游戏。所以我很确定这是可能的。但是我不明白他们是否可以知道其他游戏断开连接或我如何发送 BigDecimals。此关联游戏正在发送字符串。
  • 我真的不知道。查看屏幕截图,似乎一个玩家充当服务器,而另一个玩家充当客户端。但是,我不能肯定地告诉你。也许制作这个的程序员会告诉你,他在你找到该游戏的网站的“关于”页面上有一个“联系我”链接。
猜你喜欢
  • 2014-02-22
  • 2023-04-03
  • 1970-01-01
  • 2011-06-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-11-27
  • 1970-01-01
相关资源
最近更新 更多