基于多线程的端口扫描程序课程设计报告

合集下载

操作系统课程设计 基于TCP端口扫描程序

操作系统课程设计 基于TCP端口扫描程序

仲恺农业工程学院课程设计报告课程名称:操作系统题目:基于TCP端口扫描程序院系:班级:姓名:学号:指导老师:目录1 需求分析 (1)1.1 课题背景 (1)1.2 本课题研究意义 (1)1.3 安全扫描技术的产生及其发展趋势 (1)1.4 安全扫描技术的分类 (2)2 端口扫描的相关知识 (3)2.1 网络端口扫描原理 (3)2.2 端口 (4)2.3 相关协议 (4)2.4 扫描的定义 (6)2.5 多线程技术 (6)2.6 网络套接字编程 (7)3 概要设计 (8)3.1 整体设计框架 (8)3.2 流程图描述 (9)4 详细设计 (11)4.1 开法环境 (11)4.2 界面设计 (11)4.3 主要类说明 (12)4.4 代码描述 (12)4.4.1 基本信息检测模块 (12)4.4.2 参数设计模块 (12)4.4.3 端口扫描模块 (15)4.4.4 结果输出模块 (16)5 调试分析 (18)5.1 编译及运行程序 (18)5.2 系统主界面 (18)5.3 子系统功能测试 (19)6 总结 (21)参考文献 (22)1 需求分析1.1 课题背景在21世纪的今天,计算机发展日新月异,伴随着网络技术的飞速更新,网络规模迅速增长和计算机系统的日益复杂,导致新的系统漏洞层出不穷,一些别有用心的人或者木马程序要想顺利的渗透一台联网的计算机,无论使用何种技术,首先必然要寻找计算机的漏洞来为自己的入侵打开大门。

端口扫描器是一把双刃剑,端口扫描器的产生可以使网络中的计算机及时的发现主机的开放与未开放的端口状态。

计算机的端口扫描技术是一种基于主动防御型的策略的重要技术手段。

本课题通过对计算机端口扫描器的研究来提高对网络中计算机的安全的认识。

本端口扫描器采用Java语言和Java Socket 编程原理开发,在Ubuntu操作系统下通过测试。

扫描主机通过TCP/IP协议的三次握手与目标主机的指定端口建立一次完整的连接,如果目标主机的此端口在规定时间内有回复,则说明该端口是开放的。

网络课程设计端口扫描

网络课程设计端口扫描

网络课程设计端口扫描一、教学目标本课程的教学目标是让学生掌握网络课程设计端口扫描的基本概念、原理和方法。

通过本课程的学习,学生应能理解网络课程设计的基本原理,掌握端口扫描的技术和应用,提高网络安全意识和防范能力。

具体来说,知识目标包括:1.理解网络课程设计的基本原理和概念;2.掌握端口扫描的原理和方法;3.了解网络安全的现状和趋势。

技能目标包括:1.能够运用端口扫描技术检测网络系统的安全性;2.能够根据扫描结果分析和解决网络中存在的问题;3.能够编写简单的端口扫描程序。

情感态度价值观目标包括:1.增强网络安全意识,提高自我保护能力;2.培养对网络技术的兴趣和热情,提高创新能力和团队协作能力。

二、教学内容本课程的教学内容主要包括网络课程设计的基本原理、端口扫描的原理和方法、网络安全的现状和趋势等方面的知识。

具体安排如下:1.网络课程设计的基本原理:介绍网络课程设计的概念、目标和方法,让学生了解网络课程设计的基本过程和步骤。

2.端口扫描的原理和方法:讲解端口扫描的概念、原理和方法,介绍常用的端口扫描工具及其使用方法。

3.网络安全的现状和趋势:分析当前网络安全面临的威胁和挑战,探讨网络安全的未来发展趋势。

三、教学方法为了提高学生的学习兴趣和主动性,本课程将采用多种教学方法相结合的方式进行教学。

具体包括:1.讲授法:通过讲解基本概念、原理和方法,使学生掌握网络课程设计端口扫描的基本知识。

2.案例分析法:通过分析典型的网络安全案例,使学生了解网络安全的现状和趋势,提高网络安全意识。

3.实验法:让学生动手实践,运用端口扫描技术检测网络系统的安全性,提高解决实际问题的能力。

