【发布时间】:2012-04-08 02:05:03
【问题描述】:
我正在开发一款使用局域网的游戏。像大多数多人游戏一样,有一个服务器-客户端系统。计算机 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");
}
}
}
但是它需要很多时间并且没用。 如果这不是正确的解决方案,还有哪些其他方法?
【问题讨论】:
标签: java sockets networking serversocket