熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Java編程 >> Java高級技術 >> 正文

Java線程池技術實現TCP端口掃描

2013-11-23 19:57:18  來源: Java高級技術 

    一個簡單的利用線程池技術實現端口掃描(TCP)的小程序

    關鍵代碼如下

 
// 掃描本機
private void getLocal()
{
 String ip = getIP();
 String portStart = txPortStartgetText()trim();
 String portEnd = txPortEndgetText()trim();
 
 if (portStartlength() == || portEndlength() == )
  return;
 
 int s = ;
 int e = ;
 
 try {
  s = IntegervalueOf(portStart);
  e = IntegervalueOf(portEnd);
 } catch (Exception ex) {
  JOptionPaneshowMessageDialog(null 端口輸入有誤);
  return;
 }
 
 // 檢查端口是否超出范圍
 if (! (checkPort(s) && checkPort(e)))
 {
  JOptionPaneshowMessageDialog(null 端口應該大於而小於);
  return;
 }
 
  
 scann(ip s e);
 
 runThread(); // 啟動線程 監視掃描是否已完成
}
private String getIP()
{
 try {
  InetAddress addr = InetAddressgetLocalHost();
   return addrgetHostAddress()toString(); // ip
 }
 catch (Exception e)
 {
  JOptionPaneshowMessageDialog(null 獲取IP出錯!);
 }
 return null;
}
// 掃描單個IP
private void scann(String ip int startPort int endPort)
{
 // 將所有按鈕設為不可用
 setBtnEdit(false);
 statussetText(請稍候);
 String[] add = {ip };
 tableaddRow(add);
 exec = ExecutorsnewFixedThreadPool();
 for (int i = startPort; i <= endPort; i++)
  execexecute(new RunSocket(ip i));
 execshutdown();
  
}


From:http://tw.wingwit.com/Article/program/Java/gj/201311/27724.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.