Java 端口宝典

在我们运行一些项目的时候经常会出现端口占用的情况,那么我们如何检测当前的端口是否已经被占用了呢?

代码如下

import java.net.*;
import java.io.*;public class Main {public static void main(String[] args) {Socket Skt;String host = "localhost";if (args.length > 0) {host = args[0];}for (int i = 0; i < 1024; i++) {try {System.out.println("查看 "+ i);Skt = new Socket(host, i);System.out.println("端口 " + i + " 已被使用");}catch (UnknownHostException e) {System.out.println("Exception occured"+ e);break;}catch (IOException e) {}}}
}

结果输出

……
查看 17
查看 18
查看 19 已被使用
查看 20
查看 21
端口 21 已被使用
查看 22
查看 23
查看 24
……
指定主机的端口

代码如下

import java.io.IOException;
import java.net.InetSocketAddress;
import java.net.Socket;
import java.net.SocketAddress;
import java.net.SocketTimeoutException;public class Main {public static void main(String[] args) {// 检测本地 80 端口log(isSocketAliveUitlitybyCrunchify("localhost", 80));// 检测本地 8080 端口log(isSocketAliveUitlitybyCrunchify("localhost", 8080));// 检测本地 8081 端口log(isSocketAliveUitlitybyCrunchify("localhost", 8081));// 检测 runoob.com 的 80 端口log(isSocketAliveUitlitybyCrunchify("runoob.com", 80));// 检测 runoob.com 的 443 端口log(isSocketAliveUitlitybyCrunchify("runoob.com", 443));// 检测 runoob.com 的 81 端口log(isSocketAliveUitlitybyCrunchify("runoob.com", 81));}/*** 判断主机端口* * @param hostName* @param port* @return boolean - true/false*/public static boolean isSocketAliveUitlitybyCrunchify(String hostName, int port) {boolean isAlive = false;// 创建一个套接字SocketAddress socketAddress = new InetSocketAddress(hostName, port);Socket socket = new Socket();// 超时设置,单位毫秒int timeout = 2000;log("hostName: " + hostName + ", port: " + port);try {socket.connect(socketAddress, timeout);socket.close();isAlive = true;} catch (SocketTimeoutException exception) {System.out.println("SocketTimeoutException " + hostName + ":" + port + ". " + exception.getMessage());} catch (IOException exception) {System.out.println("IOException - Unable to connect to " + hostName + ":" + port + ". " + exception.getMessage());}return isAlive;}private static void log(String string) {System.out.println(string);}private static void log(boolean isAlive) {System.out.println("是否真正在使用: " + isAlive + "\n");}}

结果输出

hostName: localhost, port: 80
IOException - Unable to connect to localhost:80. Connection refused
是否真正在使用: truehostName: localhost, port: 8080
IOException - Unable to connect to localhost:8080. Connection refused
是否真正在使用: falsehostName: localhost, port: 8081
IOException - Unable to connect to localhost:8081. Connection refused
是否真正在使用: falsehostName: runoob.com, port: 80
是否真正在使用: truehostName: runoob.com, port: 443
是否真正在使用: truehostName: runoob.com, port: 81
SocketTimeoutException runoob.com:81. connect timed out
是否真正在使用: false

在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/563936.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java 获取远程文件的大小

我们应该如何获取远程文件的大小的呢&#xff1f; 代码如下 import java.net.URL; import java.net.URLConnection;public class Main {public static void main(String[] args) throws Exception {int size;URL url new URL("http://a3.att.hudong.com/14/75/01300000…

Java 爬取网页

我们使用 net.URL 类的 URL() 构造函数来抓取网页 代码如下 import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.FileWriter; import java.io.InputStreamReader; import java.net.URL;public class Main {public static void main(String[] arg…

Java 获取 URL响应头的日期信息

我们用 HttpURLConnection 的 httpCon.getDate() 方法来获取 URL响应头的日期信息 代码如下 import java.net.HttpURLConnection; import java.net.URL; import java.util.Date;public class Main{public static void main(String args[]) throws Exception {URL url new UR…

Java 获取 URL 响应头信息

我们如何获取指定 URL 的响应头信息呢&#xff1f; 代码如下 import java.io.IOException; import java.net.URL; import java.net.URLConnection; import java.util.Map; import java.util.Set;public class Main {public static void main(String[] args) throws IOExcepti…

Java 解析URL

使用 net.URL 类的 url.getProtocol() ,url.getFile() 等方法来解析 URL 地址 完整代码 import java.net.URL;public class Main {public static void main(String[] args) throws Exception {URL url new URL("http://www.baidu.com/html/html-tutorial.html");S…

MySql 服务名无效

当我们安装好MySql之后进行启动的时候&#xff0c;我们会发现提示我们服务名无效&#xff0c;那么我们应该如何解决这个问题呢&#xff1f; 如果出现了服务名无效我们要知道这是因为我们的MySql服务没有安装。 错误提示&#xff1a; 解决办法 1 . 进入MySql的安装目录的bin…

Navicat 连接Mysql 报错1251

我们在使用navicat链接mysql的时候有时会出现错误1251-Client does not support authentication protocol requested by server&#xff1b; 错误显示 解决办法 1 . 管理员方式打开cmd。 2.以root用户登录MySQL。命令&#xff1a;mysql -u root -p &#xff08; 注意&…

Git安装详细步骤

下载安装Git 1 . 下载Git&#xff0c; 官方下载地址&#xff1a;https://git-scm.com/download/win 根据自己的电脑选择32位或者64位操作系统进行下载。 2 . 等待下载完毕&#xff0c;双击进行安装。 3 . 选择软件安装目录&#xff0c;可以使用默认目录也可以指定安装目录。…

Git clone的使用方法

使用Git clone项目 1 . 首先我们要确保我们的电脑上已经安装Git。 桌面点击右键出现如下图所示的两个Git即Git已经安装。 2 . 在电脑的任意一个磁盘里新建一个本地文件夹作为clone项目的保存文件夹。 3 . 在码云上面打开我们要clone的项目。 4 . 点击克隆/下载按钮出现项目…

remote: Incorrect username or password ( access token )

remote: Incorrect username or password ( access token ) 在使用Git进行项目的clone的时候最后一步出现了这个错误&#xff0c;错误的意思是用户名或者密码不正确。 错误截图 解决办法 1 . 打开控制面板 &#xff0c;点击用户账户。 2 . 点击管理 Windows 凭据 3 . 找到…

Connection to @localhost failed. [08001] Could not create connection to database server. Attempt

Connection to localhost failed. [08001] Could not create connection to database server. Attempt 当我们使用IDEA的database连接Mysql数据库的时候会出现这个错误。 解决办法 首先要保证我们的路径账户密码啥的都没有问题。 在数据库路径后面添加 ?serverTimezoneGM…

IDEA通过Database连接MySql数据库

我们如何使用IDEA通过里面的Database连接MySQL数据库的呢&#xff1f; 详细步骤 1 . 打开我们的IDEA&#xff0c;右边的侧边栏有Database&#xff0c;点击Database。 2 . 点击 --> Data Source --> MySql。 3 . 填写MySql数据库的用户名和密码以及要链接的数据库名称…

PyCharm 设置背景图片

好看的编译器能使我们愉快的完成编码工作&#xff0c;那么我们能不能给我们的编译器设置一个背景图片的呢&#xff1f;&#xff1f;&#xff1f; 详细步骤 1 . 打开我们的PyCharm, File --> Settings。 2 . Apperence --> Background Image …。 3 . 选择背景图片的路…

PyCharm 安装插件

PyCharm安装插件详细教程 1 . 首先打开我们的PyCharm&#xff0c;File --> Setting。 2 . 选择plugins。 3 . 在搜索栏里搜索插件&#xff0c;点击右边的绿色Instail进项插件的下载安装。 4 . 选择Accept。 5 . 点击右边的绿色Restart IDE。 6 . Restart&#xff08;重…

nginx的启动和关闭

Nginx的启动和关闭 nginx -h 查看帮助信息 nginx -v 查看Nginnx的版本号 nginx -V 显示Nginx的版本号和编译信息 start nginx 启动Nginx nginx -s stop 快速停止和关闭Nginx nginx -s quit 正常停止或关闭Nginx nginx -s reload 配置文件修改重新加载 nginx -t 测试Nginx配置文…

IDEA 乱码

对于新手来说&#xff0c;当我们使用IDEA的时候我们常常会遇到乱码的问题&#xff0c;那么我们应该如何解决IDEA里面的乱码的呢&#xff1f; 乱码解决办法 1 . 首先打开我们的IDEA&#xff0c;File --> Settings。 2 . Editor --> File Encodings&#xff0c; 右边的G…

IDEA配置GIT

在IDEA进行GIT的配置之前我们一定是安装好GIT的 IDEA配置GIT详细步骤 1 . 打开我们的IDEA进入设置界面&#xff0c;点击File --> Setting进入或按快捷键&#xff08; Ctrl Alt S &#xff09; 2 . 找到GIT&#xff0c;点击Version Control --> Git或者直接在搜索栏搜…

IDEA clone项目

IDEA clone项目 方法一&#xff1a; 1 . 打开我们的IDEA&#xff0c;File --> New --> Project from Version Control。 2 . 填写我们要clone项目的链接地址&#xff0c;点击clone。 3 . 稍加等待出现如下所示提示&#xff0c;点击Yes。 4 . 等待项目加载完毕&#…

Redis服务秒启

日常开发中我们经常使用到redis服务&#xff0c;每次都要用命令行启动redis服务特别麻烦&#xff0c;今天就来教大家一种秒启Redis服务的方法。 Redis服务秒启详细步骤 1 . 找到我们的redis安装目录找到startup&#xff0c;双击。 2 . 如下图所示&#xff0c;Redis服务已经启…

Maven projects找回

对于经常使用IDEA的人来说我们经常会发现我们的IDEA右边侧边栏的maven projects不见了&#xff0c;那么我们应该如何使用最快捷简单的方法找回我们的maven projects呢&#xff1f;&#xff1f;&#xff1f; Maven projects找回详细步骤 方法一 1 . 打开我们的IDEA&#xff0…