连TCP设备时候有时候需要我们程序做服务端,这时候要到服务器启动TCP服务。如果端口的防火墙没打开或者网络交换机有限制就会无法访问。而这种情况又不太直观的测试,为方便测试端口可用性提供测试端口程序,来方便连设备测试用。
效果,实现jrt 97菜单
能访问则端口没问题,不能访问说明端口不通
java实现控制台启动http
/*
本框架版权归属于JRT计划,任何单位或个人未经许可,不得以任何方式复制、传播、展示、发布、分发、重新分发、修改、反编译、
反向编译或以其他方式使用本框架的任何部分,包括但不限于源代码、二进制文件、文档、演示文稿、示例代码和API。
使用本框架的用户需遵守以下条款:
用户只能以个人学习和研究为目的使用本框架,不得将其用于商业用途。
用户在使用本框架时,应遵守所有适用的法律和法规,包括但不限于版权法、商标法、专利法和隐私权法。
用户在使用本框架时,应自行承担风险和责任,并确保不会侵犯任何知识产权或个人权利。
本框架的使用仅限于用户自己使用,不得将其分发给其他用户或将其用于任何形式的共享或传播。
在使用本框架时,用户应尊重和保护其他用户的隐私和个人信息,不得将其泄露给任何第三方。
违反以上条款将视为侵权行为,将采取法律手段维护JRT合法权益。
*/
import com.sun.net.httpserver.HttpServer;
import com.sun.net.httpserver.HttpsConfigurator;
import com.sun.net.httpserver.HttpsServer;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import javax.net.ssl.KeyManagerFactory;
import javax.net.ssl.SSLContext;
import javax.net.ssl.SSLEngine;
import javax.net.ssl.TrustManagerFactory;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import java.io.*;
import java.net.InetAddress;
import java.net.InetSocketAddress;
import java.net.URL;
import java.net.URLClassLoader;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.nio.file.StandardCopyOption;
import java.security.KeyStore;
import java.util.ArrayList;
import java.util.Enumeration;
import java.util.List;
import java.util.Properties;
import java.util.jar.JarEntry;
import java.util.jar.JarFile;
/**
* 在指定端口上启动http服务,供用户测试端口的可用性,从而简化运维和使用难度
*/
public class SocketTest {
/**
* 启动端口
*/
private static String port;
/**
* 实体编译入口
*
* @param args
*/
public static void main(String[] args) throws Exception {
try {
//检查参数
if (args == null || args.length == 0) {
System.out.println("请传入端口");
return;
} else {
port = args[0];
StartHttp(Integer.valueOf(port));
}
} catch (Exception ex) {
ex.printStackTrace(System.out);
}
}
/**
* 启动HTTPS服务
*
* @throws Exception
*/
private static void StartHttp(int port) throws Exception {
InetAddress address = InetAddress.getLocalHost();
System.out.println("启动http在:http://" + address.getHostAddress() + ":" + port + "/");
//创建HttpServer 实例并绑定到指定 IP 地址和端口号
HttpServer httpServer = HttpServer.create(new InetSocketAddress(port), 1);
httpServer.createContext("/", new JRTHttpHandler());
//启动HttpsServer 并设置执行器为 null(可选)
httpServer.start();
}
}
菜单整合
这样就能简化工作了