TA的每日心情 | 开心 2021-3-12 23:18 |
---|
签到天数: 2 天 [LV.1]初来乍到
|
java程序编写了一个可实现多线程扫描的功能:
- import java.net.*;
- import java.io.IOException;
-
- public class ScannerPort extends Thread{
- private static int i=1;
- public void run(){
- while(i< 65536){
- int temp=i;
- try{
- Socket client = new Socket("10.10.1.4",temp);
- //如果client不为空,说明该端口对外开放。
- //否则该端口没有在监听的服务,或者是该端口对外屏蔽。
- if(client!=null){
- System.out.println("Port :"+temp+" is OK!!!");
- }
- }catch(UnknownHostException e1){
- }catch(IOException e2){
- }
- //要确保每个端口都被扫描到。i是共享数据,需要进行同步控制。
- synchronized (ScannerPort.class){
- i++;
- }
- }
- }
- }
- public class Client
- {
- public static void main(String []args){
- //具体跑多少个线程可以根据自己机器的性能来设置。
- //如果机器的性能不行的话,线程太多也会降低程序的运行速度。
- for(int i=0;i<300;i++){
- new ScannerPort().start();
- }
- }
- }
- 运行:
- C:ex>java Client
- Port :21 is OK!!!
- Port :53 is OK!!!
- Port :80 is OK!!!
- Port :88 is OK!!!
- Port :135 is OK!!!
- Port :139 is OK!!!
- Port :389 is OK!!!
- Port :445 is OK!!!
- Port :464 is OK!!!
- Port :593 is OK!!!
- Port :636 is OK!!!
- Port :1801 is OK!!!
- Port :2103 is OK!!!
- Port :2105 is OK!!!
- Port :2107 is OK!!!
-
复制代码 |
|