gpt4 book ai didi

Java网络游戏: How to list available servers?

转载 作者:搜寻专家 更新时间:2023-10-31 20:14:50 25 4
gpt4 key购买 nike

我正在开发一款使用局域网的游戏。与大多数多人游戏一样,有一个服务器-客户端系统。计算机 A 运行程序实例,创建服务器并等待;计算机 B 做同样的事情。现在计算机 C 运行程序,我想要的是他可以看到计算机 A 和 B 列在那里作为游戏服务器。我该怎么做?
为了列出所有可用的服务器,一个简单的解决方案可能是这样的:我需要检查特定范围内的所有 IP 地址,看看它们是否通过我的特定端口响应。如果是,则游戏实例正在其上运行并且应该列在服务器列表中。
上面描述的解决方案是好的吗?我已经搜索并获得了这段代码:

public void checkHosts(String subnet){
int timeout=1000;
for (int i=1;i<254;i++){
String host=subnet + "." + i;
if (InetAddress.getByName(host).isReachable(timeout)){
System.out.println(host + " is reachable");
}
}
}

但是太费时间了,没用。如果这不是正确的解决方案,还有哪些其他方法?

最佳答案

如果您在本地网络上运行,您的方法可能会花费大量时间并且绝对不是最佳解决方案。

你可以通过让你的服务器定期在网络中广播它们的地址来解决这个问题,并让所有的客户端监听它。一个很好的例子可以在 the Java Tutorials 中找到。 .

关于Java网络游戏: How to list available servers?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9840450/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com