




已阅读5页,还剩100页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
四川理工学院毕业设计 论文 服务器监视系统 四川理工学院计算机学院 二 O 0 九年六 服务器监视系统 摘 要 该系统实现对服务器 网络设备进行自动化 智能化的监测管理 真正把服 务器设备管理人员从繁重的日常工作中解脱出来 本系统可以对所有的服务器端口进行实时的检查 检测服务器端口运行情况 是否正常 如果检测到端口出现问题能够通过管理人员设定的警告方式通知管理 员 可以选择消息框通知管理员和选择声音通知管理员 该系统最终会生成检测 日志 方便以后查找相关端口出问题的概率 关键词关键词 SNMP Winsock 计算机网络 服务器 多线程 I Service Monitoring System ABSTRACT The The system of servers network equipment automation intelligent monitoring and management the real device management server from a heavy work out day to day This system can port to all servers in real time inspection to detect whether the server port to normal operation if a problem is detected by the port management set up to inform the administrator of the warning May choose to inform the administrator and the message box to inform the administrator to choose the voice The system will eventually generate detection logs to facilitate the future to find the probability of problems related to ports Keywords SNMP WinsockWinsock Network Server MultiThreading II 目目 录录 第 1 章 绪 论 1 1 1 服务端口概述 1 1 2 相关名词解释 1 1 3 研究背景 3 1 4 论文的研究内容及组织 3 第 2 章 系统分析 5 2 1 需求分析 5 2 2 业务流程分析 6 2 3 数据流程分析 6 2 4 数据存储分析 概念模型设计 8 2 4 1 数据模型设计 8 2 4 2 关系描述设计 10 2 5 功能层次分析 10 第 3 章 系统设计 11 3 1 软件系统结构设计 11 3 1 1 系统方案确定 11 3 1 2 软件结构设计 11 3 2 数据库设计 11 3 2 1 数据库的逻辑设计 11 3 2 2 数据库的物理设计 11 第 4 章 系统实现 13 4 1 开发环境介绍 13 4 2 服务控制相关 Win32 API 函数 13 4 2 1 使用 Win32 API 的意义 13 4 2 2 Win32 API 函数简介 14 4 2 3 本系统用到的 API 函数 17 4 3 系统界面设计 20 4 3 1 系统主界面设计 21 4 3 2 查看历史日志设计 21 III 4 3 3 关于窗口界面设计 22 4 4 程序的调试 24 第 5 章 系统的运行与维护 27 5 1 系统开发环境 27 5 2 系统测试 27 5 3 系统运行与维护 28 5 3 1 系统的运行 28 5 3 2 系统的维护 28 结 论 30 致 谢 31 参考文献 32 附录 33 附录 A 程序源代码 33 附录 B 软件使用说明书 97 付强 服务器监视系统 0 第 1 章 绪 论 1 1 服务端口概述 服务是一种在后台运行的应用程序类型 它与 UNIX 后台应用程序类似 服务应用程序通常可以在本地和通过网络为用户提供一些功能 例如客户端 服 务器应用程序 Web 服务器 数据库服务器以及其他基于服务器的应用程序 服务执行指定系统功能的程序 例程或进程 以便支持其他程序 尤其是 低层 接近硬件 程序 通过网络提供服务时 服务可以在 Active Directory 中发布 从而促进了以服务为中心的管理和使用 如 安全帐户管理器 服务 文件复制 服务和 路由和远程访问 服务 服务通常分为本地服务和网络服务 本论文讨论的服务为网络服务 故不 再对本地服务做介绍 常用网络服务有 POP3 SMTP FTP HTTP DNS TELNET 等 这些网络服务在运行时 都需要一个或多个 端口 用来与其它电脑或网 络设备交换信息 端口在 Windows 系统中 从 1 65535 都属于端口可以定义的范畴 一般 来说 某种类型的服务 有一个一般性的端口定义 比如 ftp 为 21 端口 http 为 80 端口 telnet 为 23 端口等等 当然我们为了安全性考虑或者管理上的一 些考虑等 也可以自定义端口为其它值 比如我们可以把 HTTP 端口定义为 8080 当然 对于同一种类型的服务 同一台机器的每个端口只能提供一种服 务 比如 某台服务器上面安装有 IIS 和 Apache 两种 http 服务器软件 我们 如果要同时启动它们 可以分别定义它们的 HTTP 端口为 80 和 81 当然 80 和 81 端口 不能被其它的程序或服务占用 1 2 相关名词解释 域 构成部分网络并共享一个通用目录数据库的一组计算机 一个域作 为一个单元来管理 并且带有共同的规则和过程 每个域有一个唯一的名称 Active Directory 域是一个由 Windows 网络的管理员定义的计算机的集合 这些计算机共享公用目录数据库 安全策略以及与其他域的安全关系 Active Directory 域提供了对由该域的管理员维护的集中用户帐户和组帐户的访问 Active Directory 林由一个或多个域组成 每个域都可以跨越一个以上的物理 位置 DNS 域是 DNS 名称空间中的任意一个树或子树 尽管 DNS 域的名称通 四川理工学院毕业设计 论文 1 常与 Active Directory 域对应 但不要混淆 DNS 域和 Active Directory 域 传输控制协议 网际协议 TCP IP Internet 上得到广泛使用的一组网 络协议 用来跨有不同硬件体系结构和不同操作系统的计算机相互连接的网络 通讯 TCP IP 包括计算机如何进行通讯的标准 及用于连接网络和路由选择通 信的约定 协议是指一组用于通过网络发送信息的规则和约定 这些规则控制 在网络设备间交换消息的内容 格式 时间选择 顺序和错误控制 IP 地址 用于标识 Internet 网络上节点的一个 32 位二进制数 对于 IP Internet 网络上的每个节点都必须指派一个唯一的 IP 地址 它由网络 ID 和唯一的主机 ID 组成 该地址通常用点分十进制表示 例如 192 168 7 27 在 Windows 中 可以通过静态配置或 DHCP 动态获取 IP 地址 Win32 API 函数 Win32 API 即为 Microsoft 32 位平台的应用程序编程 接口 Application Programming Interface 所有在 Win32 平台上运行的应用 程序都可以调用这些函数 使用 Win32 API 应用程序可以充分挖掘 Windows 32 位操作系统的潜力 Microsoft 的所有 32 位平台都支持统一的 API 包括函数 结构 消息 宏及 接口 使用 Win32 API 不但可以开发出在各种平台上都能成功运行的应用程序 而且也可以充分利用每个平台特有的功能和属性 在具体编程时 程序实现方式的差异依赖于相应平台的底层功能的不同 最显著的差异是某些函数只能在更强大的平台上实现其功能 例如 安全函数 只能在 Windows NT 操作系统下使用 再例如 本文中将要使用的 Winsock API 函数 也只能在 Windows NT 操作系统下使用 另外一些主要差别就是系统限制 比如值的范围约束 或函数可管理的项目个数等等 标准 Win32 API 函数可以分为以下几类 窗口管理 窗口通用控制 SHELL 特性 图形设备接口 系统服务 国际特性 付强 服务器监视系统 2 网络服务 Winsock 函数 Windows 下网络编程的规范 Windows Sockets 是 Windows 下得到广泛应用的 开放的 支持多种协议的网络编程接口 从 1991 年的 1 0 版到 1995 年的 2 0 8 版 经过不断完善并在 Intel Microsoft Sun SGI Informix Novell 等公司的全力支持下 已成 为 Windows 网络编程的事实上的标准 TCP IP 的核心部分由网络操作系统的内 核实现 引用程序通过编程接口来访问 TCP IP 其中在 Windows 环境下的 TCP IP 编程接口就是 WinSock API 函数 多线程 线程是一组指令的集合 或者是程序的特殊段 它可以在程序 里独立执行 也可以把它理解为代码运行的上下文 所以线程基本上是轻量级 的进程 它负责在单个程序里执行多任务 通常由操作系统负责多个线程的调 度和执行 简单来说 线程是运行在一个进程内部的一个或多个结构体 它们 有或没有联系 可以不影响主进程执行的情况下 独立进行特定的执行过程 多线程是为了使得多个线程并行的工作以完成多项任务 以提高系统的效率 使用多线程可以把占据长时间的程序中的任务放到后台去处理 程序的运行速 度可能加快 线程是在同一时间需要完成多项任务的时候被实现的 显然 通 过多线程 可以使程序执行效率更高 可以在一个线程发生故障时 不影响其 它线程和主进程的正常运行 可以完成单个进程不可能完成的任务 等等等等 好处非常多 Delphi 中的线程是一个 Tthread 类 通过 CreateThread 的方法 来使用 1 3 研究背景 随着 IT 应用的普及 企业的经营活动与 IT 效率越来越紧密地联系起来 服务器宕机 网站无法访问或数据库出现问题 等不稳定因素将会极大影响 企业的日常运营 而简单的人工运维已无法满足企业 通过 IT 提高工作效率 的需求 因此我们迫切需要构建一个集中的管理平台 对服务器 网络设备及 其应用进行自动化 智能化的监测管理 真正把 IT 运维人员从繁重的日常工作 中解脱出来 本毕业设计讨论的程序 可以对常用的服务端口进行检查 检查各种服务 端口是否在正常工作 为了增强适应性 允许用户自定义服务端口 本系统要 求对常用服务端口进行监视 允许用户自定义服务端口 能通过消息框通知管 四川理工学院毕业设计 论文 3 理员 声音报警和生成日志 1 4 论文的研究内容及组织 本文首先介绍了服务端口的基本概念和服务端口涉及到的技术 通过历史 背景 分析了服务端口监视系统存在的必要性 需求性 本文后面几章的部分是这样组织的 第 2 章 分析了系统的流程和系统的功能层次 第 3 章 重点是系统的总体框架设计 第 4 章 主要对 Server Ports Monitor 服务器端口监视系统 的实现进行 论述 对端口监视的编程技术进行详细的引入 首先对与服务端口监视密切相 关的 Win32 API 函数定义 调用等技术作了详细的阐述 然后详细设计了程序 的界面和代码 第 5 章 对系统的运行与维护作了说明 对系统的软硬件环境做了说明 全文总结 附录带有全部源代码 付强 服务器监视系统 4 第 2 章 系统分析 系统分析也就是需求分析 本系统采用 自上而下的总体规划 自下而上 的应用开发 的思想进行设计 主要包括业务流程分析 数据流程分析 数据 存储分析 功能层次分析 2 1 需求分析 为了达到服务器端口监视系统设计的目标以及实际应用的目的 通过对四 川理工学院师生的走访调查和对自贡市某些中小型企业的走访调查 我们分析 并整理出了本系统要求具有如下基本功能 功能要求 1 能同时监视多个服务器和网站 2 要实时反应服务器端口的运行状况 并在主界面上进行显示 3 增强不同环境适应性 要能够自定义监视的端口 4 要能够记录历史日志 供系统管理员以后查询带来便利 5 监视到错误的时候 要能自动弹出到最前台 并以声音和警报窗口显示 出错误的信息 6 要能够自定义程序选项 如监视的间隔频率 报警声音文件自定义等等 7 因为端口的个数比较多 从 1 到 65535 所以程序效率一定要高 不能 一个一个的逐个监视 要求能同时进行多个端口同时进行 另外 走访调查中 这些用户对该系统性能也提出了一定要求 1 使用性 要求各个功能实现简单 操作方便 系统处理正确 整个系统 恢复性能好 以确保软件可使用性好 2 可扩展性 要求系统扩展方便 升级容易 3 可管理性 要求对系统进行管理简单 易用 4 实时性 要求及时弹出报警信息 在程序主界面上进行显示 通过上面的调查和分析 要达到上述功能和性能要求 对安装该监视系统 的服务器硬件环境就需要做出相应规定 监视服务器 P4 3 0G 以上 512M 内存 硬盘 20G 以上 网络适配器 10 100M 自适应网卡 10Mbps 以上的网络交换机 该监视服务器和其它 四川理工学院毕业设计 论文 5 需要监视的服务器之间要求至少采用 10Mbps 以上的速率进行网络连接 实验中我们采用了 10 100Mbps 自适应的网卡和网络交换机 2 2 业务流程分析 本系统的业务流程较单一 一直做循环判断即可 如图 2 1 所示 2 3 数据流程分析 本系统从总体上分为服务器列表 10 个 监视选项和端口列表 监视和记 录日志三部分 每个模块有自己的作用 数据流程如图 2 2 所示 付强 服务器监视系统 6 图 2 2 系统的数据流程 为了更进一步描绘系统的逻辑模型 在得出系统的数据流图后就要对图中 的数据进行定义即数据字典 数据字典是关于数据信息的集合 也就是对数据 流图中包含的所有元素的定义的集合 一般来说 数据字典应该由四类元素的 定义组成 数据流 数据流分量 即数据元素 数据存储 数据处理 系统的 主要元素的数据字典卡片如图 2 3 所示 以具体说明数据字段卡片中相关数据 的含义 名字 监视日志 别名 描述 记录端口监视中所有关键的事件 定义 监视日志 时间 服务器 端口号 消 息内容 位置 LogFile txt 文本型数据库 名字 设置 别名 描述 记录本系统所有的设置项 定义 设置 名称 值 位置 系统 INI 设置文件 四川理工学院毕业设计 论文 7 图 2 3 系统主要数据元素的数据字典 2 4 数据存储分析 概念模型设计 需求分析阶段主要有两个方面的任务 分析用户的数据要求和分析用户的 处理要求 通过以上分析 我们基本了解了用户对处理的要求 接下来要做的 工作是分析用户对数据的要求 为了把用户的数据清晰地表达出来 我们用 E R 模型来表示 2 4 12 4 1 数据模型设计数据模型设计 经过上面的分析 能够提取以下几个实体 服务器列表 监视选项 端口 列表 端口监视和记录日志 它们的实体图分别如图 2 4 图 2 5 图 2 6 所示 服务器列表 服务器 或域名 1 ip 服务器 或域名 2 ip 服务器 或域名 3 ip 服务器 或域名 10 ip 服务器 或域名 4 ip 图 2 4 服务器列表实体图 付强 服务器监视系统 8 图 2 5 监视选项实体图 图 2 6 端口监视和记录日志实体图 四川理工学院毕业设计 论文 9 2 4 22 4 2 关系描述设计关系描述设计 根据以上各实体图 经过转换 可以导出各个关系 其转换规则为 首先 每个实体应转化为一个关系 有属性的联系也应转化为一个关系 然后需要给 出每个关系的关键字 根据关系数据库的理论要求 需要对所有关系进行关系 规范化 至少要求每个关系达到第三范式的要求 按照第三范式的要求 在所 有关系中都不存在非主属性对关键字的部分依赖 即满足第三范式 2 5 功能层次分析 根据系统分析阶段得到的数据流图 采用软件设计的概念和原理 在保证 系统基本功能要求的前提下 结合系统新的业务流程确定系统必须具备的所有 功能 由此给出服务器端口监视系统的系统功能结构图如图 2 8 所示 服务器端口监视系统 监视服务器列表监视选项管理监视管理 服 务 器 1 服 务 器 2 服 务 器 10 警 报 窗 口 声 音 报 警 监 视 间 隔 频 率 监 视 线 程 数 监 视 端 口 选 项 日 志 记 录 付强 服务器监视系统 10 图 2 8 系统功能结构图 四川理工学院毕业设计 论文 11 第 3 章 系统设计 前一章进行了对该系统的具体分析 本章将根据需求分析给出的功能进行 具体的设计 主要包括系统的软件系统结构设计和数据库设计两方面 3 1 软件系统结构设计 3 1 13 1 1 系统方案确定系统方案确定 通过对系统的调研与分析 系统主要应完成的功能如下 监视服务器列表 管理 监视选项管理 端口监视和监视日志管理等功能 3 1 23 1 2 软件结构设计软件结构设计 本系统在执行时 先自动列出 Windows 的 1 65535 端口中所有常用端口号 然后可以对这些端口列表进行勾选或取消操作 而服务器列表 IP 或网址域名 中相应的服务端口如果停止 则系统会自动记录事件日志 并弹出警报窗口以 便通知管理员做相应处理 可选 退出系统的时候可以自动保存系统设置和监 视端口列表 以便在下次启动程序的时候 自动恢复这些设置 3 2 数据库设计 因为本系统设计任务书要求保存事件日志 因本系统的日志数据结构简单 故采用文本型数据库 数据结构如下 符号之间标注的是该文本数据库的各 字段名 3 2 13 2 1 数据库的逻辑设计数据库的逻辑设计 在完成数据的概念模型设计即 E R 图后 即可进入数据库的逻辑设计阶段 数据库的逻辑设计即把得到的满足第三范式的关系转化为特定的数据库表 本系统中所涉及到日志的主要实体共有一个数据表 监视日志表 3 2 23 2 2 数据库的物理设计数据库的物理设计 在完成数据库的逻辑设计后 即可开始数据库的物理设计 本系统采用文 本型数据库 下面将该数据库的物理结构列出如表 3 1 所示 付强 服务器监视系统 12 字段名称类型关键字 日期时间日期 时间是 域名 端口 简介文本否 事件备注文本否 表 3 1 监视日志表 四川理工学院毕业设计 论文 13 第 4 章 系统实现 本系统的实现是用 Delphi 7 0 编写程序完成系统的所有功能 采用文本型 数据库来保存监视日志 采用 INI 文件来保存程序设置项 本章主要对 Server Ports Monitor 服务器端口监视系统 的实现进行论述 对服务端口监视的编 程技术进行详细的引入 首先对与服务端口监视控制密切相关的 Win32 API 函 数定义 调用等技术作了详细的阐述 然后详细设计了程序的界面和代码 由 于程序代码较多 本章只对核心代码做出具体编程和分析说明 详细程序代码 放在最后的附录里 4 1 开发环境介绍 Delphi Borland 公司出品的面向对象开发工具 它是当前最强大 最灵 活的应用程序开发工具之一 它将可视化界面与面向对象的 Pascal 语言完美 地结合在一起 使用 Delphi 内置的增强集成开发环境 IDE 可视化构件库 VCL 运行库 RTL Borland 数据库引擎 BDE 等 可以在极短时间里建 立起快速 直观 强大的基于 Win32 的应用程序 版本 5 里增加了对 ADO 的 支持 并使编译器的效率赶上了 Microsoft Visual Studio 的编译器 版本 6 更是加入了 XML 的支持 使得 Delphi 6 成为第一个支持 XML 的开发工具 Borland 公司曾用名 Inprise 现在 delphi 开发小组改名为 CodeGear Delphi 最新版本为 Delphi2007 即 Delphi 11 4 2 服务控制相关 Win32 API 函数 4 2 14 2 1 使用使用 Win32Win32 APIAPI 的意义的意义 在 Windows 程序设计领域处于发展初期时 Windows 程序员可使用的编程工 具唯有 API 函数 这些函数在程序员手中犹如 积木块 一样 可搭建出各种 界面丰富 功能灵活的应用程序 不过 由于这些函数结构复杂 所以往往难 以理解 而且容易误用 随着软件技术的不断发展 在 Windows 平台上出现了很多优秀的可视化编 程环境 程序员可以采用 所见即所得 的编程方式来开发具有精美用户界面 和功能的应用程序 这些可视化编程环境操作简便 界面友好 比如 Visual C Delphi Visual Basic 等等 在这些工具中提供了大量的类库和各种控 件 它们替代了 API 的神秘功能 事实上 这些类库和控件都是构筑在 付强 服务器监视系统 14 Windows API 的基础上的 但它们使用方便 加速了 Windows 应用程序的开发 所以受到程序员的普遍采用 有了这些类库和控件 程序员们便可以把主要精 力放在整体功能的设计上 而不必过于关注具体细节 不过 这也导致了非常 多的程序员在类库面前 固步自封 对底层 API 函数的强大功能一无所知 实际上 程序员要想开发出更灵活 更实用 更具效率的应用程序 必然 要涉及到直接使用 API 函数 虽然类库和控件使应用程序的开发容易得多 但 它们只提供 Windows 的一般功能 对于一些比较复杂和特殊的功能来说 单使 用类库和控件是难以实现的 必须直接使用 API 函数来编写 API 函数是构筑 整个 Windows 框架的基石 只有充分理解和利用 API 函数 才能深入到 Windows 的内部 充分发挥各种 32 位平台的强大功能和灵活性 才能成功地扩 展和突破类库 控件和可视开发环境的限制 4 2 24 2 2 Win32Win32 APIAPI 函数简介函数简介 Win32 API 即为 Microsoft 32 位平台的应用程序编程接口 Application Programming Interface 所有在 Win32 平台上运行的应用程序都可以调用这 些函数 使用 Win32 API 应用程序可以充分挖掘 Windows 32 位操作系统的潜力 Microsoft 的所有 32 位平台都支持统一的 API 包括函数 结构 消息 宏及 接口 使用 Win32 API 不但可以开发出在各种平台上都能成功运行的应用程序 而且也可以充分利用每个平台特有的功能和属性 在具体编程时 程序实现方式的差异依赖于相应平台的底层功能的不同 最显著的差异是某些函数只能在更强大的平台上实现其功能 例如 安全函数 只能在 Windows NT 操作系统下使用 再例如 本文中将要使用的 Winsock API 函数 也只能在 Windows NT 操作系统下使用 另外一些主要差别就是系统限制 比如值的范围约束 或函数可管理的项目个数等等 标准 Win32 API 函数可以分为以下几类 窗口管理 窗口通用控制 SHELL 特性 图形设备接口 系统服务 四川理工学院毕业设计 论文 15 国际特性 网络服务 本系统设计用到的 Win32 API 函数 主要是属于 Winsock API 函数 Windows 下网络编程的规范 Windows Sockets 是 Windows 下得到广泛应 用的 开放的 支持多种协议的网络编程接口 从 1991 年的 1 0 版到 1995 年 的 2 0 8 版 经过不断完善并在 Intel Microsoft Sun SGI Informix Novell 等公司的全力支持下 已成 为 Windows 网络编程的事实上的标准 Windows Sockets 规范以 U C Berkeley 大学 BSD UNIX 中流行的 Socket 接口为范例定义了一套 Micosoft Windows 下网络编程接口 它不仅包含了人们 所熟悉的 Berkeley Socket 风格的库函数 也包含了一组针对 Windows 的扩展 库函数 以使程序员能充分地利用 Windows 消息驱动机制进行编程 Windows Sockets 规范本意在于提供给应用程序开发者一套简单的 API 并让各家网络软 件供应商共同遵守 此外 在一个特定版本 Windows 的基础上 Windows Sockets 也定义了一个二进制接口 ABI 以此来保证应用 Windows Sockets API 的应用程序能够在任何网络软件供应商的符合 Windows Sockets 协议的实 现上工作 因此这份规范定义了应用程序开发者能够使用 并且网络软件供应 商能够实现的一套库函数调用和相关语义 遵守这套 Windows Sockets 规范的 网络软件 我们称之为 Windows Sockets 兼容的 而 Windows Sockets 兼容实 现的提供者 我们称之为 Windows Sockets 提供者 一个网络软件供应商必须 百分之百地实现 Windows Sockets 规范才能做到现 Windows Sockets 兼容 任 何能够与 Windows Sockets 兼容实现协同工作的应用程序就被认为是具有 Windows Sockets 接口 我们称这种应用程序为 Windows Sockets 应用程序 Windows Sockets 规范定义并记录了如何使用 API 与 Internet 协议族 IPS 通常我们指的是 TCP IP 连接 尤其要指出的是所有的 Windows Sockets 实现 都支持流套接口和数据报套接口 应用程序调用 Windows Sockets 的 API 实现相 互之间的通讯 Windows Sockets 又利用下层的网络通讯协议功能和操作系统 调用实现实际的通讯工作 计算机网络是由一系列网络通信协议组成的 其中的核心协议是传输层的 TCP IP 和 UDP 协议 TCP 是面向连接的 通信双方保持一条通路 好比目前的 电话线 使用 telnet 登陆 BBS 用的就是 TCP 协议 UDP 是无连接的 通信双 付强 服务器监视系统 16 方都不保持对方的状态 浏览器访问 Internet 时使用的 HTTP 协议就是基于 UDP 协议的 TCP 和 UDP 协议都非常复杂 尤其是 TCP 协议 为了保证网络传输 的正确性和有效性 必须进行一系列复杂的纠错和排序等处理 Socket 是建立在传输层协议 主要是 TCP 和 UDP 上的一种套接字规范 最 初是由美国加州 Berkley 大学提出 它定义两台计算机间进行通信的规范 也 是一种编程规范 如果说两台计算机是利用一个 通道 进行通信 那么这 个 通道 的两端就是两个套接字 套接字屏蔽了底层通信软件和具体操作系 统的差异 使得任何两台安装了 TCP 协议软件和实现了套接字规范的计算机之 间的通信成为可能 微软的 Windows Socket 规范 简称 winsock 对 Berkley 的套接字规范进行 了扩展 利用标准的 Socket 的方法 可以同任何平台上的 Socket 进行通信 利用其扩展 可以更有效地实现在 Windows 平台上计算机间的通信 在 Delphi 中 其底层的 Socket 也应该是 Windows 的 Socket Socket 减轻了编写计算机 间通信软件的难度 但总的说来还是相当复杂的 这一点在后面具体会讲到 Delphi 中对 Windows Socket 进行了有效的封装 使得用户可以很方便地编写 网络通信程序 为什么要采用 Winsock 编程 Winsock 更接近底层 应用程序在正常情况下通过 WinSock 接口可以直接 访问网络栈 除了因 WinSock 提供网路底层之通讯能力 使程式设计者不必担心实际通 讯细节 设计出好的网路软体 笔者认为其它的好处有 使用方便 省却输入指令之麻烦 视窗的环境给人的感觉就是使用者亲和性高 想要执行的软体 只要在相 对的 Icon 点两下即可 网路软体亦相同 只要设定正确 点两下即可连上网 路 再也不需要输入一大堆的指令 提供多媒体的环境 在 Windows 下执行 Mosaic 或 Cello WWW Browser 你将感受到网路多媒 体的好处 看文章不再只有是密密麻麻的文字 而是如看杂志般图文并貌 如 你有音效设备 你可以听一段演讲 甚至你可以看一段影片 支援群广大 四川理工学院毕业设计 论文 17 由於 WinSock 负责网路底层的工作 省却设计上的麻烦 使得有更多的人 投入设计网路程式的行列 可以期待的是将有更多好用 功能更强的软体可以 使用 4 2 34 2 3 本系统用到的本系统用到的 APIAPI 函数函数 本系统主要用到的函数作用是 sockets 接口 控制 线程控制等等 下 面介绍本系统中用到的主要函数 1 int WSAStartup WORD wVersionRequested LPWSADATA lpWSAData 使用 Socket 的程序在使用 Socket 之前必须调用 WSAStartup 函数 该函数 的第一个参数指明程序请求使用的 Socket 版本 其中高位字节指明副版本 低 位字节指明主版本 操作系统利用第二个参数返回请求的 Socket 的版本信息 当一个应用程序调用 WSAStartup 函数时 操作系统根据请求的 Socket 版本来 搜索相应的 Socket 库 然后绑定找到的 Socket 库到该应用程序中 以后应用 程序就可以调用所请求的 Socket 库中的其它 Socket 函数了 返回值 该函数执行成功后返回 0 例 假如一个程序要使用 2 1 版本的 Socket 那么程序代码如下 wVersionRequested MAKEWORD 2 1 err WSAStartup wVersionRequested wsaData 2 int WSACleanup void 应用程序在完成对请求的 Socket 库的使用后 要调用 WSACleanup 函数来 解除与 Socket 库的绑定并且释放 Socket 库所占用的系统资源 返回值 该函数执行成功后返回 0 3 int MessageBox HWND hWnd 所有者窗口的句柄 LPCTSTR lpText 消息框里面的文本 指针 付强 服务器监视系统 18 LPCTSTR lpCaption 消息框的标题文本 指针 UINT uType 消息框的显示风格 该函数可以显示一个标准的 Windows 消息框 并可以显示 确定 取消 是 否 等按钮 供用户做出相应选择 4 BOOL IsWindowVisible HWND hWnd 窗口的句柄 该函数可以得到指定窗口句柄的可见度 返回值为真说明该窗口可见 5 BOOL SetForegroundWindow HWND hWnd 要恢复到前台窗口的句柄 该函数可以把指定的窗口置为前台窗口 6 HINSTANCE ShellExecute HWND hwnd 父窗口句柄 LPCTSTR lpOperation 操作的类型 指针 LPCTSTR lpFile 执行的文件名或文件夹名 指针 LPCTSTR lpParameters 可执行文件的执行参数 指针 LPCTSTR lpDirectory 默认目录 指针 INT nShowCmd 打开时的窗口状态 该函数的功能是执行外部程序 7 int gethostname char FAR name int namelen 该函数一般返回本机的机器名 namelen 是机器名缓冲的长度 name 参数 保存机器名指针 四川理工学院毕业设计 论文 19 返回值 该函数如果成功 返回值为 0 失败返回非零值 8 struct hostent FAR gethostbyname const char FAR name 该函数可以从主机机器名获取主机资料 name 指向主机名字符串的指针 即 gethostname 函数的 name 参数 返回值 当函数成功调用时返回主机信息 失败时返回 NULL 空值 9 HWND GetForegroundWindow VOID 该函数的功能是返回前台窗口的句柄 10 BOOL PlaySound LPCSTR pszSound HMODULE hmod DWORD fdwSound 该函数的功能是播放 wav 声音文件 函数成功返回真 失败时返回假 11 BOOL IsIconic HWND hWnd 窗口的句柄 该函数的功能是根据句柄识别有图标的窗口 12 HINSTANCE LoadLibrary LPCTSTR lpLibFileName 可执行模块的文件名的地址 该函数的功能是装载一个动态链接库文件 以便调用其中的函数 13 FARPROC GetProcAddress HMODULE hModule DLL 模块句柄 LPCSTR lpProcName 函数的名称 付强 服务器监视系统 20 该函数的功能是返回指定 DLL 中的指定函数的地址值 14 BOOL FreeLibrary HMODULE hLibModule 已载入的 DLL 模块的句柄 该函数的功能是释放 DLL 模块的内存 15 BOOL GetClassInfo HINSTANCE hInstance 应用程序实例的句柄 LPCTSTR lpClassName 类名字符串的地址 LPWNDCLASS lpWndClass 类数据结构的地址 该函数的功能是查找一个匹配的类 Class 并复制它的数据 16 ATOM RegisterClass CONST WNDCLASS lpWndClass 类数据结构的地址 该函数的功能是注册一个原子 atom 类 返回值是唯一的识别标识 17 BOOL DestroyWindow HWND hWnd 要摧毁的窗口的句柄 该函数的功能是摧毁一个指定句柄的窗口 因本系统用到的 API 函数较多 篇幅关系 就简谈到此 函数调用详情 请参阅程序源代码 4 3 系统界面设计 从 4 1 和 4 2 小节可以看出 Windows 虽然提供了 Winsock API 函数 但 是却没有直接提供一个便于控制和监视服务端口状态的应用程序 当服务端口 停止之后 也不会通过友好的用户界面 在前台窗口通知管理员和用户做出相 应选择性的处理 因此我们需要构建一个集中的管理平台 对服务器 网络设 备及其应用进行自动化 智能化的监测管理 真正把 IT 运维人员从繁重的日常 四川理工学院毕业设计 论文 21 工作中解脱出来 下面对系统程序做出详细设计 4 3 14 3 1 系统主界面设计系统主界面设计 系统主界面主要作用是对系统各子功能模块的总调用 通过一个简单直观 的界面 可以完成系统分析中所述的所有功能 系统主界面分为几个区域 1 监视服务器列表 共 10 个 2 端口选项 包括监视端口范围 开始端口 结 束端口 以及一个选择端口列表 3 监视选项 监视间隔频率 端口监视线 程数 开始和停止监视 4 检查结果 显示选项 是否保留列表 查看日志 5 检查结果选项 是否发出声音报警 是否弹出警报窗口 系统主界面如图 4 3 所示 图 4 3 系统主界面 从上图可以看出 主界面大体上分为 2 个大的区域 分别是 服务器和端 口选择 监视结果 4 3 24 3 2 查看历史日志设计查看历史日志设计 该模块可以显示系统监视中的重要事件日志 并保存在文本型数据库中 付强 服务器监视系统 22 文本数据库的设计在上一章已经介绍过 故不再叙述 点击主界面的 查看日 志 按钮后 如果有历史日志文件 LogFile txt 存在 则会自动调用系统的 记事本 程序 显示出历史日志 该日志文件是一个无限表 理论上不存在 容量限制 并可以很方便的打开阅读 历史日志界面如图 4 4 所示 图 4 4 历史日志界面 4 3 34 3 3 关于窗口界面设计关于窗口界面设计 关于窗口主要显示程序的信息 版本号和版权等相关信息 该窗口界面如图 4 5 所示 四川理工学院毕业设计 论文 23 图 4 5 关于系统界面 付强 服务器监视系统 24 本系统的端口监视流程如下图所示 继 续 下 一 台 服 务 器 端 口 否是 判断是否 按停止按 纽 结束监视 读入自定义的服务器 端口列表和监视参数 PING 服务器 调用 WINSOCK 函数检 测服务器端口 显示检测结果记录时间日 志声音报警 警报窗口 监视开始 图 4 6 端口监视流程图 4 4 程序的调试 程序调试 通常是设置断点 然后再对断点操作 跟踪执行 设置断点 首先在 Code Editor 中选定你想设置断点的代码行 而后进行如下的任一 种操作 单击选定代码行左边的空白 按 F5 选择 Code Editor 加速菜单的 Toggle BreakPoint 项 选择 Run Add Breadpoint 打开断点编辑对话框 Edit BreakPoint Dialog Box 而后选择 New 去确认一个新的断点设置或选择 Modify 去对一个 存在的断点进行修改 四川理工学院毕业设计 论文 25 从 BreakPoint List 加速菜单中选择 Add BreakPoint 项 断点必须位于可执行代码行上 凡设置在注释 空白行 变量说明上的都 无效的 另外 断点既可以在设计状态下设置也可以在运行调试状态下设置 断点的操作 断点列表窗口 BreakPoint List Window 列出了所有断点所在的源文件名 行号 条件以及已通过的次数 如果一个断点非法或失去功能 则在列表窗口 中变灰 断点列表窗口可以通过选择 View BreakPoint 菜单打开 断点列表窗口是断点操作的基础 a 显示和编辑断点处的代码 利用断点列表窗口可以快速找到断点在源代码中的位置 首先选定断点而后从加速菜单中选择 View Source 或 Edit Source 时 Code Editor 更新 显示该断点位置处的代码 如果选择的是 View Source 则 断点列表窗口仍保持活动 如果选择的是 Edit Source 则 Code Editor 获得 输入焦点 可以在断点位置修改源代码 b 断点功能的丧失和恢复 使断点失去功能可以使断点从当前程序运行中隐藏起来 假如你定义了一 个断点当前并不需要 但可能在以后使用 则这一功能是很有用的 断点列表窗口加速菜单的 Disable BreakPoint 和 Disable All BreakPoints 项可以使当前选中断点或所有断点失去功能 加速菜单中的 Enable BreakPoint 和 Enable All BreakPoint 可以使相应 断点恢复功能 断点的删除 断点删除可以从 Code Editor 或断点列表窗口中进行 从 Code Editor 把光标停到包含断点的行并按 F5 或选择加速菜单 ToggleBreakPoint 单击包含断点行左边的终止符 从断点列表窗口 选中欲删除的断点并选择加速菜单的 Delete BreakPoint 项 删除当前所有断点 则选择加速菜单的 Delete All BreakPoints 项 付强 服务器监视系统 26 修改断点属性 断点列表窗口双击选定断点或从加速菜单中选择 Edit BreakPoint 项 可 以打开断点编辑对话框 用于显示和修改断点的属性 利用断点编辑对话框可以改变断点的位置 设置断点条件 断点条件包括两种 布尔表示式和通过次数 Condition 编辑框用于设置布尔表达式条件 如果表达式值为真 或非零 则程序运行在断点处中止 否则调试器将忽略该断点 Pass Count 编辑框用于设置通过次数条件 即只有当程序运行在该断点处 通过设定次数时程序运行才在该断点处中止 这往往用于对循环体内语句的调 试 有一点应引起注意的是 当 Condition 和 Pass Count 同时设置时 Pass Count 是指满足条件的通过次数 四川理工学院毕业设计 论文 27 第 5 章 系统的运行与维护 5 1 系统开发环境 系统开发环境包括硬件平台和软件平台两种 硬件平台是指开发与运行所需要的硬件环境 主要包括计算机机型及硬件 配置 由于本系统是一个小型的系统管理程序 因此对计算机硬件的要求不高 理论上只要操作系统能够运行的计算机 都可以顺利运行 开发中使用的计算 机配置为 P4 处理器 1024M 内存 80G 硬盘 软件平台是指系统开发与运行的软件环境 本系统在开发时选用了稳定性 较强的 Windows XP SP2 中文专业版为平台 选用了 Delphi 7 0 作为开发语言 同时选用了文本型数据库存储监视日志 经过长期考验测试 实践验证了这 3 者彼此之间的兼容性较好 开发出的应用系统稳定性较高 5 2 系统测试 在软件开发过程中采用了多种措施保证软件质量 但是实际开发过程中还 是不可避免地会产生差错 系统中通常可能隐藏着错误和缺陷 未经周密测试 的系统投入运行 将会造成难以想象的后果 因此系统测试是软件开发过程中 为保证软件质量必须进行的工作 大量统计资料表明 系统测试的工作量往往 占软件开发总工作量的 40 以上 因此 我们必须重视测试工作 从产品角度看 测试计划中的测试项目包括软件结构中的分系统层 子系 统层 功能模块层 程序模块层中的各类模块 从测试本身看 分为单元测试 组合测试 确认测试等 测试对象是随阶段而异的 最基本 最初的测试是单 元测试 后面的组合测试 确认测试都是以被测过的模块作为测试对象的 在具体的测试中 一般应遵循以下原则 由程序设计者之外的人进行测试 测试用例应由两部分组成 输入数据和预期输出结果 应选用不合理的输入数 据与非法输入测试 不仅要检验程序是否实现预期功能 还应检查程序是否做 了不应该做的工作 集中测试容易出错的程序模块 对程序修改以后 必须重 新进行测试 在开发本系统时 为了使系统能够稳定运行 对本系统进行了有针对性的 全面测试 采取的方式是 1 菜单项测试 为了保证每一项弹出菜单能够正确实现系统设计的功能 付强 服务器监视系统 28 把相关的基础数据 基本上全部输入到本系统中 并对每一个菜单反复进行了 增加 删除 修改等操作 从而保证了菜单级功能的正确实现 2 数据跟踪 完成菜单项测试后 又对系统内的每一个数据进行了跟踪 3 综合测试 在以上测试的基础上对系统功能进行了整体的测试 依次 检验系统功能是否符合系统设计的要求 5 3 系统运行与维护 5 3 15 3 1 系统的运行系统的运行 1 初始监视数据的输入 选项设置 本系统的输入可以采用鼠标或者键盘 2 怎样进入系统 将本系统所
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 区域地质调查员成本控制考核试卷及答案
- 离子注入能量分布均匀性优化工艺考核试卷及答案
- 装卸搬运工知识考核试卷及答案
- 固井工效率提升考核试卷及答案
- 丰城市第九中学2025-2026学年八年级上册开学考试数学试卷
- 医学影像技术x线试题及答案
- 医疗急救护理知识误服中毒意识障碍等相关试题试卷
- 2025-2026学年赣美版(2024)小学美术三年级上册《巧刻活字模》教学设计
- 银行业 面试题及答案
- 非专业生面试题目及答案
- JGJ46-2024 建筑与市政工程施工现场临时用电安全技术标准
- 《铁路轨道维护》课件-钢轨钻孔作业
- 《酶切连接与转化》课件
- 中药处方点评培训
- 危险固体废物处理项目可行性研究报告
- 《可摘局部义齿工艺技术》考试复习题库(带答案)
- 西点制作工艺-第二版教材全套课件教学教程整本书电子教案全书教案课件
- 酸枣仁介绍课件
- 《开国大典》教学设计与指导课件(第二课时)
- 软硬结合板的设计制作与品质要求
- 禁毒教育知识宣传毒品知识 64
评论
0/150
提交评论