// implement the actionPerformed public void actionPerformed(ActionEvent a) { int minPort; int maxPort; int maxThread; try { minPort = Integer.parseInt(ThreadScan.minPort.getText()); maxPort = Integer.parseInt(ThreadScan.maxPort.getText()); maxThread = Integer.parseInt(ThreadScan.maxThread.getText()); } catch (NumberFormatException e) { ThreadScan.DLGINFO.setText("Please enter the right port and thread number!"); ThreadScan.DLGError.setVisible(true); ThreadScan.status.setText("Scanning status: Not started"); return; } try { TCPThread.hostAddress = InetAddress.getByName(ThreadScan.hostname.getText()); // DNS service } catch (UnknownHostException e) { ThreadScan.DLGINFO.setText(" Wrong IP/hostname or unreachable host! "); ThreadScan.DLGError.setVisible(true); ThreadScan.status.setText("Scanning status: Not started"); return; } if (minPort < 0 || minPort > 65535 || minPort > maxPort) { ThreadScan.DLGINFO.setText("Please enter port range from 0 ~ 65535!"); ThreadScan.DLGError.setVisible(true); return; } else { TCPThread.MIN_port = minPort; } if (maxPort < 0 || maxPort > 65535 || maxPort < minPort) { ThreadScan.DLGINFO.setText("Please enter port range from 0 ~ 65535!"); ThreadScan.DLGError.setVisible(true); ThreadScan.status.setText("Scanning status: Not started"); return; } else { TCPThread.MAX_port = maxPort; } if (maxThread < 1 || maxThread > 200) { ThreadScan.DLGINFO.setText( " Please enter threads number from 0 ~ 200! "); ThreadScan.DLGError.setVisible(true); ThreadScan.status.setText("Scanning status: Not started"); return; } ThreadScan.status.setEnabled(true); ThreadScan.Result.setText(""); ThreadScan.Result.append( "Scanning " + ThreadScan.hostname.getText() + " Number of threads " + ThreadScan.maxThread.getText() + "\n"); ThreadScan.Result.append("Open ports: "); for (int i = 0; i < maxThread; i++) { new TCPThread("T" + i, i).start(); // System.out.print(i+" "); } flag1 = 0; }