四、教学资源为了支持教学内容和教学方法的实施,丰富学生的学习体验,我们将选择和准备以下教学资源:1.教材:选用权威、实用的网络课程设计端口扫描教材,为学生提供系统、全面的知识体系。

2.参考书:推荐相关的网络安全参考书籍,拓展学生的知识面。

3.多媒体资料:制作精美的PPT、视频等多媒体资料,提高学生的学习兴趣。

基于多线程的端口扫描程序

基于多线程的端口扫描程序

计算机网络课程课程设计任务书计算机网络设计说明书学院名称:计算机与信息工程学院班级名称:网络工程122班学生姓名:学号:题目:基于多线程的端口扫描程序指导教师姓名:起止日期:2015年6月13日至2015年6月20日一、选题背景随着互联网的飞速发展,网络入侵行为日益严重,网络安全成为人们关注的焦点。

端口扫描技术是网络安全扫描技术的重要技术之一。

对目标系统进行端口扫描,是网络系统入侵者进入目标系统的第一步。

网络安全探测在网络安全中起着主动防御的作用,占有非常重要的地位。

网络安全探测的所有功能都是建立在端口扫描的基础上,所以对端口扫描技术的研究有着非常重要的现实意义。

现实世界中的很多过程都具有多条线索同时动作的特性。

Java语言的一大特性就是内置对多线程的支持。

多线程是指同时存在几个执行体,按几条不同的执行线索共同工作的情况,它使得编程人员可以很方便地开发出具有多线程功能、能同时处理多个任务的功能强大的应用程序。

端口是由计算机的通信协议TCP/IP协议定义的。

其中规定,有IP地址和端口号作为套接字,它代表TCP连接的一个连接端,一般称为Socket。

具体来说,就是用[IP:端口]来定位一台主机的进程。

可见端口与进程是一一对应的,如果某个进程正在等待连接,称之为该进程正在监听,那么就会出现与它相对应的端口。

由此可见,通过扫描端口,就可以判断出目标计算机有哪些通信进程正在等待连接。

利用TCP connect扫描原理,扫描主机通过TCP/IP协议的三次握手与目标主机的指定端口建立一次完整的连接,如果目标主机该端口有回复,则说明该端口开放。

利用多线程技术实现了对一目标IP进行设定数目的端口扫描,对多IP段的特定端口进行扫描。

二、方案设计多线程端口扫描器是实现计算机的端口的扫描,只要在在前台设置好所要扫描的IP、起始端口、结束端口以及所要用到的线程数,点击扫描,就可以扫描到所输入IP地址主机的开放端口,并显示在主窗体中;点击退出,则可以退出该程序。

端口扫描的课程设计

端口扫描的课程设计

端口扫描的课程设计一、课程目标知识目标:1. 学生理解端口扫描的基本概念、原理及作用;2. 学生掌握常见的端口扫描技术及其分类;3. 学生了解端口扫描在网络安全领域的实际应用。

技能目标:1. 学生能够使用网络扫描工具进行端口扫描实验;2. 学生能够分析端口扫描结果,识别网络安全隐患;3. 学生能够运用所学知识,提出改善网络安全策略的建议。

情感态度价值观目标:1. 学生培养对网络安全的兴趣和责任感,认识到网络安全的重要性;2. 学生树立正确的网络安全观念,遵循道德和法律规范,维护网络安全;3. 学生在团队合作中,培养沟通、协作能力,提高解决问题的能力。

课程性质分析:本课程为计算机网络技术相关课程,旨在帮助学生掌握端口扫描技术,提高网络安全意识。

学生特点分析:学生为高中年级,具有一定的计算机网络基础,对网络安全感兴趣,但实践操作能力有待提高。

教学要求:1. 结合实际案例,深入浅出地讲解端口扫描技术;2. 强调实践操作,让学生在动手实践中掌握技能;3. 注重培养学生的网络安全意识,提高其道德素养。

