这个小项目主要是练习了在事件侦听中使用代码低耦合,但是这篇总结中还会记录一些实际代码中技巧性的东西。
首先说明低耦合的设计模式。所谓低耦合,意思就是减少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.基于...
《飞速IP开放端口扫描器:高效网络端口检测技术解析》 在现代网络环境中,信息安全至关重要,而端口扫描是网络安全检测的一种基础手段。本文将深入探讨“飞速IP开放端口扫描器”这一工具,理解其高速扫描的背后原理...
《尖刀超级端口扫描器 V2.0:深度解析与应用指南》 在网络安全领域,端口扫描是一项至关重要的技术,它可以帮助我们检测网络设备的开放端口,从而识别可能的安全隐患。尖刀超级端口扫描器 V2.0 是一款强大的端口...
**JAVA多线程端口扫描器** 在计算机网络中,端口扫描是一种常见的技术,用于检测目标主机上开放的服务和应用程序。此项目是基于Java语言实现的多线程端口扫描器,它允许用户对本地系统或指定的远程IP地址进行快速...
【网络端口扫描器实验报告】的目的是通过编写扫描器来深入理解TCP和ICMP协议的基础和实现技术,以及如何设计和实现网络安全相关的应用程序和工具。实验不仅关注技术层面,还涉及对黑客攻击手法的深入了解,为后续的...
本篇将深入探讨如何利用C#编程语言设计一个简单的端口扫描器。 首先,我们需要了解端口的基本概念。在TCP/IP协议栈中,端口是标识网络服务的逻辑通道,范围从0到65535。其中,0-1023是知名的、预留的系统端口,通常...
计算机网络课程设计——端口扫描器的实现 1.利用Socket通信机制实现一个多线程的端口扫描器。 2.设计要求: 2.1用户界面:用户可以输入IP地址或IP地址段;输入端口号或端口号范围;列表显示主机名、开放的端口及...
Java端口扫描器是一种利用Java编程语言实现的工具,它能够探测网络中特定主机的开放端口,以确定服务是否在线或识别潜在的安全漏洞。在本文中,我们将深入探讨Java端口扫描器的工作原理、核心概念和技术细节。 一、...
尖刀超级端口扫描器 端口1-65535全部探测扫描 欢迎下载
"风云端口扫描器"是一款基于Delphi编程语言开发的端口扫描工具,专为Windows操作系统设计。在网络安全领域,端口扫描是检测网络服务、识别漏洞和评估系统安全性的常见手段。Nmap等知名扫描器虽然功能强大,但在特定...
标题中的“IP端口扫描器”是指一种网络诊断工具,其主要功能是探测指定IP地址上开放的网络端口。这种工具在网络安全、系统管理、渗透测试等领域有着广泛的应用。端口扫描是网络扫描的一种类型,它通过发送特定的...
【极速端口扫描器】是一种高效且快速的网络工具,主要功能是检查并确定网络上特定主机或一组主机上的开放端口。端口扫描是网络安全评估的重要环节,它可以帮助管理员发现潜在的安全漏洞,确保网络资源的安全性。在...
6666端口扫描器是一款用于网络安全检测的工具,主要功能是对目标主机的6666端口进行扫描,以确定该端口是否开放、正在运行何种服务或是否存在潜在的安全漏洞。端口扫描是网络渗透测试和系统管理员日常安全检查的重要...
【尖刀超级端口扫描器】是一款专业的网络端口扫描工具,主要针对系统管理员和网络安全专业人士,用于检测网络上的开放端口和潜在的安全隐患。它能够快速、全面地扫描目标主机,识别出运行在目标主机上的服务,以及...
"万能端口扫描器"是一款专为Windows 7和Windows 8设计的高效端口扫描软件,它提供了自定义线程和端口的能力,以满足用户多样化的需求。 首先,让我们详细了解一下端口扫描的基本概念。端口是计算机网络中用于通信的...
本项目"JAVA多线程本地IP端口扫描器"是利用Java的强大功能来实现的一种实用工具,它可以帮助我们快速地检测本地计算机的开放端口,这对于网络安全检查、系统调试和性能优化都有重要意义。下面我们将深入探讨这个项目...
端口扫描仪 输入IP和端口范围即可 端口扫描仪 输入IP和端口范围即可 端口扫描仪 输入IP和端口范围即可
标题中的“1433端口扫描器”指的是专门针对TCP端口1433进行扫描的工具。在IT行业中,端口扫描是网络安全和系统管理员常用的一种技术,用于探测目标主机上开放的服务和端口。1433端口是微软SQL Server默认使用的端口...
【S端口扫描器】是一种专门用于网络扫描的工具,主要功能是探测目标主机上的开放端口和服务。在网络安全领域,端口扫描是一项基础且重要的技术,它可以帮助管理员发现网络中的安全漏洞,防止未授权访问和潜在的攻击...