2

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

4

2 回答 2

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);
}
于 2012-11-08T21:32:18.493 回答
2

编写一个连接服务器端口的客户端(使用你喜欢的搜索引擎搜索java客户端)

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

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

于 2012-11-08T21:22:20.393 回答