二、教学内容1. 端口扫描概念与原理- 端口的作用与重要性- 端口扫描的定义与原理- 端口扫描的目的与意义2. 常见端口扫描技术- TCP connect scan- SYN scan- FIN scan- Xmas tree scan- UDP scan3. 端口扫描工具及其使用- Nmap- Masscan- Zmap- 教学示例:工具的使用及参数配置4. 端口扫描结果分析- 开放端口与关闭端口- 漏洞识别与风险评估- 结果解读与安全建议5. 端口扫描在网络安全中的应用- 网络安全评估- 入侵检测与防御- 网络安全防护策略制定6. 实践操作与案例解析- 实践环境搭建- 端口扫描操作演示- 案例分析:网络安全事件中的端口扫描教学内容安排与进度:第1课时:端口扫描概念与原理第2课时:常见端口扫描技术第3课时:端口扫描工具及其使用第4课时:端口扫描结果分析第5课时:端口扫描在网络安全中的应用第6课时:实践操作与案例解析教材关联章节:《计算机网络》第四章:网络应用层《网络安全技术》第三章:网络安全检测与评估《网络攻防技术》第二章:扫描与探测技术三、教学方法1. 讲授法:- 对于端口扫描的基本概念、原理和分类等理论知识,采用讲授法进行教学,使学生在短时间内掌握基础知识点。

端口扫描程序的设计与实现报告

端口扫描程序的设计与实现报告

指导老师评阅成绩表学习与工作态度(30%)选题的价值与意义(10%)文献综述(10%)研究水平与设计能力(20%)课程设计说明说(论文)撰写质量(20%)学术水平与创新(10%)总分指导老师签名:年月日课程设计答辩记录及评价表学生讲述情况教师主要提问记录学生回答问题情况答辩评分评分项目分值评价参考标准评分总分优良中及格差选题的价值与意义10 9 8 7 6 4文献综述10 9 8 7 6 4研究水平与设计能力20 19 17 15 13 10课程设计说明书(论文)撰写质量20 19 17 15 13 10学术水平与创新10 9 8 7 6 4答辩效果30 28 25 22 19 15是否同意论文(设计)通过答辩□同意□不同意答辩小组成员签名答辩小组组长签名:年月日课程设计成绩评定表成绩汇总评分项目评分比例分数课程设计总分指导老师评分50%答辩小组评分50%课程设计成绩评价表封面成都信息工程学院课程设计题目:端口扫描程序的设计与实现作者姓名:班级:学号:指导教师:日期:2011年6月3日作者签名:端口扫描程序的设计与实现摘要计算机信息网络的发展加速了信息化时代的进程,但是随着社会网络化程度的增加,对计算机网络的依赖也越来越大,网络安全问题也日益明显。

端口扫描技术是发现安全问题的重要手段之一。

本程序是在Windows系统中使用C语言用MFC完成的一个端口扫描程序。

此程序主要完成了TCP connect()扫描和UDP扫描功能。

TCP扫描支持多线程,能对单个指定的主机进行扫描或对指定网段内的主机进行逐个扫描。

能扫描特定的部分端口号或对指定的端口段内的端口进行逐个扫描。

此端口扫描程序能快速地进行TCP扫描,准确地检测出对TCP协议开放的端口。

而对于UDP扫描只支持单线程,速度较慢。

扫描结果以列表的形式直观地展现出来。

关键词:端口扫描、TCP扫描、UDP扫描、TCP多线程扫描目录1引言 (1)1.1 课题的背景及意义 (1)1.2 端口扫描现状 (1)2系统设计 (1)2.1 系统主要目标 (1)2.2 开发环境及工具 (1)2.3 功能模块与系统结构 (2)3系统功能程序设计 (4)3.1 获取本机IP (4)3.2 分割字符串函数的实现 (4)3.3 获取待扫描的IP地址 (5)3.4 获取待扫描的端口号 (5)3.4.1 指定端口号的初始化 (6)3.4.2 指定端口号的保存 (7)3.5 TCP CONNECT()扫描 (8)3.5.1 基本原理 (8)3.5.2 扫描多个主机多端口多线程的实现 (8)3.5.3 扫描结果的显示 (9)3.6 UDP扫描 (10)3.6.1 基本原理 (10)3.6.2 计算效验和 (11)3.6.3 发送UDP数据包 (11)3.6.4 接收ICMP数据包 (12)4测试报告 (12)4.1 TCP扫描检测 (12)4.1.1扫描本机 (12)4.1.2扫描网络中其他主机 (13)4.1.3 扫描IP段 (13)4.2 UDP扫描检测 (14)4.2.1 扫描本机 (14)4.1.2扫描网络中其他主机 (15)4.3 TCP、UDP一起扫描 (16)结论 (17)参考文献 (17)1引言1.1 课题的背景及意义网络中每台计算机犹如一座城堡,这些城堡中,有些是对外完全开放的,有些却是大门紧闭的。

