java 1.8 原生 定时 + telnet检测端口是否连通
修改 hostname 和 port即可
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 | import java.io.IOException; import java.net.InetSocketAddress; import java.net.Socket; import java.util.Date; import java.util.Timer; import java.util.TimerTask; /* * 定时,每隔5s执行任务 * 任务:检测 指定hostname 的 port 是否开启 * */ public class TelnetUtil { /** * 测试telnet 机器端口的连通性 * @param hostname * @param port * @param timeout * @return */ public static boolean telnet(String hostname, int port, int timeout){ Socket socket = new Socket(); boolean isConnected = false ; try { socket.connect( new InetSocketAddress(hostname, port), timeout); // 建立连接 isConnected = socket.isConnected(); // 通过现有方法查看连通状态 // System.out.println(isConnected); // true为连通 } catch (IOException e) { System.out.println( "false" ); // 当连不通时,直接抛异常,异常捕获即可 } finally { try { socket.close(); // 关闭连接 } catch (IOException e) { System.out.println( "false" ); } } return isConnected; } public static void main(String[] args) { // 定时,每隔5s执行一次请求,检测 hostname 的 port 是否开启 Timer timer = new Timer(); TimerTask task = new TimerTask() { public void run() { System.err.println( "定时任务执行!!!" ); String hostname = "www.baidu.com" ; // hostname 可以是主机的 IP 或者 域名 int port = 443 ; int timeout = 200 ; boolean isConnected = telnet(hostname, port, timeout); System.out.println( "telnet " + hostname + " " + port + "\n==>isConnected: " + isConnected); } }; timer.schedule(task, new Date(), 5000 ); } } |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具