课程设计任务说明
1.1 任务要求
设计题目 | 端口扫描器的设计与实现(Java**)** ★★ |
---|---|
已知技术参数和设计要求 | 1.利用Socket通信机制实现一个多线程的端口扫描器。 2.设计要求: 2.1用户界面:用户可以输入IP地址或IP地址段;输入端口号或端口号范围;列表显示主机名、开放的端口及开放端口上相应的服务名称。 2.2端口的有效范围是1~65535,在该范围内使用多线程机制循环创建客户端套接字对象,对某一地址(段)的主机端口进行扫描,若套接字没有发生异常,说明该端口打开并提供服务,返回该开放端口的类型(如UDP端口还是TCP端口)。 2.3 采用Java网络编程包java.io中提供的编程接口实现。 |
设计内容与步骤 | 1.学习Socket和TCP的基本原理和通信机制; 2.扫描器的功能和交互界面设计 3.端口知识数据库设计 4.端口扫描功能的实现 5.完成课程设计报告 |
设计工作计划与进度安排 | 1.TCP和 Socket原理 4小时 2.程序设计基础知识准备 4小时 3.扫描器的功能和交互界面设计 6小时 4.端口扫描功能的实现 8小时 5.软件测试及完善 2小时 6.课程设计报告 4小时 |
测试平台:win10
程序语言:Java
开发软件:eclipse
多线程端口扫描器是实现计算机的端口的扫描,只要在在前台设置好所要扫描的IP、起始端口、结束端口以及所要用到的线程数,点击扫描,就可以扫描到所输入IP地址主机的开放端口,并显示在主窗体中;点击退出,则可以退出该程序。IP设置应为所在主机的IP地址,起始端口和结束端口应为065535之间的一个数,且起始端口应小于结束端口的大小。线程数为0200之间的一个数。点击开始后就会运行,直到扫描完毕显示出扫描过的端口,最后显示扫描完毕。扫描完毕后可以选择保存扫描结果。
\1. 端口扫描功能:扫描开放的端口,并将扫描到的开放端口号送到前台。
2.图像显示功能:显示界面图形。
\3. 多线程功能:当客户端要求与服务器端建立连接时,服务器端就将用到多线程功能,为每一个建立起来的连接创建一个线程。
4.扫描结果保存功能:扫描完毕后,可以将扫描的结果以文件的形式保存下来
\5. 异常抛出功能:对于明显的错误,能提示出错误的类型并结束程序的运行。
(1)建立主窗体:端口扫描器
前台窗口显示;前台要显示扫描的结果,所以应为一个窗口,这个窗口应能够设置主机的IP地址,设置端口的开始端口、结束端口和线程数,并且还能够显示扫描的状态。上半部分是显示扫描过程的框体,下半部分则显示相应的扫描结果。本程序还应能够有控制扫描的状态命令,附加设置最小化和关闭按钮。
(2)IP地址和端口范围的输入
在此处输入主机的IP地址,当输入的IP地址不规范时,会弹出错误提醒窗口,提示输入正确的IP格式。
右侧是起始端口和结束端口,当输入的端口号不在0~65535范围内,或者起始端口大于结束端口则会弹出报错窗口,提示输入正确的格式。
2.3.2多线程扫描线程的设计
在此输入期望的线程数,按下开始扫描时执行多线程操作。当输入的数字不在0200范围内时会弹出报错窗口,提示输入0200的线程数。多线程的使用能使资源利用率更好,程序响应更快。
2.3.3显示扫描过程和扫描结果
上半部分的方框用于显示扫描状态和扫描过程,让用户能直观的知道扫描的进度,下半部分的方框用于显示扫描的结果,包括主机IP、端口以及端口是否开放。
直观的设计让用户体验更好。
2.3.4扫描结果的保存
扫描结束后可能需要保存扫描结果一段时间,因此本程序添加了保存功能,扫描完成后点击保存按钮即可以文件的形式保存下扫描结果,十分方便。
自定义保存为.doc文件后,扫描结果以word文档的形式保存在文件夹中
点击保存按钮就可以保存扫描结果到本地了。
参考文献
《计算机网络》第七版 谢希仁 编著
《明解Java》[日] 柴田望洋著
《Java技术及应用》第二版