多线程端口扫描

多线程端口扫描

Must take the fundamental interest s of the overwhelming majority of the people as t he party all t he starting poi nt and ending poi nt, the party has always been a common fate with the masses , this i s the magi c wea pon for our party to always mai ntain t he adva nce d nat ure and purity. Stre ngthe ning the constructi on of party's a dvance d nat ure a nd purity and e nha nci ng the party's ruli ng abil ity will event ually be impleme nted to reali ze, safeguard a nd develop the fundame ntal interest s of the overwhelming majority of the people. All the work merits t his is a measure of the pa rty's fundam ental standards , is a meas ure of the party's a dvanced nature a nd purity sta ndards. Believe w ho, de pending on w ho, who, standing on the position of the overw helming maj ority of the people are alway s, always real ize, safeg uard a nd develop the fundame ntal interest s of the overwhelming major ity of the pe ople , it is a touchstone of the Marxist party of judgeme nt, is al so s ign of Marxi st party is different from

端口扫描程序的设计与实现精简版范文

端口扫描程序的设计与实现精简版范文

端口扫描程序的设计与实现端口扫描程序的设计与实现1. 简介端口扫描程序是一种用来探测目标主机开放的网络端口的工具。

它通过向目标主机发送特定的网络消息,然后根据返回的消息判断该端口是否开放。

2. 设计思路2.1 输入端口扫描程序的输入通常包括目标主机的IP地质和要扫描的端口范围。

2.2 扫描过程扫描程序通过创建一个或多个线程来并发地扫描目标主机。

每个线程都会尝试连接目标主机的一个端口,并等待一段时间来判断端口是否开放。

如果端口开放,则将其记录下来。

2.3 输出扫描完成后,程序会将扫描结果输出到一个文件中。

每行记录一个开放的端口信息,包括目标主机的IP地质和开放的端口号。

3. 实现3.1 编程语言端口扫描程序可以用各种编程语言来实现,如、Java、C等。

选择合适的语言取决于开发者的个人喜好和实际需求。

3.2 网络连接程序需要使用Socket库来进行网络连接。

通过建立TCP连接或发送UDP消息来目标主机的端口状态。

3.3 多线程为了提高扫描速度,可以使用多线程来并发地扫描目标主机的端口。

每个线程独立地连接一个端口并等待返回消息。

3.4 错误处理在程序运行过程中可能会遇到各种错误,如网络连接失败、目标主机不可达等。

为了使程序具备鲁棒性,需要对这些错误进行适当的处理。

4. 特点与应用4.1 特点端口扫描程序可以用于检测目标主机的安全性,找出可能的漏洞和攻击面。

程序具备高效、快速、并发的特点,能够在短时间内扫描大量的端口。

4.2 应用网络管理员可以使用端口扫描程序来评估网络的安全性。

渗透人员可以利用端口扫描程序来发现目标主机的弱点。

系统管理员可以使用端口扫描程序来查找网络中的活跃主机和开放端口。

以上是端口扫描程序的设计与实现的简要介绍。

希望对您有所帮助!。

基于多线程的端口扫描程序课程设计报告讲解

基于多线程的端口扫描程序课程设计报告讲解

滁州学院课程设计报告课程名称:设计题目:基于多线程的端口扫描程序院部:计算机与信息工程学院专业:网络工程组别:第六组起止日期: 2012年12月31日~2013 年1月6日指导教师:计算机与信息工程学院二○一二年制课程设计任务书目录1需求分析 (1)1..1网络安全 (1)1.2课程背景 (1)1.3扫描器 (1)1.4多线程扫描器介绍 (2)1.4.1布局管理器 (2)1.4.2多线程 (2)1.4.3线程优先级 (3)1.4.4线程同步 (3)1.5端口扫描 (4)2概要设计 (4)2.1整体框架设计 (4)2.2流程图描述 (5)3详细设计 (6)3.1 端口扫描线程启动 (6)3.2 GUI图形界面 (7)3.3 按钮监听及异常处理 (9)4调试与操作说明 (11)4.1运行界面 (11)4.2扫描结果 (11)4.3错误提示 (12)5课程设计总结与体会 (13)6参考文献 (14)7致谢 (14)8附录 (15)1需求分析1..1网络安全二十一世纪是信息化、网络化的世纪,信息是社会发展的重要资源。

