[编程][JAVA]在JAVA中如何终止线程中socket.accpet() ? 端口一直被占用

[编程][JAVA]在JAVA中如何终止线程中socket.accpet() ? 端口一直被占用,第1张

你是因为什么原因要终止这个线程的呢?直接把这个serverSocket close掉不行么?
如果你是因为程序出错,端口又被占用。可以这样查杀占用端口的进程。。。
netstat -na -o 找到占用1234端口的进程号
taskkill /pid 进程号
这样就可以杀死那个进程了····
如果是要在程序中控制的话,用close方法,然后把那个serverSocket置为null应该就可以了吧。。。
而且楼上说得对,你的程序本来就有问题,serverSocket 的实例话就不应该也在循环里面,估计你是接受到一个客户端以后,new 一个serverSocket ,继续绑定1234端口报错,所以才来提问的。这个是你程序的问题,并不需要去杀死那个什么线程。。。

直接上代码:

import javanetSocket;
import javatextSimpleDateFormat;
import javautilDate;
public class PortScanner extends Thread {
private int[] p;
Socket ss = null;
public PortScanner(int[] p) {
thisp = p;
}
public static void main(String[] args) {
for (int i = 0; i < 65535; i = i + 100) {
new PortScanner(new int[] { i + 1, i + 100 })start();
}
}
@Override
public void run() {
for (int i = p[0]; i < p[1]; i++) {
try {
ss = new Socket("8888", i);
Systemoutprintln("扫描到端口: " + i);
} catch (Exception e) {
// Systemoutprintln("关闭端口: " + i);
}
}
}
}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/13386244.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-26
下一篇 2023-07-26

发表评论

登录后才能评论

评论列表(0条)

保存