检查Minecraft服务器是否在Java中处于联机状态?

时间:2012-11-08 21:15:32

标签: java status minecraft

我该怎么做呢?我希望能够检查Minecraft服务器是否在线。最简单的方法是检查25565上的开放端口,但我不知道如何在Java中执行此操作,我读过的任何内容对我都没有意义。我读过有关尝试在远程域和端口上创建“服务器”的内容,但这对我来说并不合理。

2 个答案:

答案 0 :(得分:4)

您可以像在任何其他语言中一样在java中执行原始套接字编程。这样的事情应该做。

public static void main(String[] args) throws UnknownHostException,
        IOException {
    boolean open = true;
    Socket socket = SocketFactory.getDefault().createSocket();
    try {
        socket.setSoTimeout(5000);
        socket.connect(new InetSocketAddress("127.0.0.1", 25565));
        socket.close();
    } catch (ConnectException e) {
        open = false;
        System.err.println(e);
    }

    System.out.println(open);
}

答案 1 :(得分:2)

编写连接到服务器端口的客户端(使用您最喜欢的搜索引擎搜索Java客户端)

如果你想更加彻底,可以使用tcpdump(或类似的东西)监视客户端和服务器之间的协议(当你在你的系统上启动Minecraft时)并在你的客户端模拟它。

BTW,搜索“我的世界服务器协议”返回:http://www.minecraftwiki.net/wiki/Classic_server_protocol