信息安全保障能力是一个国家综合国力、经济竞争实力和生存能力的重要组成部分,是世界各国在奋力攀登的制高点。

网络安全是指网络系统的硬件、软件及其系统中的数据受到保护,不因偶然的或者恶意的原因而遭到破坏、更改、泄露,系统连续可靠正常地运行。

网络安全包括技术领域和非技术领域两大部分:非技术领域包括一些制度、政策、管理、安全意识、实体安全等方面的内容;技术领域包括隐患扫描、防火墙、入侵检测、访问控制、虚拟专用网、CA认证、操作系统等方面的内容。

这些技术的目标是保证信息的可控性、可用性、保密性、完整性、和不可抵赖性。

端口扫描属于安全探测技术范畴,对应于网络攻击技术中的网络信息收集技术。

1.2课程背景随着Internet的不断发展,信息技术已成为促进经济发展、社会进步的巨大推动力。

端口扫描技术是网络安全扫描技术一个重要的网络安全技术。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

滁州学院课程设计报告课程名称:设计题目:基于多线程的端口扫描程序院部:计算机与信息工程学院专业:网络工程组别:第六组起止日期: 2012 年12月31日~2013 年1月6日指导教师:计算机与信息工程学院二○一二年制课程设计任务书目录1 需求分析. 01..1 网络安全 01.2 课程背景 01.3 扫描器 01.4 多线程扫描器介绍 (1)错误! 未定义书签。

错误! 未定义书签。

错误! 未定义书签。

错误! 未定义书签。

1.5 端口扫描 (2)2 概要设计. (3)2.1 整体框架设计 (3)2.2 流程图描述 (3)3 详细设计. (3)3.1 端口扫描线程启动 (3)3.2 GUI 图形界面 (5)3.3 按钮监听及异常处理 (6)4 调试与操作说明. (8)4.1 运行界面 (8)4.2 扫描结果 (8)4.3 错误提示 (8)5 课程设计总结与体会. (8)6 参考文献. (9)7 致谢. (9)8 附录. 01 需求分析1..1 网络安全二十一世纪是信息化、网络化的世纪,信息是社会发展的重要资源。

信息安全保障能力是一个国家综合国力、经济竞争实力和生存能力的重要组成部分,是世界各国在奋力攀登的制高点。

网络安全是指网络系统的硬件、软件及其系统中的数据受到保护,不因偶然的或者恶意的原因而遭到破坏、更改、泄露,系统连续可靠正常地运行。

网络安全包括技术领域和非技术领域两大部分: 非技术领域包括一些制度、政策、管理、安全意识、实体安全等方面的内容; 技术领域包括隐患扫描、防火墙、入侵检测、访问控制、虚拟专用网、CA 认证、操作系统等方面的内容。

这些技术的目标是保证信息的可控性、可用性、保密性、完整性、和不可抵赖性。

端口扫描属于安全探测技术范畴,对应于网络攻击技术中的网络信息收集技术。

1.2 课程背景随着Internet 的不断发展,信息技术已成为促进经济发展、社会进步的巨大推动力。

端口扫描技术是网络安全扫描技术一个重要的网络安全技术。

与防火墙、入侵检测系统互相配合,能够有效提高网络的安全性。

安全扫描是安全技术领域中重要的一类。

通过扫描能自动检测远端或本地主机系统信息,包括主机的基本信息(如计算机名、域名、组名、操作系统型等)、服务信息、用户信息以及漏洞信息,它的重要性在于能够对网络进行安全评估,及时发现安全隐患,防患于未然。

网络的安全状况取决于网络中最薄弱的环节,任何疏忽都有可能引入不安全的因素,最有效的方法是定期对网络系统进行安全分析,及时发现并修正存在的脆弱,保证系统安全。

国外安全扫描技术的历史可以追溯到20 世纪90 年代,当时因特网刚刚起步,但是在过去的十年内,扫描技术飞速发展,迄今为止,其扫描技术已经非常完善,但是在全面性,隐蔽性和智能性上还有待提高。

