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