²é¿´: 275  |  »Ø¸´: 0
µ±Ç°Ö÷ÌâÒѾ­´æµµ¡£

aisingioro

½ð³æ (ÕýʽдÊÖ)


[×ÊÔ´] ¡¾Ô­´´¡¿¶àÏ̶߳˿ÚɨÃ裨Java£©¡¾ÒÑËÑÎÞÖØ¸´¡¿

×î½ü¸´Ï°Java£¬×¼±¸¿¼ÊÔ£¬Ð´Á˸ö¶àÏ̶߳˿ÚɨÃèµÄС³ÌÐò£¬Çë´ó¼ÒÖ¸½Ì¡£
Ô´´úÂëÈçÏ£º
===============================================
import java.io.*;
import java.net.*;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.util.*;


class scanPort extends Thread{
    String host;
    int startPort;
    int endPort;
    int tag;
    display d;
   
    volatile boolean runStatus;
        
    scanPort(String h,int sp,int ep,int tg,display dis){
        super();
        host=h;
        startPort=sp;
        endPort=ep;
        tag=tg;
        d=dis;
        runStatus=true;
    }
    public synchronized void goRun()  {
            try{
                   runStatus=true;
             notify();
         //    System.out.println("notify");
            }catch(Exception e){
                    System.out.println(e.toString());
            }
    }

    public synchronized void goWait() throws InterruptedException{
            try{
           while (runStatus==false){
              wait();
           }
        }catch(Exception e){
                    System.out.println(e.toString());
            }
    }   
    public void  run(){
        for(int i=startPort;i<=endPort;i++){
            try{
                goWait();
                Socket s=new Socket(host,i);
                synchronized (d.jTextArea1){
                    d.jTextArea1.setText(d.jTextArea1.getText()+"Host:"+host.toString()+" Port: "+i+" is Opening."+tag+"Ïß³Ì"+"\n");
                }               
            }
            catch(IOException  e){
                synchronized (d.jTextArea1){
                    d.jTextArea1.setText(d.jTextArea1.getText()+"Host:"+host.toString()+" Port: "+i+" is Closed."+tag+"Ïß³Ì"+"\n");
                }               
            }
            catch(InterruptedException e){
                System.out.println(e.toString());
            }
        }
    }
}
class display extends JFrame {

    int threadNumber;
    int start;
    int end;
    String host;
    scanPort s[];
    int status;
   
   
    JButton jButton1;
    JButton jButton2;
    JButton jButton3;
    JLabel jLabel1;
    JLabel jLabel2;
    JLabel jLabel3;
    JLabel jLabel4;
    JMenu jMenu1;
    JMenuBar jMenuBar1;
    JMenuItem jMenuItem1;
    JScrollPane jScrollPane1;
    JTextArea jTextArea1;
    JTextField jTextField1;
    JTextField jTextField2;
    JTextField jTextField3;
   
    selectThreadNumber se;
   
