gpt4 book ai didi

java - 我可以在不连接端口的情况下检查IP端口是否打开吗?

转载 作者:行者123 更新时间:2023-11-30 11:26:50 25 4
gpt4 key购买 nike

所以我想做的是扫描本地网络的特定端口 (4444),然后返回该端口是否打开。我现在正在做的是:

    private static boolean portIsOpen(String ip, int port, int timeout) {
try {
Socket socket = new Socket();
socket.connect(new InetSocketAddress(ip, port), timeout);
socket.close();
return true;
} catch (Exception ex) {
return false;
}
}

我将使用这种方法在我的本地网络上搜索服务器(想想 Minecraft 的多人游戏以及它如何扫描本地网络以查找打开的游戏)。我现在的问题是,当我使用此方法时服务器端中断,因为服务器在任何连接时立即发送数据。是否可以在不连接的情况下检查端口是否打开?

最佳答案

Is it possible to check whether or not a port is open without connecting to it?

一句话,不行

没有标准机制支持这一点。您可以执行此操作的唯一方法是设计、实现和部署自定义服务来执行此操作……在本地网络上的所有计算机上。


正如 EJP 所指出的,一个编写良好的服务应该能够应对客户端在不发送或接收数据的情况下立即关闭 TCP 连接。

但如果您的目标是在没有人注意到探测器的情况下执行此操作……祝您好运!

关于java - 我可以在不连接端口的情况下检查IP端口是否打开吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19604035/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com