当前位置: 代码迷 >> 综合 >> java判断端口是否启动以及重启Windows服务
  详细解决方案

java判断端口是否启动以及重启Windows服务

热度:13   发布时间:2023-09-29 14:24:05.0

前言:最近碰到一个端口服务问题,原因是用Windows转发了一个端口,但过一段时间之后这个端口就会失效,暂时不明所以。现需要一个服务来重启 iphlpsvc 服务。这个我使用Socket来判断

import java.io.IOException;
import java.io.InputStream;
import java.net.Socket;
import java.util.Scanner;
public class Task {public static void main(String[] args) throws InterruptedException {while(true){try {Socket socket = new Socket("127.0.0.1", 8888);socket.close();System.out.println("8888 运行中....");} catch (IOException e) {try {System.out.println("开始重启 iphlpsvc");// 调用 cmd命令,执行 net start mysql, /c 必须要有Process p = Runtime.getRuntime().exec("cmd.exe /c net stop iphlpsvc");InputStream inputStream = p.getInputStream();Scanner scanner = new Scanner(inputStream, "GBK");scanner.useDelimiter("\\A");StringBuilder builder = new StringBuilder();//todo 必须要循环,不然stop没有结束完,就start了,就达不到效果了!while (scanner.hasNext()) {scanner.next();}scanner.close();p = Runtime.getRuntime().exec("cmd.exe /c net start iphlpsvc");inputStream = p.getInputStream();scanner = new Scanner(inputStream, "GBK");scanner.useDelimiter("\\A");builder = new StringBuilder();while (scanner.hasNext()) {scanner.next();}scanner.close();} catch (Exception e1) {System.out.println("重启错误");}System.out.println("重启完成");}Thread.sleep(60000);}}
}

 希望能够帮助你!