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