Java网络游戏:如何列出可用的服务器?

前端之家收集整理的这篇文章主要介绍了Java网络游戏:如何列出可用的服务器?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我正在开发一款使用局域网的游戏.像大多数多人游戏一样,有一个服务器 – 客户端系统.计算机A运行程序实例,创建服务器并等待;计算机B做同样的事情.现在Computer 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.netMulticast套接字)
>广播(使用java.net.DatagramSocket)到网络广播地址

让所有服务器监听并回复说“我在这里”并可能有更多信息用于进一步的连接设置(服务器名称,版本,使用端口x,udp或tcp等)

原文链接:https://www.f2er.com/java/438049.html

猜你在找的Java相关文章