xxljob 工具类,传一个端口号,看当前服务器,这个端口是不是有项目在使用
2023-06-13 09:15:52 时间
目录
1 需求
我们在spingboot项目里面,想要判断一个某一个端口,在当前项目的服务器上面,有没有被使用,那么可以使用这个工具类
2 实现
/**
* net util
* 网络工具类
* @author jing
*/
public class NetUtil {
// 创建日志对象
private static Logger logger = LoggerFactory.getLogger(NetUtil.class);
/**
* find avaliable port 发现 可用 端口
* 如果传入的端口正在使用,那么发现的可用的端口就是在当前的基础上面加一或者减一
* 之后再判断
* @param defaultPort
* @return
*/
public static int findAvailablePort(int defaultPort) {
int portTmp = defaultPort;
while (portTmp < 65535) {
if (!isPortUsed(portTmp)) {
return portTmp;
} else {
portTmp++;
}
}
portTmp = defaultPort--;
while (portTmp > 0) {
if (!isPortUsed(portTmp)) {
return portTmp;
} else {
portTmp--;
}
}
throw new RuntimeException("no available port.");
}
/**
* check port used
* 检查端口是否被使用
* @param port
* @return
*/
public static boolean isPortUsed(int port) {
boolean used = false;
ServerSocket serverSocket = null;
try {
serverSocket = new ServerSocket(port);
used = false;
} catch (IOException e) {
logger.info(">>>>>>>>>>> xxl-job, port[{}] is in use.", port);
used = true;
} finally {
if (serverSocket != null) {
try {
serverSocket.close();
} catch (IOException e) {
logger.info("");
}
}
}
return used;
}
// public static void main(String[] args) {
// System.out.println(findAvailablePort(8082));
// }
}
相关文章
- 【实用的开源项目】使用云服务器部署Chemex,让软硬件资产的管理更加智能、高效!
- 不想用github action,那么如何在自己服务器上操作!
- Linux服务器上搭建web项目环境[通俗易懂]
- 如何优雅的把Go项目部署到Linux服务器?
- idea配置tomcat服务器运行项目_idea添加tomcat服务器
- godaddy域名服务器_自己有域名怎么建网站
- 告别Jenkins!一键部署项目到远程服务器,这款开源神器真香!
- DNS服务器搭建(Windows版本)
- Ansible 服务器主机配置
- Web项目部署到腾讯云服务器
- 腾讯云服务器配置价格表,2023年新版(轻量、CVM)
- 多服务器,云探针,云监控:ServerStatus美化版一键安装脚本
- SQLServer 错误 20572 在验证失败之后,订阅服务器“%s”对发布“%s”中项目“%s”的订阅已被重新初始化。 故障 处理 修复 支持远程
- SQLServer 错误 20574 订阅服务器“%s”对发布“%s”中项目“%s”的订阅未通过数据验证。 故障 处理 修复 支持远程
- 服务器启动项目抛错 没有到主机的路由详解程序员
- SQL服务器无法启动的解决方法
- 部署java项目到阿里云服务器(centos7版本)详解编程语言
- 在 eclipse 中将 web 项目部署到 tomcat 服务器上详解编程语言
- 搭建Linux下搭建NFS服务器:快速构建分布式存储系统(linux下nfs服务器)
- Linux装载实现服务器性能提升(服务器装linux)
- Redis出错服务器显示问题(服务器显示redis错误)
- 为一个项目配置几台Redis服务器(一个项目用几台redis)