操作Java线程池技术实现TCP端口扫描[Java编程]
本文“操作Java线程池技术实现TCP端口扫描[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
一个简单的操纵线程池技术实现端口扫描(TCP)的小程序:
关键代码以下:
// 扫描本机
private void getLocal()
{
String ip = getIP();
String portStart = txPortStart1.getText().trim();
String portEnd = txPortEnd1.getText().trim();
if (portStart.length() == 0 || portEnd.length() == 0)
return;
int s = 0;
int e = 0;
try {
s = Integer.valueOf(portStart);
e = Integer.valueOf(portEnd);
} catch (Exception ex) {
JOptionPane.showMessageDialog(null, "端口输入有误");
return;
}
// 查抄端口能否超越范围
if (! (checkPort(s) && checkPort(e)))
{
JOptionPane.showMessageDialog(null, "端口应当大于0而小于65535");
return;
}
scann(ip, s, e);
runThread(); // 启动线程, 监督扫描能否已完成
}
private String getIP()
{
try {
InetAddress addr = InetAddress.getLocalHost();
return addr.getHostAddress().toString(); // ip
}
catch (Exception e)
{
JOptionPane.showMessageDialog(null, "获得IP出错!");
}
return null;
}
// 扫描单个IP
private void scann(String ip, int startPort, int endPort)
{
// 将全部按钮设为不可用
setBtnEdit(false);
status.setText("请稍候...");
String[] add = {ip, ""};
table.addRow(add);
exec = Executors.newFixedThreadPool(10);
for (int i = startPort; i <= endPort; i++)
exec.execute(new RunSocket(ip, i));
exec.shutdown();
}
以上是“操作Java线程池技术实现TCP端口扫描[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |