




已阅读5页,还剩57页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
精品文档 I欢迎下载 摘摘 要要 现如今 随着我国高校的快速发展 各个大学早已朝着综合大学的发展 所开 设的学科 专业以及学院都如迅猛发展 尤其是扩招以来 各个大学的在校学生数 量猛增 在这种情况 以前学校的教务排课系统已远远不能满足现在这个快速发展 的现状 以前的那种手动排课或者简单的无纸化的系统 已经不能满足现在排课的 需求 很容易出现纰漏 导致正常的教学活动不能顺畅进行 本文正是基于目前这种现状 利用目前比较流行的B S模式 流行的关系型数据 库MySql以及应用非常普遍的PHP技术 对本次高校智能排课系统进行设计与实现 本次主要是利用了比较先进的流行的排课算法对本系统高校智能排课进行自动排课 本系统大体的思路是 首先对各种基本资料进行管理 并且对各个用户 教师 教 务人员 学生等 进行用户管理 并且对其进行角色管理 然后设置了对所有排课 信息进行管理的模块 进一步对所有的排课信息进行详细管理 在这个基础上 利 用先进的排课算法对这些信息进行排课操作 最后 可通过课程表信息发布与查询 模块对智能排课信息进行查询与下载 并可以以Excel的形式进行下载与保存 本次 对以上五个模块从需求分析到系统设计再到系统实现进行了详细的分析与阐述 并 且在最后对各个模块进行了详细的测试 通过试用 本次高校智能排课系统达到了预期的目标 II 关键字 智能 排课系统 PHP 数据库 A Ab bs st tr ra ac ct t Now with the rapid development of China s colleges and universities each university had towards the development of universities the creation of disciplines as well as professional colleges such as the rapid development especially since enrollment universities in the number of school students soared in this case the previous school courses arranging system can not meet the rapid development of the current situation now before the kind of manual or simply arranging paperless system has been unable to meet the current needs of arranging easily flaws leading to the normal teaching activities can not be carried out smoothly This article is based on the current situation the use of current popular B S mode the popular relational database MySql and PHP application very common technique this of Intelligent Scheduling System Design and realization The main advantage of the more advanced popular Scheduling Algorithm of the system of Intelligent Scheduling automatic Arrangement The idea is that in general the first of all the basic data management and individual users teachers academic staff students etc for user management and its role in management then set up all the arranging information management module timetable for all further detailed management information on this basis the use of advanced 精品文档 III欢迎下载 algorithms for arranging this information arranging operation Finally publication and query module smart Scheduling information through curriculum information Discover and download and can be downloaded as Excel and save The above five modules from requirements analysis to system design to system implementation carried out a detailed analysis and forth and at the end of each module detailed testing Through the trial this system of Intelligent Scheduling to achieve the desired objectives KeyKey words words Intelligent Course Scheduling System PHP Database 精品文档 1欢迎下载 第一章 绪 论 1 1 背景分析 随着科学技术的不断发展 各个行业信息化 科学化不断推进 高校该如何 才能提高办学的效率 这是每个高校都会面临的 也是每个高校需要迫切解决的 问题 而采用信息化手段来代替传统的教学管理模式是一个重要的途径 高校的信息化管理和办公自动化的不断推进 教务工作也逐渐实现办公自动 化 新学期课程表的安排工作对指导整个学期日常安排是否妥当 对教学资源的 利用是否合理有着至关重要的作用 如果采取传统的人工排课方法容易导致课程 冲突 课程重复 课程错漏等各种问题 而且传统的人工排课方法的任务非常重 和教务人员的效率非常低下 当课程安排上出现错误要更改的时候 教务人员则 需要花费大量的时间协调老师 班级 课程 教室等各种因素 随着高校规模的 不断扩大 学生人数不断增加 人工排课的难度就呈几何级数增大 而高校通用排课系统正是为了减轻教务人员负担 减少课程安排的出错率 降低修改课程表难度 提高教学资源的合理利用率 从而真正意义上实现教务工 作自动化 解决排课这个大难问题的教务办公软件 1 2 目前国内发展情况 国内多家专业开发教学管理信息系统的企业 如杭州正方公司 湖南强智公 司 湖南青果公司等 在其教务管理产品中均实现了自动排课功能 但由于软件设 计局限 对合班课程 教师兼课 教室交叉重复使用等复杂的情况应用效果不十分 理想 在实际应用中 主要使用其排课冲突检测功能进行计算机辅助排课 国内软 件市场上也出现了很多通用型的排课软件 如 51 智能排课 启智达排课 终级排课 等等 这些通用软件可以解决简单的通用排课问题 适合学科门类和 课程门数较单一的学校 不适合高校教学管理应用 不能满足高校多学科 专业 以及课程教学的特殊要求 比如完全学分制下课程教学班的排课问题等 通过对国内部分高校的调研和考察 了解到目前高校排课主要是利用人机交互 式的计算机软件辅助排课方式 这种方式能够随时检测排课冲突 但在排课效率方 2 面没有什么优势 也有有少数高校自行研发了自动排课系统 但通常这些排课软件 依赖于各院校自身的实际需求和管理模式 不会考虑其他高校的需要 因此它们的 数据共享性和扩展性不强 因此没有完全适用于各高校排课的通用系统 1 3 课题研究内容 本课题在充分了解和熟悉教务排课环节的基础上 通过对排课的要素 制约条 件的需求分析 建立基于校园网浏览器端 服务器 B S 结构自动排课系统的业务模 型 对系统进行概要设计 详细设计和数据库设计 结合已知的排课算法 让教务 管理系统扩展完善自动排课功能 使教务人员摆脱繁琐 机械的手工排课工作 达 到提高排课效率的目的 系统的设计与实现基于微软 Windows server2000 操作系统 软件平台 采用 MySql6 0 数据库系统作为数据库开发平台 前端数据库开发工具采 用 ThinkPhp 程序设计语言 本人的主要工作如下 1 分析分析了本学校基于完全学分制教学管理模式下排课的要素和制约条件 提出排课问题的难点和目标 通过对排课过程的分析 构建自动排课系统的逻辑模 型 2 以本人所在单位的实际情况为背景 对排课问题进行需求分析 建立系统业 务模型 分析排课流程 给出排课系统的功能模块框图 3 使用已知的排课算法 使排课效率和质量得到提高 4 进行系统详细设计 数据库设计 编程实现自动排课系统全部功能 完成软 件开发 对实际的排课问题进行测试 分析评估排课结果的质量和性能并论述系统 的可行性和实用性 通过对以上方面的研究 完成高校自动排课系统的设计与实现 1 4 本论文的章节结构 本论文立足北京联合大学生物化学工程学院完全学分制教务管理需求特点 通 过充分的分析和研究 设计并实现了适合学院需求的自动排课系统 论文章节结构 如下 第一章绪论 主要介绍了项目的研究背景 意义和国内外发展 研究和应用现 状 同时也对本人的主要工作做了简要介绍 精品文档 3欢迎下载 第二章自动排课系统需求分析 讨论了在完全学分制下 学院对排课的业务特 点及功能的需求 构建自动排课系统的逻辑模型 第三章自动排课算法的设计 对多种排课算法进行分析比较 结合实际提出改 进并优化的自动排课算法 第四章自动排课系统的设计 对自动排课系统进行总体方案设计 系统详细设 计 重点介绍了系统的数据库设计 第五章自动排课系统的实现 对排课系统各功能模块的具体实现过程进行了阐 述 对排课系统的实践应用进行测试 验证自动排课系统的应用效果 并对系统满 足需求的程度进行分析 结论部分 提出对本系统的评价与展望 4 第二章 高校智能排课系统的关键技术 2 1 数据库技术 1 数据库的几个原则 数据库设计需要遵循以下几个原则 一是 数据不仅要标准 同时还要一致 为了给数据交流及功能的实现提供方 便 一方面 数据库的设计不仅要符合国家行业和江苏省地方标准及 ITS 行业的习 惯性事实标准 另一方面 还必须要与数据库设计的软件行业标准相一致 在数据 库的设计应考虑以前己建立系统的数据 这主要是由于之前的数据库在与其他系统 之间进行数据交换的时候具有一定的优势 二是 数据不仅完整 同时还要实用 在数据库设计中 我们不仅要考虑系统 规模和实际需求 同时还要对工作的实际情况和实际应用特点进行全面的考虑和分 析 在设计的过程中 为了保证数据的实用性 必须要遵循 先进性与实用性并重 的原则 数据库中的数据只有具备了完整性 才会具有准确性 其中通常情况下完 整性是通过约束条件来控制的 15 另外 在数据的选择中还具有一定的约束条件 约束条件可以检验进入数据库中的数据值 其目的主要是为了避免那些重复或冗余 的数据进入数据库 在系统的设计中为了有效保证新建或修改后的数据能够遵循所 定义的业务知识 可以对约束条件进行科学 合理的利用 三是 数据必须要具有安全性的特点 对于整个信息系统来说 数据库不仅仅 是其基础 同时也是其核心 因此必须要保证设计的安全性才能够为整个信息系统 的运转提供条件 在设计的过程中 可以构建一个合理和有效的备份和恢复策略 这样 当数据库由于意外事故 例如人为因素或者天灾等因素而损坏数据库系统时 就可以利用这一恢复策略来在最短的时间内使数据库恢复 除此之外 如果能够很 好的完善数据库访问的授权设计 那么我们就还能够有效的保证数据不被非法访问 四是 在数据库的设计中必须要全面考虑空间 属性 设施 模型数据的兼容 性 鉴于此 交通事件管理数据库设计分为综合数据库设计 元数据设计和关联数 据设计这三种类型 五是 数据库必须要建立和完善分级管理机制 16 用户根据 精品文档 5欢迎下载 访问系统的角色的不同可以分为系统管理用户 运行调度用户 运行浏览用户以及 领导决策分析用户这几个类型 不同的角色访问数据的权限要具有差异 并且使用 系统的功能也要具有一定的不同 从而实现对角色登陆的严格控制 进而实现数据 的分级管理 六是 数据不仅独立 同时还要可扩展 独立性是数据库最基本的特 点 只有具有独立性的数据库才能够独立的应用于程序中 并且还能使其自身的数 据库的设计及其结构的变化不会对程序的运行造成影响 17 另外 结合之前的成 功经验 详细分析系统的需求 并根据业务的变化 要求在数据库的设计中要具有 较强的扩展性 这样就能够使数据库系统在增加或者减少其他需求或者应用时能够 保持一定的稳定性 不至于发生太大的变动 2 MySQL 数据库 MySQL 是一个关系型数据库管理系统 由瑞典 MySQL AB 公司开发 目前属于 Oracle 旗下公司 MySQL 是最流行的关系型数据库管理系统 在 WEB 应用方面 MySQL 是最好的 RDBMS Relational Database Management System 关系数据库管 理系统 应用软件之一 它主要通过关联数据库将数据保存在不同的表中 而不是 将所有数据放在一个大仓库内 这样就增加了速度并提高了灵活性 MySQL 所使用的 SQL 语言是用于访问数据库的最常用标准化语言 MySQL 软件 采用了双授权政策 它分为社区版和商业版 由于其体积小 速度快 总体拥有成 本低 尤其是开放源码这一特点 一般中小型网站的开发都选择 MySQL 作为网站数 据库 由于其社区版的性能卓越 搭配 PHP 和 Apache 可组成良好的开发环境 2 2 apache Web 服务器 1 发展历程 Apache 起初由伊利诺伊大学香槟分校的国家超级电脑应用中心 NCSA 开发 此后 Apache 被开放源代码团体的成员不断的发展和加强 Apache 服务器拥有牢 靠可信的美誉 已用在超过半数的因特网站中 特别是几乎所有最热门和访问量最 大的网站 Apache最开始是Netscape网页服务器之外的开放源代码选择 后来它开始在功 能和速度超越其他的基于Unix的HTTP服务器 1996年4月以来 Apache一直是 Internet上最流行的HTTP服务器 1999年5月它在 57 的网页服务器上运行 到了 2005年7月这个比例上升到了69 在2005年11月的时候达到接近70 的市占率 不过 6 随着拥有大量域名数量的主机域名商转换为微软IIS平台 Apache市占率近年来呈现 些微下滑 而Google自己的网页服务器平台GWS推出后 加上Lighttpd这 个轻量化 网页服务器软件使用的网站慢慢增加 反应在整体网页服务器市占率上 根据 netcraft在2007年7月的最新统计数据 Apache的市占率已经降为52 65 8月时又 滑落到50 92 尽管如此 它仍旧是现阶段因特网市场上 市占率最高的网页服务 器软件 广泛的解释是 也是最显而易见的 这个名字来自这么一个事实 当Apache在 1995年初开发的时候 它是由当时最流行的HTTP服务器NCSA HTTPd 1 3 的代码修改 而成的 因此是 一个修补的 a patchy 服务器 然而在服务器官方网站的FAQ中 是这么解释的 Apache 这个名字是为了纪念名为Apache 印地语 的美洲印第安人 土著的一支 众所周知他们拥有高超的作战策略和无穷的耐性 无论如何 Apache 2 x 分支不包含任何 NCSA 的代码 2 详细介绍 Apache HTTP Server 简称Apache 是Apache软件基金会的一个开放源码的网 页服务器 可以在大多数计算机操作系统中运行 由于其多平台和安全性被广泛使 用 是最流行的Web服务器端软件之一 它快速 可靠并且可通过简单的API扩展 将Perl Python等解释器编译到服务器中 Apache HTTP服务器是一个模块化的服务器 源于NCSAhttpd服务器 经过多次 修改 成为世界使用排名第一的Web服务器软件 它可以运行在几乎所有广泛使用的计算机平台上 Apache源于NCSAhttpd服务器 经过多次修改 成为世界上最流行的Web服务器 软件之一 Apache取自 a patchy server 的读音 意思是充满补丁的服务器 因为 它是自由软件 所以不断有人来为它开发新的功能 新的特性 修改原来的缺陷 Apache的特点是简单 速度快 性能稳定 并可做代理服务器来使用 本来它只用于小型或试验Internet网络 后来逐步扩充到各种Unix系统中 尤 其对Linux的支持相当完美 Apache有多种产品 可以支持SSL技术 支持多个虚拟 主机 Apache是以进程为基础的结构 进程要比线程消耗更多的系统开支 不太适 合于多处理器环境 因此 在一个Apache Web站点扩容时 通常是增加服务器或扩 充群集节点而不是增加处理器 到目前为止Apache仍然是世界上用的最多的Web服务 器 市场占有率达60 左右 世界上很多著名的网站如Amazon Yahoo W3 精品文档 7欢迎下载 Consortium Financial Times等都是Apache的产物 它的成功之处主要在于它的源 代码开放 有一支开放的开发队伍 支持跨平台的应用 可以运行在几乎所有的 Unix Windows Linux系统平台上 以及它的可移植性等方面 Apache的诞生极富有戏剧性 当NCSAWWW服务器项目停顿后 那些使用NCSAWWW 服务器的人们开始交换他们用于该服务器的补丁程序 他们也很快认识到成立管理 这些补丁程序的论坛是必要的 就这样 诞生了Apache Group 后来这个团体在 NCSA的基础上创建了Apache 3 特性 Apacheweb服务器软件拥有以下特性 1 支持最新的HTTP 1 1通信协议 2 拥有简单而强有力的基于文件的配置过程 3 支持通用网关接口 4 支持基于IP和基于域名的虚拟主机 5 支持多种方式的HTTP认证 6 集成Perl处理模块 7 集成代理服务器模块 8 支持实时监视服务器状态和定制服务器日志 9 支持服务器端包含指令 SSI 10 支持安全Socket层 SSL 11 提供用户会话过程的跟踪 12 支持FastCGI 13 通过第三方模块可以支持JavaServlets 2 2 PHP 技术 1 简介 PHP 外文名 PHP Hypertext Preprocessor 中文名 超文本预处理器 是 一种通用开源脚本语言 语法吸收了C语言 Java和Perl的特点 利于学习 使用广 泛 主要适用于Web开发领域 PHP 独特的语法混合了C Java Perl以及PHP自创的 语法 它可以比CGI或者Perl更快速地执行动态网页 用PHP做出的动态页面与其他 的编程语言相比 PHP是将程序嵌入到HTML 标准通用标记语言下的一个应用 文档 8 中去执行 执行效率比完全生成HTML标记的CGI要高许多 PHP还可以执行编译后代 码 编译可以达到加密和优化代码运行 使代码运行更快 2 发展历程 PHP原始为Personal Home Page的缩写 已经正式更名为 PHP Hypertext Preprocessor 注意不是 Hypertext Preprocessor 的缩写 这种将名称放到定义 中的写法被称作递归缩写 PHP于1994年由Rasmus Lerdorf创建 刚刚开始是Rasmus Lerdorf为了要维护个人网页而制作的一个简单的用Perl语言编写的程序 这些工具 程序用来显示 Rasmus Lerdorf 的个人履历 以及统计网页流量 后来又用C语言重 新编写 包括可以访问数据库 他将这些程序和一些表单直译器整合起来 称为 PHP FI PHP FI 可以和数据库连接 产生简单的动态网页程序 在1995年以Personal Home Page Tools PHP Tools 开始对外发表第一个版本 Lerdorf写了一些介绍此程序的文档 并且发布了PHP1 0 在这的版本中 提供了访 客留言本 访客计数器等简单的功能 以后越来越多的网站使用了PHP 并且强烈要 求增加一些特性 比如循环语句和数组变量等等 在新的成员加入开发行列之后 Rasmus Lerdorf 在1995年6月8日将 PHP FI 公开发布 希望可以透过社群来加速程 序开发与寻找错误 这个发布的版本命名为 PHP 2 已经有 PHP 的一些雏型 像是 类似 Perl的变量命名方式 表单处理功能 以及嵌入到 HTML 中执行的能力 程序 语法上也类似 Perl 有较多的限制 不过更简单 更有弹性 PHP FI加入了对 MySQL的支持 从此建立了PHP在动态网页开发上的地位 到了1996年底 有15000个 网站使用 PHP FI 在1997年 任职于 Technion IIT公司的两个以色列程序设计师 Zeev Suraski 和 Andi Gutmans 重写了 PHP 的剖析器 成为 PHP 3 的基础 而 PHP 也在这个 时候改称为PHP Hypertext Preprocessor 经过几个月测试 开发团队在1997年11 月发布了 PHP FI 2 随后就开始 PHP 3 的开放测试 最后在1998年6月正式发布 PHP 3 Zeev Suraski 和 Andi Gutmans 在 PHP 3 发布后开始改写PHP 的核心 这 个在1999年发布的剖析器称为 Zend Engine 他们也在以色列的 Ramat Gan 成立了 Zend Technologies 来管理 PHP 的开发 在2000年5月22日 以Zend Engine 1 0为基础的PHP 4正式发布 2004年7月13 日则发布了PHP 5 PHP 5则使用了第二代的Zend Engine PHP包含了许多新特色 像是强化的面向对象功能 引入PDO PHP Data Objects 一个存取数据库的延伸函 精品文档 9欢迎下载 数库 以及许多效能上的增强 PHP 4已经不会继续更新 以鼓励用户转移到PHP 5 2008年PHP 5成为了PHP唯一的有在开发的PHP版本 将来的PHP 5 3将会加入 Late static binding和一些其他的功能强化 PHP 6 的开发也正在进行中 主要的 改进有移除register globals magic quotes 和 Safe mode的功能 PHP最新稳定版本 5 4 30 2013 6 26 PHP最新发布的正式版本 5 5 14 2014 6 24 PHP最新测试版本 5 6 0 RC2 2014 6 03 2013年6月20日 PHP开发团队自豪地宣布推出PHP 5 5 0 此版本包含了大量的 新功能和bug修复 需要开发者特别注意的一点是不再支持 Windows XP 和 2003 系 统 2014年10月16日 PHP开发团队宣布PHP 5 6 2可用 四安全相关的错误是固定 在这个版本 包括修复cve 2014 3668 cve 2014 3669和cve 2014 3670 所有的 PHP 5 6鼓励用户升级到这个版本 3 其它特点 数据连接 PHP可以编译成具有与许多数据库相连接的函数 PHP与MySQL是绝佳 的组合 自己编写外围的函数取间接存取数据库 通过这样的途径当你更换使用的 数据库时 可以轻松的更改编码以适应这样的变化 PHPLIB就是最常用的可以提供 一般事务需要的一系列基库 php编程技术可扩展性 就像前面说的那样 PHP已经进入了一个高速发展的时 期 对于一个非程序员来说为PHP扩展附加功能可能会比较难 但是对于一个PHP程 序员来说并不困难 php编程技术面向对象 PHP提供了类和对象 基于web的编程工作非常需要面向 对象编程能力 PHP支持构造器 提取类等 php编程技术可伸缩性 传统上网页的交互作用是通过CGI来实现的 CGI程序的 伸缩性不很理想 因为它为每一个正在运行的CGI程序开一个独立进程 解决方法就 是将经常用来编写CGI程序的语言的解释器编译进你的web服务器 比如mod perl JSP PHP就可以以这种方式安装 虽然很少有人愿意这样以CGI方式安装它 内嵌的PHP可 以具有更高的可伸缩性 php编程技术更多特点 PHP的开发者们为了更适合web编程 开发了许多外围的 10 流行基库 这些库包含了更易用的层 利用PHP连接包括Oracle MS Access Mysql在内的大部分数据库 可以在苍蝇上画图 编写程序下载或者显示e mail 甚至可以完成网络相关的功能 最好的是 可以选择你的PHP安装版本需要哪 些功能 引用Nissan的Xterra的话来说就是PHP可以做到你想让它做到的一切而且无 所不能 2 3 B S 架构介绍 B S Browser Server 结构即浏览器和服务器结构 B S 网络结构模式是基于 Intranet 的需求而出现并发展的 Intranet 是应用 TCP 1P 协议建立的企事业单位 内部专用网络 它采用诸如 TCP IP HTTP SMTP 和 HTML 等 Internet 技术和标准 能为企事业单位内部交换信息提供服务 同时 它具有连接 Internet 的功能和防止 外界入侵的安全措施 另一方而 由于数据库具有强大的数据存储和管理能力 并 且能够动态地进行数据输入和输出 如果把数据库应用于 Internet 上 不仅可以实 现大量信息的网上发布 而且能够为广大用户提供动态的信息查询和数据处理服务 进而加强企事业单位内部部门之间 上级部门与下级部门之间 企事业单位员工之 间 企事业单位与客户之间以及企事业单位与企事业单位之间的信息交流 降低企 事业单位的日常工作成本 提高企事业单位的经济效益 B S 模式 是一种从传统的二层 C S 模式发展起来的新的网络结构模式 其本 质是三层及三层以上结构的 C S 模式 在 B S 模式中 客户端运行浏览器软件 浏 览器以超文本形式向 Web 服务器提出访问数据库的要求 Web 服务器接受客户端请 求后 将这个请求转化为 SQL 语法 并交给数据库服务器 数据库服务器得到请求 后 验证其合法性 并进行数据处理 然后将处理后的结果返回 Web 服务器 Web 服务器再一次将得到的所有结果进行转化 变成 HTML 文档形式 转发给客户端浏览 器以友好的 Web 页面形式显示出来 B S 模式最大的优势是灵活性 任何时间 任何地点 任何系统 只要可以使 用浏览器上网 就可以使用 B S 系统的终端 其主要特点如下 1 系统开发 维护和升级的经济性 对于大型的管理信息系统 软件开发 维护与升级的费用是非常高的 B S 模 式所具有的框架结构可以大大节省这些费用 同时 B S 模式对前台客户机的要求 并不高 可以避免盲目进行硬件升级造成的巨大浪费 精品文档 11欢迎下载 2 B S 模式提供了一致的用户界面 B S 模式的应用软件都是基于 Web 浏览器的 这些浏览器的界面都很相似 对 于无用户交互功能的页面 用户接触的界面都是一致的 从而可以降低软件的培训 费用 3 B S 模式具有很强的开放性 在 B S 模式下 外部的用户亦可通过通用的浏览器进行访问 4 B S 模式的结构易于扩展 由于 Web 的平台无关性 B S 模式结构可以任意扩展 可以从一台服务器 几 个用户的工作组级扩展成为拥有成千上万用户的大型系统 5 B S 模式具有更强的信息系统集成性 在 B S 模式下 集成了解决企事业单位各种问题的服务 而非零散的单一功能 的多系统模式 因而它能提供更高的工作效率 6 B S 模式提供灵活的信息交流和信息发布服务 B S 模式借助 Internet 强大的信息发布与信息传送能力可以有效地解决企业 高等学校内部的大量不规则的信息交流 2 4 Socket 技术 2 4 1 Sockets 介绍 2 4 1 1 Sockets 具体说明 使用 Sockets Socket 控件让你建立一个利用 TCP IP 和有关的协议与其他系统 进行通信的应用 还能够读和写通过它连接的其他机器 而不用担心实际的网络软 件的相关细节 Sockets 提供基于 TCP IP 协议的连接 除此以外还能很好的工作 在其他相关的协议 例如 Xerox Network System XNS Digital s DEC net or Novell s IPX SPX 家族 C Builder 提供你写网络服 务器或客户应用程序去读和写其他的系统 一个服务或客户程序通常专注于一个单 一的服务如超文本传送协议 HTTP 或文件传输协议 FTP 使用 Server sockets 一个应用程序可以提供这些服务中的一个去连接一个希望使用服务的客户程序 Client sockets 允许一个应用使用这些服务中的一个去连接提供这个服务的服务应 12 用 使用 sockets 去写应用程序 你必须理解下面这些知识 2 4 1 2 服务工具 当你需要写网络服务或客户应用时 Sockets 提供一种接合 对于许多服务 象 HTTP 或 FTP 第三方服务商提供这些服务已经相当有效 有些甚至随着操作系统 捆绑而来 以便不用你自己写 然而 当你想更多的控制服务的实现 如想让你的 应用程序与网络通信更加紧密 或当没有一个服务能提供你特殊需要的服务时 你 可能想建立你自己的服务或客户应用 例如 工作在分布式 data sets 时 你可能 想为数据库写一层与其他系统通信的应用 想使用 Sockets 实现一个服务 你必须 理解 1 服务协议 在你写一个网络服务或客户程序前 你必须明白你的应用将提供或使用什么 服务 你的网络应用必须支持许多服务的标准协议 如果你为标准的服务例如 HTTP FTP 写网络应用 或 even finger or time 你必须先理解与其他系统通信所使 用的协议 特殊服务细节你必须看提供的或使用的文档 如果你的应用程序提供一 个新的服务与其他系统通信 第一步是为这个服务的服务端和客户端设计通信协议 什么信息将发送 如何整理这些信息 如何对这些信息进行编码 经常的 你的网络服务端或客户端应用程序要提供一层在网络软件和一个应 用之间使用的服务 例如 一个 HTTP 服务站点在 INternet 与一个 Web 服务应用之 间为 HTTP 请求信息提供内容和应答 在你的网络应用 或客户应用 和网络软件之 间 Sockets 提供一个接口 该接口在你的应用程序与应用间使用 你可以拷贝第三 方服务商提供的标准 API 例如 ISAPI 或你可以设计和发布你自己的 API 2 理解服务和端口 许多标准服务都有关联的 指定的端口号 当 执行服务时 你可以为服务考虑 一个端口号 如果你实现一个标准服务 Windows socket objects 提供一些方法 让你为服务寻找端口号 如果提供一个新的服务 在基于 Windows 95 或 NT 机器上 你能够在文件 Services 中为你的服务指定一个相关联的端口号 设置 Services 文 件的更多信息请看微软 的 Windows Sockets 文档 精品文档 13欢迎下载 2 4 1 3 Socket 连接的类型 Socket 连接基本可以分成三个不同的类型 他们可以反映出如何开始连接和什 么是本地 Socket 连接 这三个不同的类型分别是 1 客户端连接 客户端连接是由本地系统的客户端 socket 和一个远程系统上的服务端 Socket 进行连接 客户端连接是由本地系统的客户端 Socket 开始 首先 由客户端 Socket 来描述它想连接到的服务端 Socket 然后由客户端 socket 查找服务端 socket 如果查找到了服务器 就发出连接要求 服务端 socket 有可能无法正确的 连接到客户端 Socket 服务器 sockets 会形成一个客户端申请连接的队列 在他们 能满足条件是自动进行连接 当服务端 socket 同意客户端的连接要求时 服务端 socket 就会向它准备连接的客户 socket 发送一个完整的描述 客户端就可以完成 连接 2 倾听连接 服务器 socket 不主动连接客户端 相反 他们形成了一个被动的 半连接 状 态 听客户的请求 服务器 sockets 形成一个连接请求队列 来储存它所接收到的 连接请求 此队列记录客户连接请求 就像它们已经连接了似的 当服务器 sockets 与客户连接请求相一致时 它就形成了一个新的 sockets 连接到客户端 所以这个监听连接可以保持打开以便允许其他客户端请求 3 服务端连接 当倾听 socket 同意客户端发出的连接请求时 服务器端 socket 形成了服务器 连接 当服务器同意连接时 要将一个完整的服务端 socket 描述发送给准备连接的 客户端 以完成连接 当客户端接收到这个描述时 连接已被确认 连接完成 一 旦连接到客户端的 Socket 完成 服务器连接就无法识别从客户端发来的连接 两端 具有相同的接收相同事件类型的能力 只有倾听 listening 连接是根本不同的 它只有一个单一的末端 2 4 1 4 sockets 描述 Sockets 可以让您的网络应用程序与其他系统通过网络通信 在网络连接中的 每个 socket 都可以被看作是一个终端点 它有指定地址 socket 连接的完整描述 您必须提供 socket 连接的两端的地址 在开始一个 14 socket 连接之前 必须完成所要获得的连接的完整的描述 可以从应用程序运行的 系统平台上获取一些信息 例如 您不需要描述客户端 socket 的本地 IP 地址 可 以从操作系统中得到这个信息 但是你必须提供你所依赖的 socket 类型的信息 客 户端 socket 必须描述他们想要连接到的服务器 侦听服务器 socket 必须描述它们 提供的服务器端口的响应 一个完整的 socket 连接的描述由 2 个部分组成 1 IP 地址 主机是一个这样的系统 它运行着含有 socket 的应用程序 你需要向 socket 来描述主机 这个描述需要给出主机的 IP 地址 该地址是一个字符串 有四个数字 byte 值 并在标准的 internet 点付内 例如 123 197 2 3 一个简单的系统可以支持多个 IP 地址 IP 地址往往很难记住 容易打错 另一 种方法是使用主机名 主机名就是 IP 地址的另一个名字 是常见的统一资源定位 URLs 它是一个字符串 包括域名和服务 例如 大部分内部网中的主机名对应的 IP 地址是 internetIP 地址 在 windows95 和 NT 机器上 如果你无法使用一个主机名 你可 以在 HOSTS 文件中给你的本地 IP 地址取一个新的名字 服务器 sockets 可以不指定主机 可以从系统中获取本地 IP 地址 如果本地系 统可以支持多个 IP 地址 则服务器 sockets 也会在所有的 IP 地址上侦听客户端请 求的 当服务器 sockets 同意一个连接请求时 由客户端提供一个远程的 IP 地址 客户端 sockets 必须通过提供主机名或地址来指定远程主机 从主机名和 IP 地址之间选择一个 很多应用程序使用主机名来指定系统 主机 名不容易忘而且便于检查排版是否错误 此外 服务器可以改变系统或与 IP 地址相 关联的特殊的主机名 使用主机名 可以让客户端通过主机名来查找需要的站点 即使主机更换了 IP 地址 如果不知道主机名 客户 socket 必须知道服务器系统所 使用的 IP 地址 通过提供 IP 地址来指定服务器会更快 当您提供主机名时 socket 要定位服务器系统 就要先搜索与这个主机名相关联的 IP 地址 2 端口号 在 socket 连接中 虽然通过 IP 地址提供的信息可以方便的找到另一端的系统 但是通常也需要指定那个系统的端口号 没有端口号 一个系统同时只能进行一个 单一的连接 端口号标识允许一个独立的系统连接到支持同时多个连接的主机 所 精品文档 15欢迎下载 以连接必须指定端口号 在网络应用程序中 端口号是服务器工具的一个数字代码 他们的作用是侦听 连接到他们自己固定的端口号 这样他们才能找到客户端 sockets 服务器 sockets 要为其服务的相关端口号进行监听 当他们被允许提供一个客户端 sockets 连接时 就会创建一个单独的 sockets 连接 使用不同的端口号 以此实现持续监控端口号 的相关服务 客户端 socket 使用专用的本地端口号 而不必使用其他 socket 来查找它们 通过指定他们想要连接的服务端的端口号 来查找服务器应用程序 通常是通过指 定要连接的服务来指定端口号 2 4 1 5 使用 socket 组件 有客户端 sockets 和服务器 sockets 两个组件 它们允许你连接到其他的机器 并允许你通过这个连接读写信息 与每个 sockets 控件相关联的是 windows socket 对象 它们是一个实用的终端 socket 连接 ssocket 控件使用 windows socket 对 象去封装 windows socket API 调用 所以不需要你的应用去关心怎么建立连接 也不需要去管理 socket 信息 1 使用客户端 sockets 在你自己的页面上添加一个客户端 socket 组件 TClientSocket 把你的应用 变成一个 TCP IP 客户 指定你想连接的服务器 socket 和你希望服务器提供的服务 通过描述你想得到的连接 使客户 socket 控件去完成连接服务 每个客户 socket 控件都使用独立的客户 windows socket 对象 TClientWinSocket 去应答连接中的客 户终端 使用客户 sockets A 指定想得到的服务 客户 socket 组件有一个数字 properties 通过它可以指定你要连接到的服务 器系统和端口 可以用主机名指定所需要的服务器系统 如果您不知道主机名 或 者您是关注服务器的查找速度 您可以通过使用 IP 地址属性来指定服务器系统的地 址 您必须指定一个 IP 地址或者主机名 如果您都指定了 客户 socket 控件会自 动使用主机名 除了服务器系统 您还必须指定客户 socket 将连接到的服务器系统 的端口 您可以使用 Port property 来指定服务端口号 也可以在 Service property 中使用服务名 如果您同时指定了端口号和服务的名称 客户 16 socket 控件会自动使用服务名 B 建立连接 当你在客户 socket 控件中设置完成了你想要连接的服务器的属性时 你就可以 通过 Open 的方法来进行连接 如果你希望你的应用程序在启动时能够自动连接 在 设计时 通过使用 Object Inspector 设置 Active property 为 true 来实现 C 取得关于连接的信息 当成功连接到服务器 socket 后 可以使用你的客户端 socket 控制相关的客户 的 windows socket object 获取有关连接的信息 使用 Socket property 访问客户 端窗口对象 一个 properties 让您确定在客户端和服务器的连接中使用的地址和 端口号 当使用一个 windows socket API 调用时 可以通过使用 SocketHandle property 去获得 socket 连接中使用的 handle 也可以用 Handle property 去访问 windows 能够获得 socket 连接的信息 AsyncStyles property 可以决定 windows handle 要接收信息类型 D 关闭连接 当通讯完成要将 socket 连接关闭时 可以调用 Close 方法来关闭连接 如果连 接由服务器端进行关闭 你会收到一个 ondisconnect 的事件通知 2 使用服务器 sockets 在你自己的页面添加一个服务端 Socket 组件使你的应用成为一个 TCP IP 的 服务器 你可以指定要服务器 sockets 提供的服务或当探查到客户端请求时使用哪 个端口 您可以使用服务器 socket 控件来监视和允许客户端连接请求 每个 socket 服务器控件都有一个单独的 windows socket Object TServerWinSocket 来 回答侦听到的连接 它使用一个服务器客户 winodws socket Object TServerClientWinSocket 来应答所有连接的的客户 socket A 指定端口 在你的服务器 socket 还不能监听客户请求时 你需要给你的监听服务指定一个 端口 可以通过 Port property 来指定端口 如果您的服务器应用程序提供了一个 标准服务 该服务将使用自定义相关端口 可以通过 Service property 指定固定的 端口号 使用 Service property 可以避免端口号的设置错误 如果同时指定了 精品文档 17欢迎下载 Port property 和 Service property 服务 socket 将自动使用服务名 B 监听客户请求 当你在 server socket 控件上设置了端口号 就可以通过调用 Open 方法来监听 连接 可以通过使用 Object Inspector 设置 Active 属性为 true 来设置应用程序 在启动时可以自动监听连接 C 连接到客户端 监听服务 socket 控件会自动接受监听到的连接请求 如果没有收到通知 OnClientConnetc 事件将发生 D 取得关于连接的信息 当你的服务器 socket 启动了监听连接 就可以通过与你服务器 socket 控件相 关联的服务器 windows socket object 来获取连接的信息 可以用 Socket property 来访问 server windows socket object windows socket object 的属性可以让你发现客户端 socket 连接的所有活动 通过 socket 服务器控件允许 连接 使用 Handle 属性来访问通过 socket 连接接收到的信息 所有活动的 连接的客户应用都是是通过服务
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 江苏省无锡市积余中学2025年初三年级8月摸底考试数学试题含解析
- 重庆市江津区2025年初三第五次适应性训练数学试题试卷含解析
- 重庆市重点中学2025年初三下学期期末仿真模拟生物试题含解析
- 互联网时代干部培训策略与实施
- 枣强中学高一上学期第三次月考生物试题
- 目标控制程序培训资料
- 2025租赁合同范本:测量仪器出租合同
- 2025笔记本电脑买卖合同
- 2025财经大学服务合同(教室租赁类)
- 2025年建筑项目基础施工合同范本
- 导线的连接精品课件
- 论提高行政效率的途径 开题报告
- 059.商业计划书和可行性报告精制食油厂年产万吨精制山茶油项目可行性研究报告
- 米度盾构导向系统
- [说明]心血管内科(心内科)_见习教案_6_动脉粥样硬化和冠状动脉粥样硬化性心脏病
- Q∕GDW 11257.3-2020 熔断器技术规范 第3部分:跌落式熔断器
- 汽车焊接夹具设计外文文献翻译
- 浓缩机的选择与计算
- 沪教版六年级下册单词表
- 红星美凯龙租赁合同
- 最新投标书密封条
评论
0/150
提交评论