我正在开发一个使用本地局域网的游戏。和大多数多人游戏一样,这里有一个服务器-客户端系统。电脑A运行程序实例,创建一个服务器并等待;电脑B也做同样的事情。现在电脑C运行程序,我希望他能看到电脑A和B作为游戏服务器列在那里。我该怎么做呢?
为了列出所有可用的服务器,一个简单的解决方案可能是这样的:我需要检查特定范围内的所有IP地址,并查看它们是否通过我的特定端口响应。如果是,则表示游戏实例正在其上运行,并应列在服务器列表中。
上述解决方案好吗? 我已经搜索并得到了以下代码:
为了列出所有可用的服务器,一个简单的解决方案可能是这样的:我需要检查特定范围内的所有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");
}
}
}
但是这需要很长时间,而且没有用处。如果这不是正确的解决方案,有哪些其他方法?