2

どうすればこれを行うことができますか?Minecraft サーバーがオンラインかどうかを確認できるようにしたいです。最も簡単な方法は、25565 で開いているポートを確認することですが、Java でこれを行う方法がわかりません。リモートドメインとポートに「サーバー」を作成しようとすることについて読んだことがありますが、それは本当に意味がありません。

4

2 に答える 2

4

他の言語と同様に、Java で raw ソケット プログラミングを行うことができます。このようなことをする必要があります。

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 を起動するとき)、クライアントでそれをエミュレートします。

ところで、「Minecraft サーバー プロトコル」を検索すると、http: //www.minecraftwiki.net/wiki/Classic_server_protocolが返されました。

于 2012-11-08T21:22:20.393 に答える