    public display() {
           
           threadNumber=1;
           status=0;
           
           jButton1=new JButton("¿ªÊ¼É¨Ãè");
           jButton2=new JButton("ÔÝͣɨÃè");
           jButton3=new JButton("ֹͣɨÃè");
           jLabel1=new JLabel("ÇëÊäÈëҪɨÃèµÄIPµØÖ·£º");
           jLabel2=new JLabel("¿ªÊ¼¶Ë¿Ú£º");
           jLabel3=new JLabel("½áÊø¶Ë¿Ú£º");
           
           jMenuBar1=new JMenuBar();
           jMenu1=new JMenu("ÉèÖÃ");
           jMenuItem1=new JMenuItem("ÉèÖÃÏß³ÌÊý:");
           jMenu1.add(jMenuItem1);
           jMenuBar1.add(jMenu1);
           
           jTextArea1=new JTextArea();
           jScrollPane1=new JScrollPane(jTextArea1);
                                 
           jTextField1=new JTextField();
           jTextField2=new JTextField("0");
           jTextField3=new JTextField("65535");   
           
           this.add(jMenuBar1);
           this.add(jLabel1);
           this.add(jTextField1);
           this.add(jLabel2);
           this.add(jTextField2);
           this.add(jLabel3);
           this.add(jTextField3);
           this.add(jButton1);
           this.add(jButton2);
           this.add(jButton3);
           this.add(jScrollPane1);
           
           this.setLayout(null);
           jMenuBar1.setSize(300, 20);
           jMenuBar1.setLocation(0, 0);
           jLabel1.setSize(150, 20);
           jLabel1.setLocation(0,30);
           jTextField1.setSize(140, 20);
           jTextField1.setLocation(150,30);
           jLabel2.setSize(80,20);
           jLabel2.setLocation(0,60);
           jTextField2.setSize(60,20);
           jTextField2.setLocation(70,60);
           jLabel3.setSize(80,20);
           jLabel3.setLocation(150,60);
           jTextField3.setSize(60,20);
           jTextField3.setLocation(220,60);
           jButton1.setSize(90,20);
           jButton1.setLocation(5, 90);
           jButton2.setSize(90,20);
           jButton2.setLocation(100, 90);
           jButton3.setSize(90,20);
           jButton3.setLocation(195, 90);
           jScrollPane1.setSize(300,150);
           jScrollPane1.setLocation(0,120);   
           
           jButton1.addActionListener(new ActionListener(){
                public void actionPerformed(ActionEvent e){
                   jButton1ActionPerformed(e);                  
               }
           });
           
           jButton2.addActionListener(new ActionListener(){
                public void actionPerformed(ActionEvent e){
                   jButton2ActionPerformed(e);
               }
           });
           
           jButton3.addActionListener(new ActionListener(){
                public void actionPerformed(ActionEvent e){
                   jButton3ActionPerformed(e);
               }
           });
           
           jMenuItem1.addActionListener(new ActionListener(){
                public void actionPerformed(ActionEvent e){
                   jMenuItem1ActionPerformed(e);
               }
           });           
    }   
     
    private void jButton1ActionPerformed(ActionEvent evt) {                                         
        s=new scanPort[threadNumber];
        host=jTextField1.getText();
        end=Integer.parseInt(jTextField3.getText());
        start=Integer.parseInt(jTextField2.getText());
        int theNumberOfPort=end-start+1;
        int everyThread[][]=new int[threadNumber][2];
        for(int i=0;i             everyThread[0]=(theNumberOfPort/threadNumber)*i+start;
            if((everyThread[0]+theNumberOfPort/threadNumber-1)<=end){
                everyThread[1]=everyThread[0]+theNumberOfPort/threadNumber-1;
            }
            else{
                everyThread[1]=end;
            }
            s=new scanPort(host,everyThread[0],everyThread[1],i+1,this);
            s.start();
        }                     
    }   
    private void jButton2ActionPerformed(ActionEvent evt) {
        if(status==0){
          jButton2.setText("¼ÌÐøÉ¨Ãè");
          status=1;
          for(int i=0;i                s.runStatus=false;               
          }
       }
       else{
         jButton2.setText("ÔÝͣɨÃè");
         status=0;   
         for(int i=0;i             
              s.goRun();                                    
        }
      }  
  }
    private void jButton3ActionPerformed(ActionEvent evt) {
        status=0;
        for(int i=0;i                 s.stop();
         }
    }
   
    private void jMenuItem1ActionPerformed(ActionEvent evt){
        selectThreadNumber sel=new selectThreadNumber(this);
        sel.addWindowListener(new WindowAdapter(){
            public void widnowClosing(WindowEvent e){
                System.exit(0);
            }
        });
        sel.show();  
    }
   