安全扫描从最初专门为UNIX 系统而编写的一些只有简单功能的小程序发展到现在,已经出现了可以运行多个操作系统平台上的,具有复杂功能的系统程序。

国内的扫描技术是在国外的扫描器基础上发展起来的。

其中有一些专门从事安全技术的公司。

这些公司的扫描器以硬件为主,其特点是执行速度快,不像软件一样受到安装主机系统的限制。

然而对于更多的基于主机的端口扫描而言,简单,实用,可靠才是它们的长处。

1.3 扫描器扫描器是一种自动检测远程或本地主机安全性弱点的程序,通过使用扫描器你可以不留痕迹的发现远程服务器的各种TCP端口的分配。

这就能让我们间接的或直观的了解到远程主机所存在的安全问题。

为了保证网络中计算机的安全性,必须采取主动策略, 快速、及时、准确、安全的检测出网络中计算机及防火墙开放的和未开放的端口。

计算机端口扫描技术就是这种主动防御策略实现的重要技术手段。

扫描器采用模拟攻击的形式对目标可能存在的已知安全漏洞进行逐项检查。

目标可以是工作站、服务器、交换机、数据库应用等各种对象。

然后根据扫描结果向系统管理员提供周密可靠的安全性分析报告,为提高网络安全整体水平产生重要依据。

在网络安全体系的建设中,安全扫描工具花费低、效果好、见效快、与网络的运行相对对立、安装运行简单,可以大规模减少安全管理员的手工劳动,有利于保持全网安全政策的统一和稳定。

1.4 多线程扫描器介绍在java 中,组件放置在窗体上的方式是完全基于代码的。

组件放置在窗体上的方式通常不是通过绝对坐标控制,而是由“布局管理器”根据组件加入的顺序决定其位置。

每个容器都有一个属于的自己布局管理器。

使用不同的布局管理器,组件大小,位置和形状将大不相同。

表格型布局管理器将容器划分成为一个多行多列的表格,表格的大小全部相同,是由其中最大的组件所决定。

通过add 方法可以将组件一一放在每个表格中。

表格包型布局与表格型布局有些相近,但与表格型布局比较起来,表格包型更加灵活,更加复杂。

通常表格包型布局,我们可以设定每个格子的大小,间隙等。

每个正在系统上运行的程序都是一个进程。

每个进程包含一到多个线程。

进程也可能是整个程序或者是部分程序的动态执行。

线程是一组指令的集合,或者是程序的特殊段,它可以在程序里独立执行。

也可以把它理解为代码运行的上下文。

所以线程基本上是轻量级的进程,它负责在单个程序里执行多任务。

通常由操作系统负责多个线程的调度和执行。

线程是程序中一个单一的顺序控制流程. 在单个程序中同时运行多个线程完成不同的工作, 称为多线程.线程和进程的区别在于, 子进程和父进程有不同的代码和数据空间, 而多个线程则共享数据空间, 每个线程有自己的执行堆栈和程序计数器为其执行上下文. 多线程主要是为了节约CPU时间, 发挥利用, 根据具体情况而定. 线程的运行中需要使用计算机的内存资源和CPU。

在计算机编程中,一个基本的概念就是同时对多个任务加以控制。

许多程序设计问题都要求程序能够停下手头的工作,改为处理其他一些问题,再返回主进程。

可以通过多种途径达到这个目的。

最开始的时候,那些掌握机器低级语言的程序员编写一些“中断服务例程”,主进程的暂停是通过硬件级的中断实现的。

尽管这是一种有用的方法,但编出的程序很难移植,由此造成了另一类的代价高昂问题。

中断对那些实时性很强的任务来说是很有必要的。

但对于其他许多问题,只要求将问题划分进入独立运行的程序片断中,使整个程序能更迅速地响应用户的请求。

最开始,线程只是用于分配单个处理器的处理时间的一种工具。

但假如操作系统本身支持多个处理器,那么每个线程都可分配给一个不同的处理器,真正进入“并行运算”状态。

从程序设计语言的角度看,多线程操作最有价值的特性之一就是程序员不必关心到底使用了多少个处理器。

程序在逻辑意义上被分割为数个线程;假如机器本身安装了多个处理器,那么程序会运行得更快,毋需作出任何特殊的调校。

根据前面的论述,大家可能感觉线程处理非常简单。

