这个小项目主要是练习了在事件侦听中使用代码低耦合,但是这篇总结中还会记录一些实际代码中技巧性的东西。
首先说明低耦合的设计模式。所谓低耦合,意思就是减少java代码的不同模块间的相互依赖性,提高程序代码的可扩展性。java中,通过定义一个事件侦听的接口,统一处理对某一类事件的侦听。例如,在我的端口扫描器中定义了如下一个接口:
/**
* 端口扫描时侦听消息的接口
*
* @author KnightErrant
* @time 上午12:35:49 2010-4-18
*
*/
public interface PortScanListener {
/**
* 将一次成功的扫描通知相应的组件
* @param port 端口号
* @param isAvailable 这个端口是否可用
*/
public void show(int port, boolean isAvailable);
}
定义好接口后,只需将要对响应该类事件的组件继承该接口,并实现接口中的方法即可。例如:
/**
* 显示结果的文本区域
*
* @author KnightErrant
* @time 上午02:01:19 2010-4-18
*
*/
public class myTextArea extends javax.swing.JTextArea implements PortScanListener {
/**
* 实现接口中的方法
*/
public void show(int port, boolean isAvailble){
if(isAvailble){
this.append("检测到可用的端口:"+port+"\r\n");
}
}
}
/**
* 显示扫描进度
*
* @author KnightErrant
* @time 下午09:15:54 2010-4-19
*
*/
public class myProgressBar extends javax.swing.JProgressBar implements PortScanListener {
/**
* 实现接口中的方法
*/
public void show(int port, boolean isAvailble){
count++;
this.setValue(count+this.getMinimum());
if(isDone(port)){
count=0;
}
}
}
然而,接口中的方法其实只做一件事:通知... ...。所以,特定的交互型组件还是要在继承的类中多做点儿文章。例如,一次端口扫描任务可能启动多个线程扫描不同区段的端口,因而接口中的方法无法通知进度条当前扫描过的是第几个端口,这就需要在进度条类中自己定义一个计数器... ...
通过这次“端口扫描器”的练习,不仅对低耦合的事件侦听模式有了基本了解,同时也进一步增进了对程序流程的控制感。附件中为这个小程序的源代码。有两处待完善的地方:、
/**
* 检测用户填写是否正确
* @category 待完善
* @param IP 目标机器IP
* @param first_check_port 端口扫描下限
* @param last_check_port 端口扫描上限
* @return TRUE-输入合法;FALSE-输入不合法
*/
private boolean checkFillings(String IP, int first_check_port, int last_check_port){
return false;
}
/**
* 取得常规子线程划分策略
* @category 待完善
* @param first_check_port 端口扫描下限
* @param last_check_port 端口扫描上限
* @return integer step
*/
private int getDivideStrategy(int first_check_port, int last_check_port){
return 0;
}
分享到:
相关推荐
本文档包含端口扫描器课程设计全套代码(Java实现),课程设计报告,以及说明文档。内容齐全,代码可以运行,有质量保证。 课程设计报告包含五大模块:1.有关端口扫描的基本知识。 2.端口扫描的基本原理。 3.基于...
计算机网络课程设计——端口扫描器的实现 1.利用Socket通信机制实现一个多线程的端口扫描器。 2.设计要求: 2.1用户界面:用户可以输入IP地址或IP地址段;输入端口号或端口号范围;列表显示主机名、开放的端口及...
极速端口扫描器极速端口扫描器极速端口扫描器
飞速IP开放端口扫描器可以快速的扫描指定的IP地址端口,比普通的扫描软件快很多
扫描工具\尖刀超级端口扫描器 V2.0.rar
端口扫描仪 输入IP和端口范围即可 端口扫描仪 输入IP和端口范围即可 端口扫描仪 输入IP和端口范围即可
利用C#设计端口扫描器
端口扫描器,实验报告,通过对扫描器的编写,深入掌握TCP、ICMP协议原理与实现技术,掌握设计、实现网络安全应用程序和工具的基本方法,同时对黑客攻击的主要手段也有一个深入地了解,为进一步研究网络安全和网络...
本软件是用java开发的多线程端口扫描器。可以实现本地扫描和指定IP扫描。本文包含文档说明和代码,很详细。
有关TCP端口扫描器的开发与实现的毕业论文,可以为关于这方面的毕业设计提供参考,里面包含代码
本设计通过端口扫描器的研究来提高对计算机安全的认识。利用TCPconnect扫描原理,扫描主机通过TCP/IP协议的三次握手与目标主机的指定端口建立一次完整的连接,如果目标主机该端口有回复,则说明该端口开放。利用多...
本设计通过端口扫描器的研究来提高对计算机安全的认识。利用TCPconnect扫描原理,扫描主机通过TCP/IP协议的三次握手与目标主机的指定端口建立一次完整的连接,如果目标主机该端口有回复,则说明该端口开放。利用多...
我们做的题目是端口扫描器。实现一个扫描器,使用TCP connect进行端口扫描,并对扫描结果进行记录。主要是为了加深对TCP/IP的理解,学习端口扫描技术和原理。 端口扫描器包括IP扫描和端口扫描,IP扫描使用同一网段的...
1.利用Socket通信机制实现一个多线程的端口扫描器。 2.设计要求: 2.1用户界面:用户可以输入IP地址或IP地址段;输入端口号或端口号范围;列表显示主机名、开放的端口及开放端口上相应的服务名称。 2.2端口的...
尖刀超级端口扫描器尖刀超级端口扫描器尖刀超级端口扫描器
基于java多线程的端口扫描器,包括如下功能:按照IP地址进行端口扫描,按照给定的IP地址范围,逐个进行扫描、按照主机名进行端口扫描,搜索指定主机名的端口、指定扫描的端口范围、指定扫描的线程数,实现多线程扫描...
6666端口扫描器 ,最新端口扫描
端口扫描器程序,实现了: TCP Connect扫描 TCP SYN扫描 TCP FIN扫描 TCP ACK扫描 TCP NULL扫描 TCP XMAS扫描 UDP扫描。 4.端口扫描器: 1.采用多线程技术能够对指定的网络主机与端口在同一时间并发进行扫描 2....
Java端口扫描器.课程设计 Java端口扫描器.课程设计 Java端口扫描器.课程设计 Java端口扫描器.课程设计 Java端口扫描器.课程设计