    public static void main(String args[]) {
      display dis=new display();
      dis.setTitle("PortScaner");
      dis.setSize(300, 300);
      dis.addWindowListener(new WindowAdapter(){
          public void windowClosing(WindowEvent e){
              System.exit(0);
          }
      });
      dis.show();
    }
}      

    class selectThreadNumber extends JFrame{
        JComboBox numberOfThread;
        JLabel lb1;
        JButton btn1;
        JButton btn2;
        int thNum;
        display d;
        
        selectThreadNumber(display dis){
           d=dis;
           
           lb1=new JLabel("ÇëÑ¡ÔñÏß³ÌÊý£º ");
           btn1=new JButton("È·¶¨");
           btn2=new JButton("È¡Ïû");
            
           numberOfThread=new JComboBox();
           numberOfThread.addItem("1");
           numberOfThread.addItem("2");
           numberOfThread.addItem("3");
           numberOfThread.addItem("4");
           numberOfThread.addItem("5");
           numberOfThread.addItem("6");
           numberOfThread.addItem("7");
           numberOfThread.addItem("8");
           numberOfThread.addItem("9");
           numberOfThread.addItem("10");
           numberOfThread.addItem("11");
           numberOfThread.addItem("12");
           numberOfThread.addItem("13");
           numberOfThread.addItem("14");
           numberOfThread.addItem("15");
           numberOfThread.addItem("16");
           
           this.setLayout(null);
           this.add(lb1);
           this.add(numberOfThread);
           this.add(btn1);
           this.add(btn2);
           lb1.setSize(150,20);
           lb1.setLocation(10,10);
           numberOfThread.setSize(100,20);
           numberOfThread.setLocation(170,10);
           btn1.setSize(70,20);
           btn1.setLocation(30,50);
           btn2.setSize(70,20);
           btn2.setLocation(180,50);
           this.setSize(300, 100);
           this.setTitle("Select thread number");
           
           btn1.addActionListener(new ActionListener(){
               public void actionPerformed(ActionEvent e){
                   btn1ActionPerformed(e);
               }
           });
           
           
           btn2.addActionListener(new ActionListener(){
               public void actionPerformed(ActionEvent e){
                   btn2ActionPerformed(e);
               }
           });
        }
        
        private void btn1ActionPerformed(ActionEvent evt){
            thNum=numberOfThread.getSelectedIndex()+1;   
            this.setVisible(false);
            d.threadNumber=thNum;
        }
        private void btn2ActionPerformed(ActionEvent evt){
            this.dispose();
        }
    }
===============================================
±£´æÎªscaner.java
jdk1.6.0±àÒëͨ¹ý²¢ÕýÈ·ÔËÐУ¡

