杂1_Windows/Linux端口占有处理

程序开发、程序运行时,偶尔会发现端口已经被使用的情况, 这时就要去查看哪些进程占有了端口,然后针对性的处理:杀死进程释放端口,或选择新端口。

假设端口2425被占用,Window平台和Linxu平台处理方式略有不同。

1、Window下处理端口占用

(1)命令行窗口中寻找进程

首先:netstat -ano|findstr "2425"

在列出信息行中寻找结尾为   “:2425”的行

如:UDP    0.0.0.0:2425     *:*     6544

最后的6455即为该进程的PID号。

(2)杀死进程

打开Windows任务管理器,在进程一栏,可以看到每个进程的PID号,排序后找到6544对应的进程为:Feq.exe,杀死该进程即可。

2、Linux下处理端口占用

(1)查找占有端口的进程PID

首先: sudo lsof -i:22

列出哪些进程占有22端口,如


(2)杀死进程

首先: kill  -9  976

3、Linux根据进程名称查找PID

(1)ps   -ef|grep  firefox

找到PID号为3434

(2)kill  -9  3434

可以使用Java中的Socket类来检测网络带宽占有率。在LinuxWindows下都可以使用相同的代码。 以下是一个简单的Java代码示例,用于测量客户端发送和接收数据的速度: ```java import java.io.*; import java.net.*; public class BandwidthTest { public static void main(String[] args) { String serverName = args[0]; int port = Integer.parseInt(args[1]); int bufferSize = Integer.parseInt(args[2]); try { Socket socket = new Socket(serverName, port); byte[] buffer = new byte[bufferSize]; long start = System.nanoTime(); OutputStream outputStream = socket.getOutputStream(); InputStream inputStream = socket.getInputStream(); int count; long total = 0; while ((count = inputStream.read(buffer)) != -1) { total += count; outputStream.write(buffer, 0, count); } long end = System.nanoTime(); long time = end - start; double speedMbps = (total / time) * 8 / 1000000.0; System.out.println("Bandwidth: " + speedMbps + " Mbps"); outputStream.close(); inputStream.close(); socket.close(); } catch (IOException e) { e.printStackTrace(); } } } ``` 在该示例中,客户端连接到指定的服务器和端口,使用指定大小的缓冲区发送和接收数据。最终,代码会计算传输所需的时间,并计算带宽占用率(以 Mbps 为单位)。 你可以通过在终端中运行以下命令来运行该代码: ``` java BandwidthTest <serverName> <port> <bufferSize> ``` 其中,`<serverName>` 是服务器名称,`<port>` 是服务器监听的端口号,`<bufferSize>` 是用于发送和接收数据的缓冲区大小。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值