但必须注意一个问题:共享资源!如果有多个线程同时运行,而且它们试图访问相同的资源,就会遇到一个问题。

举个例子来说,两个线程不能将信息同时发送给一台打印机。

为解决这个问题,对那些可共享的资源来说(比如打印机),它们在使用期间必须进入锁定状态。

所以一个线程可将资源锁定,在完成了它的任务后,再解开(释放)这个锁,使其他线程可以接着使用同样的资源。

多线程是为了同步完成多项任务,不是为了提高运行效率,而是为了提高资源使用效率来提高系统的效率。

线程是在同一时间需要完成多项任务的时候实现的。

线程优先级被线程调度用来判定何时哪个线程允许运行。

理论上,优先级高的线程比优先级低的线程获得更多的CPU时间。

实际上,线程获得的CPU 时间通常由包括优先级在内的多个因素决定(例如,一个实行多任务处理的操作系统如何更有效的利用CPU时间)。

一个优先级高的线程自然比优先级低的线程优先。

举例来说,当低优先级线程正在运行,而一个高优先级的线程被恢复(例如从沉睡中或等待I/O 中),它将抢占低优先级线程所使用的CPU。

理论上,等优先级线程有同等的权利使用CPU。

但你必须小心了。

记住,Java 是被设计成能在很多环境下工作的。

一些环境下实现多任务处理从本质上与其他环境不同。

为安全起见,等优先级线程偶尔也受控制。

这保证了所有线程在无优先级的操作系统下都有机会运行。

实际上,在无优先级的环境下,多数线程仍然有机会运行,因为很多线程不可避免的会遭遇阻塞,例如等待输入输出。

遇到这种情形,阻塞的线程挂起,其他线程运行。

但是如果你希望多线程执行的顺利的话,最好不要采用这种方法。

同样,有些类型的任务是占CPU 的。

对于这些支配CPU类型的线程,有时你希望能够支配它们,以便使其他线程可以运行。

多个线程同时读写同一份共享资源的时候,可能会引起冲突。

这时候,我们需要引入线程“同步”机制,即各位线程之间要有个先来后到,不能一窝蜂挤上去抢作一团。

同步的关键是管程,管程是一个互斥独占锁定的对象,在给定的时间,仅有一个线程获得管程,当一个线程需要锁定时,他必须进入管程。

1.5 端口扫描一个端口就是一个潜在的通信通道,也就是一个入侵通道。

对目标计算机进行端口扫描,能得到许多有用的信息。

进行扫描的方法很多,可以是手工进行扫描,也可以用端口扫描软件进行。

在手工进行扫描时,需要熟悉各种命令。

对命令执行后的输出进行分析。

用扫描软件进行扫描时,许多扫描器软件都有分析数据的功能。

通过端口扫描,可以得到许多有用的信息,从而发现系统的安全漏洞2 概要设计2.1 整体框架设计经过我们组员的思考很研究,得出了以下几个模块的简单端口扫描器,整个端口扫描器的核心模块是是端口扫描系统,它由许多子模块组成,其结构如下图所示:TCP 端口扫描程序2.2 流程图描述开始输输入入主端机口名的或范要围查找的的参ip数设输计入线模块结束3 详细设计3.1 端口扫描线程启动扫描程序主要运用Socket 编程。

对于一个工作齐全的Socket ,其工作过程包含以下四个就基本步骤:创建通信双方的socket 链接,即分别为服务器和客户端创建Socket 对象,建立Socket 连接;打开连接到Socket 的输入流和输出流;按照一定的协议对Socket 进行读/写操作;关闭连接。

以下是程序代码// 运行扫描端口public void run()基本信息检测模块检测信息匹配模块是否在参数范围中线程数通过scoket匹配过滤原则来进行端口扫IP地址是否存结果输出模块(通过GUI 界面输出得到的结果)GUI界面中打印出来读取应答内容{int i;Socket theTCPsocket;for(i{try{theTCPsocket=new Socket(hostAddress,i);theTCPsocket.close();switch(i){case 21:break;case 23:break;case 25:break;case 80:break;case 110:break;case 139:break;}}catch (IOException e){}}if (i==MAX_port){}}}3.2 GUI 图形界面图形用户界面是软件产品和用户交互的接口,是软件产品中用户直接可以看到并直接操作的部分。

相关文档
最新文档