[ Last edited by bslt on 2009-4-14 at 18:00 ]
»Ø¸´´ËÂ¥
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû
Ïà¹Ø°æ¿éÌø×ª ÎÒÒª¶©ÔÄÂ¥Ö÷ aisingioro µÄÖ÷Ìâ¸üÐÂ
¡î ÎÞÐǼ¶ ¡ï Ò»ÐǼ¶ ¡ï¡ï¡ï ÈýÐǼ¶ ¡ï¡ï¡ï¡ï¡ï ÎåÐǼ¶
×î¾ßÈËÆøÈÈÌûÍÆ¼ö [²é¿´È«²¿] ×÷Õß »Ø/¿´ ×îºó·¢±í
[˶²©¼ÒÔ°] ÊÛT0PÒ»ÇøSCIÎÄÕ£¬ÎÒ:8O5.51.O.54,¿ÆÄ¿ÆëÈ«,¿É£«¼± +3 dheqf6rz6n 2026-06-27 5/250 2026-06-27 20:06 by p8adfxx4ht
[¿¼ÑÐ] ÊÛT0PÒ»ÇøSCIÎÄÕ£¬ÎÒ:8O5.51.O.54,¿ÆÄ¿ÆëÈ«,¿É£«¼± +3 7s8du2bt8y 2026-06-26 7/350 2026-06-27 18:48 by ztgu5ulw9z
[˶²©¼ÒÔ°] ÊÛT0PÒ»ÇøSCIÎÄÕ£¬ÎÒ:8O5.51.O.54,¿ÆÄ¿ÆëÈ«,¿É£«¼± +4 7s8du2bt8y 2026-06-26 8/400 2026-06-27 18:47 by ztgu5ulw9z
[¿¼²©] 27Ä격ʿÕÐÉúÐÅÏ¢ +5 rvnc 2026-06-26 8/400 2026-06-27 18:32 by rvnc
[¿¼²©] ÊÛT0PÒ»ÇøSCIÎÄÕ£¬ÎÒ:8O5.51.O.54,¿ÆÄ¿ÆëÈ«,¿É£«¼± +3 7s8du2bt8y 2026-06-26 5/250 2026-06-27 17:07 by ztgu5ulw9z
[»ù½ðÉêÇë] ÎÞÁÄ¿´¿´filecode +7 Á÷Á÷ÉË 2026-06-23 10/500 2026-06-27 16:19 by ±±¾©ÖÐÐäȽÀÏʦ
[»ù½ðÉêÇë] ÎÞÁÄ¿´¿´Ê±¼ä´Á´ò·¢Ê±¼ä +8 »¢º×Ë«ÐÎ 2026-06-23 8/400 2026-06-27 15:53 by miaochunhui
[¹«Åɳö¹ú] ÊÛT0PÒ»ÇøSCIÎÄÕ£¬ÎÒ:8O5.51.O.54,¿ÆÄ¿ÆëÈ«,¿É£«¼± +3 7s8du2bt8y 2026-06-26 4/200 2026-06-27 12:47 by 9g0rmhtq5w
[ÂÛÎÄͶ¸å] ÇóÍÆ¼öÆÚ¿¯£¬ÖØÐ» +4 girlbaby 2026-06-23 4/200 2026-06-26 16:52 by ²»´ò¹¤Å£Âí
[˶²©¼ÒÔ°] ÓлúÄܿ緽ÏòÉ격Âð +3 ¿É¿ÉÎ÷ÀïµÄÁÖС½ 2026-06-25 3/150 2026-06-26 11:59 by ÁÖ·¼Ä¾
[΢Ã׺ÍÄÉÃ×] kh550½ÓÖ¦Sio2ʧ°ÜÇóÖú 70+3 ÍÞ¶ù·½±ãÃæ 2026-06-20 3/150 2026-06-26 09:23 by èÓã²»ÊÇÓã
[ÂÛÎÄͶ¸å] Ö°³ÆÂÛÎÄͶ¸å 170+4 guoj5292 2026-06-22 12/600 2026-06-25 22:27 by Yanyanoo
[Óлú½»Á÷] ·´Ó¦ÇóÖú 10+3 slz_1986 2026-06-24 6/300 2026-06-25 21:38 by nBuï®
[ÂÛÎÄͶ¸å] »ùÓÚ×ÔÈ»ÕÜѧÀà±ÈµÄ·ç»¯¿ÇÐÍÏ¡ÍÁ¿ó +4 ̫һÐÂÔÏ 2026-06-22 16/800 2026-06-25 18:53 by ̫һÐÂÔÏ
[ÎÄѧ·¼²ÝÔ°] ¿´¡¶¸ø°¢maµÄÇéÊé¡·ÓиР+6 myrtle 2026-06-21 10/500 2026-06-25 17:54 by myrtle
[»ù½ðÉêÇë] ÖУ¡ÖУ¡ÖУ¡ +10 zhse276 2026-06-22 10/500 2026-06-24 16:48 by zjhzf5201018
[»ù½ðÉêÇë] »áÆÀʲôʱºò¿ªÊ¼£¿ +3 Vivilian 2026-06-24 4/200 2026-06-24 16:30 by jurkat.1640
[»ù½ðÉêÇë] ¹ú×ÔÈ»ÉêÇëÎåÆª´ú±í×÷´ó±ÈÆ´£¬¸Ð¾õÕâ¸öÊÇ×îÖØÒªµÄ +7 naalan7001 2026-06-22 12/600 2026-06-24 14:02 by naalan7001
[»ù½ðÉêÇë] ×Éѯ +3 _xyan818 2026-06-24 3/150 2026-06-24 08:12 by Equinoxhua
[»ù½ðÉêÇë] ÆÀίÓжàÉÙ¸ÅÂÊÖªµÀÆäËûר¼ÒÊÖÖÐÓÐÄÄЩÈ˵ı¾×Ó£¿ +6 huitong441 2026-06-22 6/300 2026-06-23 15:45 by гÇ×ÓÔø
ÐÅÏ¢Ìáʾ
ÇëÌî´¦ÀíÒâ¼û