基于CS模式的聊天系统的设计与实现毕业论文.doc

上传人:laozhun 文档编号:3938316 上传时间:2023-03-28 格式:DOC 页数:50 大小:849KB
返回 下载 相关 举报
基于CS模式的聊天系统的设计与实现毕业论文.doc_第1页
第1页 / 共50页
基于CS模式的聊天系统的设计与实现毕业论文.doc_第2页
第2页 / 共50页
基于CS模式的聊天系统的设计与实现毕业论文.doc_第3页
第3页 / 共50页
基于CS模式的聊天系统的设计与实现毕业论文.doc_第4页
第4页 / 共50页
基于CS模式的聊天系统的设计与实现毕业论文.doc_第5页
第5页 / 共50页
点击查看更多>>
资源描述

《基于CS模式的聊天系统的设计与实现毕业论文.doc》由会员分享,可在线阅读,更多相关《基于CS模式的聊天系统的设计与实现毕业论文.doc(50页珍藏版)》请在三一办公上搜索。

1、【摘 要】随着互联网的快速发展,网络聊天已经成为人们日常交流沟通的不可或缺的方式,很受人们的青睐。同时国内外也出现了很多非常不错的聊天工具,其中应用比较广泛的有腾讯QQ、微软skype等等。本系统使用JAVA语言并基于C/S模式进行开发。通过Socket建立服务器与客户端间的TCP连接,服务器读取、转发客户端发来信息,并刷新用户列表。用流程图的方式对系统使用中的注册、登录、发送信息等过程进行分析,用直接继承Thread类来实现多线程,用TCP/IP协议进行客户端与服务器端的通信,并使用网络编程的常用技术和一些软件工程的基本方法来完成聊天子系统和文件子系统的设计研发。在分析聊天系统的具体情况后,

2、本系统采用Eclipse为基本开发环境并使用java语言进行编写,首先可在短时间内建立系统应用原型,然后,对初始原型系统进行不断修正和改进,直到形成可行的系统。【关键词】 局域网 聊天 Socket JAVA Design and Implementation of Chat System based on C/S model【Abstract】 Along with the fast development of Internet, network chat has become indispensable to Peoples Daily communication, is very po

3、pular with the people . At the same time also appeared a lot of very good chat tools at home and abroad, is widely used in it have Tencent QQ、Skype and so on. This system is mainly based on the JAVA language and C/S mode of development. The server is established through the Socket, the server can re

4、ad and deliver the information which client side sends, and can renovate the users tabulation. With the LAN correspondence mechanism principle, through inheriting the Thread kind to establish the multithreading directly. In the development, it uses the elementary theory knowledge which the computer

5、network programme for example, TCP/IP agreement, Client/Server pattern, network programming design method and so on. In the network programming, it realizes reading and transmission of the information, that is,information flows realize the information exchange, introduce information flow analysis fo

6、r realizing a system, in which contains some basic software engineering methods. After analyzes these situations, this system takes Eclipse as the basic development environment and compiles in java language. first, it will establish the system application prototype in a short time. then, for the ini

7、tial prototype system, it needs constantly revised and improved, until a viable system.【Keywords】 LAN Chat Socket JAVA 目 录第一章 绪论11.1 课题来源11.2 国内外现状11.3 研究的目的及意义2第二章 需求分析32.1 系统定义32.2可行性分析32.3 功能需求32.4 数据需求52.5 用户界面要求5第三章 数据库设计83.1 数据库的概念83.2 数据库的选择83.3 数据库表的描述8第四章 技术介绍124.1 JAVA开发语言的选择124.2 MVC设计模式1

8、34.3 多线程简介154.4 SQL语言154.5 TCP/IP协议164.6 Socket的简介17第五章 系统实现195.1 总体设计195.2具体设计20第六章 结论43致 谢44参考文献45附录 数据库连接46 第一章 绪论1.1 课题来源根据当前网络的需求,网络聊天越来越受各种网民所青睐。因此开发网络聊天是相当有必要,通过聊天系统,不仅可以提高访问量,同时可以留着访客,更重要的是让访客透过聊天系统实时的互相交流。而本人也学习过JAVA语言,对网络编程也较有兴趣,为了更好的考验自己对JAVA语言的掌握程度,本人就决定以“基于C/S模式的聊天系统的设计与实现”为毕业设计,希望通过这一次

9、的能进一步提高本人的网络开发编程的能力。1.2 国内外现状Java是Sun公司开发的一种面向对象的新一代网络编程语言。它可以在各种不同的机器,操作系统的网络环境中进行开发,具有解释型语言(如Basic语言)和编译型语言(如C语言)的特性。Java摒弃了C+中各种弊大于利的功能和许多很少用到的功能,用Java开发的程序可以在网络上传输,并运行于任何装有Java虚拟机的客户机上,并且Java虚拟机可以在Sun公司的主页上免费下载安装。Java语言具有以下特点:简单性,面向对象,分布性,可靠性,安全性,体系结构中立,可移植性,解释执行,高性能,多线程和动态性。Java语言的特性使它可以最大程度的利用

10、网络。近几年以来,即时通信成为互联网和电信行业最激动人心的热点。2004年6月,行业的主导服务商腾讯在香港成功上市。7月,网易在北京推出了新版的即时通讯软件网易泡泡2004,新浪斥资近两亿元收购UC即时通讯技术平台,搜狐也推出即时通讯软件“搜Q”。作为电信运营商的中国电信和中国网通也动作频频。在国外,互联网行业引人瞩目的新星GOOGLE据传也推出了自己的即时通信,全球即时通信行业的老大ICQ也进入中国市场,即时通信行业发展迅速,2011年行业增长率达到50,已经形成了收入规模为10亿人民币的不可忽视的市场。目前国内面向个人的即时通信产品主要为腾讯QQ,微软MSN,网易泡泡,搜Q,新浪UC,IC

11、Q,雅虎通,IMU以及电信的VIM等;面向企业用户的即时通信产品比较多,但是除了腾讯,微软等少数运营商用户比较多以外,其他的推出时间很短,用户极少,市场有待开发。 现在中国即时通信市场的竞争格局中,腾讯一支独秀,占据80以上的市场份额。虽然目前绝大多数互联网用户都同时为即时通信用户但是随着互联网尤其是宽带用户数的迅速增长,未来若干年内,中国即时通信用户数量还会猛增。即时通信的安全性和互连互通成为即时通信产品发展的主要制约因素。1.3 研究的目的及意义现在,企业、机关、学校纷纷建立起自己的局域网。在局域网,虽然可以通过文件共享的方式进行通讯,但单单使用这种方式,是非常不方便的。于是就想到做一个在

12、局域网里的多功能聊天软件,在局域网里,我们可以通过它,实现在局域网里方便的联络,进行文件传输,消息的发布,音频聊天,视频聊天等。在学校建立的校园网里,这软件可以方便同学之间、教师之间、师生之间的相互联络,这样,不用上Internet,还可以节省资源,在学校这个大环境里,可以方便同学之间联系,联络感情,促进同学之间的友谊,学生可以通过它来与不同寝室的同学,或教师讨论问题。并能最大限度地利用现有的网络资源,极大地提高工作效率。信息交流是互联网提供的主要内容,网络通信系统有多种实现方 式,类似ICQ属于一种点对点的聊天系统;还有一种是基于Socket的集中式聊天系统,这种聊天系统需要登录统一的聊天服

13、务器。考虑到要可以在局域网中应用,本系统使用的是第二种方法,经过设置,在局域网或internet上都可以使用。 第二章 需求分析2.1 系统定义聊天系统的出现在一定程度上满足了人们对网络即时通信的要求,那么本系统作为一个简单的应用系统,为人们使用网络通信和对即时通信有需求的人提供服务。另外采用C/S模式的原因是C/S模式的优点是能充分发挥客户端PC的处理能力,很多工作可以在客户端处理后再提交给服务器。对应的优点就是客户端响应速度快。2.2可行性分析1)经济可行性:本系统需要一个MySQL数据库,由于使用人数比较少,安装一个免费的MySQL 数据库完全满足需要,所以成本就不用考虑了。 2)操作可

14、行性:只要一台以上计算机连接在同一个局域网内,本系统就可以安装使用,所以操作上完全不存在问题。3)技术可行性:本系统是基于C/S模式,使用java语言实现的。开发这个系统需要开发者对socket编程和java Swing这两方面的技术比较熟。由于本人长期从事于java语言编程,所以技术方面是可行的。 综上所述,此聊天系统的设计是可行的。2.3 功能需求 本系统要实现的功能如下:1)注册服务器收到用户的注册请求,便开始接受客户传递的信息,诸如客户的呢称,性别,籍贯,个人资料等,接受完毕后,便通过JDBC-ODBC与后台数据库连接,然后向数据库添加记录,如果成功,便向客户返回其号码。客户收到服务器

15、返回的信息后,便打开主登陆窗口。2)登陆 在客户端,用户输入其号码和密码,然后建立与服务器的连接,告诉服务器我要登录,服务器收到后,开始通过JDBC-ODBC读取数据库,然后与用户输入的信息比较,如果成功,便打开主程序窗口。然后客户向服务器请求读取好友名单,服务器收到该请求,开始读取数据库中的表,得到好友的号码后,再在icq表中读取好友资料,然后向客户端发送这些信息,客户收到后就在主窗口显示好友,并且建立几个矢量(Vector)用以存储好友的呢称,号码。3)私聊 私聊就是两个聊天。客户端首先发送消息到服务器端,服务器端根据发送人信息和接收者信息来转发。例如服务器接收到一个A发给B的消息,先判断

16、B是否已经在线,如果在线就将信息发送过去。B接收到A发来的信息,如果是未建立对话窗口,就询问是否建立对话,否则就丢弃信息。4)群聊 群聊,就是多人一起聊天。过程与私聊差不多。唯一的不同就是服务器会将信息转发给指定群的所有成员。5)创建分组 用户注册以后默认的好友分组只有一个。用户在执行添加分组操作以后,客户端分将一个这个动作的信息发送给服务器端(主要是FromClientlisten)。服务器端的fromClientListen接收到这个请求,会进行数据库操作,将要添加的分组信息插入到数据库中。如果成功,则返回这个分组的信息给客户端,否则返回错误提示信息。6)创建群 用户注册以后群个数为0。用

17、户在执行添加群操作以后,客户端分将一个这个动作的信息发送给服务器端(主要是FromClientlisten)。服务器端的fromClientListen接收到这个请求,会进行数据库操作,将要添加的群信息插入到数据库中。如果成功,则返回这个群的信息给客户端,否则返回错误提示信息。7)查找好友并加为好友 输入要查找的用户ID号,客户端发送一个查询信息给服务器端,如果找到就返回用户服务信息。打开一个用户信息显示界面,该界面会提供一个“添加为好友”按钮,点击后可将此人加为好友。如果未找到,弹出一个信息提示框。8)查找群并加入群 输入要查找的群ID号,客户端发送一个查询信息给服务器端,如果找到就返回用户

18、服务信息。打开一个群信息显示界面,该界面会提供一个“加入此群”按钮,点击后可将此人加群。如果未找到,则弹出一个信息提示框。9)文件共享 在启动文件传输服务器的共享文件功能之前,要设置它的IP号和端口,如果设置不好。好友将无法下看到这些共享的文件。还有一个重要的步骤就是添加共享文件或目录。最后启动文件共享。10)下载文件 使用文件传输的客户端要正确配置好服务器的IP和端口号,以及下载好的文件的存放目录。如果其中之一配置不好,文件下载将会失败。设置好以后,点击“连接”按钮,如果配置正确,这时将会看到服务器共享的文件。目前不能支持文件夹下载,当看到一个文件夹以后,可以双击该文件夹并查看文件夹里面的文

19、件。2.4 数据需求用户个人信息:用户个人信息应包含ID、账号、密码等。群 信 息:群信息应包含群ID、用户ID、创建人、群名字等。好 友 信 息:好友信息应包含ID、用户ID、分组名等。2.5 用户界面要求一致性原则坚持以用户体验为中心设计原则,界面直观、简洁,操作方便快捷,用户接触软件后对界面上对应的功能一目了然、不需要太多培训就可以方便使用本应用系统。字体保持字体及颜色一致,避免一套主题出现多个字体;不可修改的字段,统一用灰色文字显示。对齐保持页面内元素对齐方式的一致,如无特殊情况应避免同一页面出现多种数据对齐方式。表单录入在包含必填的页面中,在必填项旁边给出醒目标识(*);各类型数据输

20、入需限制文本类型,并做格式校验如电话号码输入只允许输入数字、邮箱地址需要包含“”等,在用户输入有误时给出明确提示。鼠标手势可点击的按钮、链接需要切换鼠标手势至手型;保持功能及内容描述一致避免同一功能描述使用多个词汇,如编辑和修改,新增和增加,删除和清除混用等。建议在项目开发阶段建立一个产品词典,包括产品中常用术语及描述,设计或开发人员严格按照产品词典中的术语词汇来展示文字信息。准确性原则使用一致的标记、标准缩写和颜色,显示信息的含义应该非常明确,用户不必再参考其它信息源。显示有意义的出错信息,而不是单纯的程序错误代码。避免使用文本输入框来放置不可编辑的文字内容,不要文本将输入框当成标签使用。使

21、用缩进和文本来辅助理解。使用用户语言词汇,而不是单纯的专业计算机术语。高效地使用显示器的显示空间,但要避免空间过于拥挤。保持语言的一致性,如“确定”对应“取消”,“是”对应“否”。布局合理化原则在进行UI设计时需要充分考虑布局的合理化问题,遵循用户从上而下,自左向右浏览、操作习惯,避免常用业务功能按键排列过于分散,以造成用户鼠标移动距离过长的弊端。多做“减法”运算,将不常用的功能区块隐藏,以保持界面的简洁,使用户专注于主要业务操作流程,有利于提高软件的易用性及可用性。菜单保持菜单简洁性及分类的准确性,避免菜单深度超过3层。菜单中功能是需要打开一个新页面来完成的,需要在菜单名字后面加上“”。按钮

22、确认操作按钮放置左边,取消或关闭按钮放置于右边。功能未完成功能必须隐藏处理,不要置于页面内容中,以免引起误会。排版所有文字内容排版避免贴边显示(页面边缘),尽量保持10-20像素的间距并在垂直方向上居中对齐;各控件元素间也保持至少10像素以上的间距,并确保控件元素不紧贴于页面边沿。表格数据列表字符型数据保持左对齐,数值型右对齐(方便阅读对比),并根据字段要求,统一显示小数位位数。滚动条页面布局设计时应避免出现横向滚动条。页面导航(面包屑导航)在页面显眼位置应该出现面包屑导航栏,让用户知道当前所在页面的位置,并明确导航结构,如:首页新闻中心服务平台正式发布,其中带下划线部分为可点击链接。信息提示

23、窗口信息提示窗口应位于当前页面的居中位置,并适当弱化背景层以减少信息干扰,让用户把注意力集中在当前的信息提示窗口。一般做法是在信息提示窗口的背面加一个半透明颜色填充的遮罩层。系统操作合理性原则尽量确保用户在不使用鼠标(只使用键盘)的情况下也可以流畅地完成一些常用的业务操作,各控件间可以通过Tab键进行切换,并将可编辑的文本全选处理。查询检索类页面,在查询条件输入框内按回车应该自动触发查询操作。在进行一些不可逆或者删除操作时应该有信息提示用户,并让用户确认是否继续操作,必要时应该把操作造成的后果也告诉用户。信息提示窗口的“确认”及“取消”按钮需要分别映射键盘按键“Enter”和“ESC”。避免使

24、用鼠标双击动作,不仅会增加用户操作难度,还可能会引过用户误会,认为功能点击无效。表单录入页面,需要把输入焦点定位到第一个输入项。用户通过Tab键可以在输入框或操作按钮间切换,并注意Tab的操作应该遵循从左向右、从上而下的顺序。系统响应时间原则系统响应时间应该适中,响应时间过长,用户就会感到不安和沮丧,而响应时间过快也会影响到用户的操作节奏,并可能导致错误。因此在系统响应时间上坚持如下原则:2-5秒窗口显示处理信息提示,避免用户误认为没响应而重复操作;5秒以上显示处理窗口,或显示进度条;一个长时间的处理完成时应给予完成警告信息 第三章 数据库设计 3.1 数据库的概念当人们从不同的角度来描述这一

25、概念时就有不同的定义。例如,称数据库是一个“记录保存系统”(该定义强调了数据库是若干记录的集合)。又如称数据库是“人们为解决特定的任务,以一定的组织方式存储在一起的相关的数据的集合”(该定义侧重于数据的组织)。更有甚者称数据库是“一个数据仓库”。当然,这种说法虽然形象,但并不严谨。严格地说,数据库是“按照数据结构来组织、存储和管理数据的仓库”。本系统将使用一直以来使用都最为广泛的关系模型作为数据库的建设依据。在用户的观点下,关系模型中数据的逻辑结构是一张二维表,一个关系对应通常说的一张表,并且关系的每一个分量必须是一个不可分的数据项。而一个基于关系模型的数据库则是由若干个二维表组成的。对于一些

26、大型和中型的数据库,如Oracle,SQL Server 2000/7.0等都属于关系型数据库,同时它们所带有的数据库管理工具是其他小型数据库所没有的,而同时这些工具又为管理员的工作节省了很多的时间和财力。3.2 数据库的选择本系统使用MySQL 5.6实现关系型数据库。MySQL是一个真正的多用户、多线程SQL数据库服务器,它有较好的数据承载能力,一个环境有超过40个数据库,包含10,000个表,其中500多个表超过7百万行,总数据大约有100GB的数据库系统可以很好的被MySQL所支持,而MySQL本身不会像Oracle那样对系统及硬盘空间有很高的要求。这也是本系统选用MySQL作为后台数

27、据库系统的一个重要原因之一。3.3 数据库表的描述概念模型是对信息世界建模,其表示方法有很多,其中最为常用的是实体联系模型,即ER模型,它是用ER图来描述现实世界的概念模型。ER图中用矩形表示实体;用椭圆表示属性;用菱形表示联系。为了清楚简便的描述出实体与其属性之间的关系,完整的包含系统功能结构图如下:3.3.1 用户信息表(userinfo)该表主要完成用户基本信息的录入,在此表中定义了8个字段(包括id、账号、密码、昵称、性别、邮箱等)个字段来进行对用户的信息存储,具体如下:标识符数据类型长度非空描述主键外键说明idINT11YY自增accountVARCHAR30Y账号passwordV

28、ARCHAR30Y密码nicknameVARCHAR30Y昵称sexINTEGER10性别用0,1表示,1男,0女emailVARCHAR30Y邮箱createtimedatetime自动创建日期headVARCHAR30头像3.3.2 消息表(mess)该表主要用于用户进行聊天时相关信息的录入,包括id、发信人、收信人、信息内容等4个字段,具体如下:标识符数据类型长度非空描述主键外键说明idINT11YY自增acc-fromVARCHAR30Y发信人Acc-toVARCHAR30Y收信人contentVARCHAR30Y信息内容3.3.3 分组表(user-ongroup)标识符数据类型长度

29、非空描述主键外键说明idINT11YY自增useridINT11Y拥有者nameVARCHAR30Y分组名3.3.4 公共群表(public-group)标识符数据类型长度非空描述主键外键说明idINT11YY自增useridINT11Y创建人nameVARCHAR30Y群名称signVARCHAR30Y群内消息3.3.4 用户与群的中间表(user-group)标识符数据类型长度非空描述主键外键说明idINT11YY自增groupidINT11Y加入的群useridINT11Y加入的用户3.3.4 用户与分组的中间表(user-ongroup)标识符数据类型长度非空描述主键外键说明idINT

30、11YY自增groupidINT11Y加入的分组useridINT11Y加入的用户3.3.5 历史信息表(historymess)标识符数据类型长度非空描述主键外键说明idINT11YY自增acc-fromVARCHAR30Y发信人Acc-toVARCHAR30Y收信人contentVARCHAR30Y历史信息内容3.3.6 离线信息表(offlinemess)标识符数据类型长度非空描述主键外键说明idINT11YY自增acc-fromVARCHAR30Y发信人Acc-toVARCHAR30Y收信人contentVARCHAR30Y离线信息内容 第四章 技术介绍4.1 JAVA开发语言的选择

31、现在,市场上可以选购的应用开发产品很多,流行的也有数十种。目前在我国市场上最为流行,使用最多,最为先进的可用作企业级开发语言的产品有: SUN公司的JavaMicrosoft公司的Visual BasicMicrosoft公司的Visual CBorland公司的DelphiPowersoft公司的PowerBulider在目前市场上这些众多的程序开发工具中,有些强调语言的弹性与执行效率;有些偏重于可视化程序开发工具所带来的便利性与效率的提高,各有各的优点和特色,也满足了不同用户的不同需求。我的系统选择Java语言开发,其原因基于以下几点:Java是一种简单的、面向对象的、分布式的、健壮的、安

32、全的、结构中立的、可移植的、性能很优异的、多线程的、动态的语言。 1)简单 Java的风格类似于C+,并且摒弃了C+中容易引发程序错误的地方,如指针和内存管理。 此外Java提供了丰富的类库。 2)面向对象 面向对象可以说是Java最重要的特性。Java语言的设计完全是面向对象的。Java支持静态和动态风格的代码继承及重用。 3)三、分布式 Java包括一个支持HTTP和FTP等基于TCP/IP协议的子库。因此,Java应用程序可凭借URL打开并访问网络上的对象,其访问方式与访问本地文件系统几乎完全相同。4)健壮 Java致力于检查程序在编译和运行时的错误。Java自己操纵内存减少了内存出错的

33、可能性。Java提供Null指针检测数组边界、检测异常出口、字节代码校验。 5)安全 Java的安全性可从两个方面得到保证。一方面,在Java语言里,像指针和释放内存等C+功能被删除,避免了非法内存操作。另一方面,当Java用来创建浏览器时,语言功能和浏览器本身提供的功能结合起来,使它更安全。6)结构中立 为了建立Java作为网络的一个整体,Java将它的程序编译成一种结构中立的中间文件格式。只要有Java运行系统的机器都能执行这种中间代码。Java源程序被编译成一种高层次的与机器无关的byte-code格式语言,这种语言被设计在虚拟机上运行,由机器相关的运行调试器实现执行。 7)可移植的 J

34、ava的可移植性一直是Java程序设计师们的精神指标,也是Java之所以能够受到程序设计师们喜爱的原因之一,最大的功臣就是JVM的技术。JAVA编译器产生的目标代码(J-Code) 是针对一种并不存在的CPU-JAVA虚拟机(JAVA Virtual Machine),而不是某一实际的CPU。JAVA虚拟机能掩盖不同CPU之间的差别,使J-Code能运行于任何具有JAVA虚拟机的机器上。 8)高性能 Java可以在运行时直接将目标代码翻译成机器指令。Sun用直接解释器一秒钟内可调用300,000个过程。翻译目标代码的速度与C/C+的性能没什么区别。 9)多线程 Java支持多线程,多线程功能使

35、得在一个程序里可同时执行多个小任务。线程,有时也称小进程,是一个大进程里分出来的小的独立的进程。10)动态 Java的动态特性是其面向对象设计方法的发展。它允许程序动态地装入运行过程中所需要的类,这是C+语言进行面向对象程序设计所无法实现的。Java编译器不是将对实例变量和成员函数的引用编译为数值引用,而是将符号引用信息在字节码中保存下传递给解释器,再由解释器在完成动态连接类后,将符号引用信息转换为数值偏移量。4.2 MVC设计模式MVC是Model-View-Controller的简称,它是一种设计模式,它把应用程序分成三个核心模块:模型、视图、控制器,它们各自处理自己的任务。视图是用户看到

36、并与之交互的界面,作用包括向用户显示相关的数据、接受用户的输入、向模型查询业务状态、接受模型发出的数据更新事件,从而对用户界面进行同步更新。它从模型那里获得数据并指定这些数据如何表现。当模型变化时,将负责维持数据表现的一致性。并同时将用户要求告知控制器(Controller)。 模型表示业务数据和业务逻辑,是应用程序的主体部分。一个模型能为多个视图提供数据,因此提高了代码的可重用性。控制器接受用户的输入并调用模型和视图去完成用户的需求。当Web用户单击Web页面中的递交按钮来发送HTML表单时,控制器本身不输出任何东西和做任何处理。控制器接收请求并决定调用哪个模型组件去处理请求,然后决定调用哪

37、个视图来显示模型处理返回的数据。它负责对来自视的用户要求进行解释,并把这些要求映射成相应的行为,这些行为由模型负责实现。在独立运行的GUI客户端,用户要求可能是一些鼠标单击或是菜单选择操作。在一个Web应用程序中,它们的表现形式可能是一些来自客户端的GET或POST的HTTP请求。模型所实现的行为包括处理业务和修改模型的状态。根据用户要求和模型行为的结果,控制器选择一个视作为对用户请求的应答。通常一组相关功能集对应一个控制器MVC的优点表现在如下几个方面:1)首先,最重要的一点是多个视图能共享一个模型。同一个模型可以被不同的视图重用,大大提高了代码的可重用性。 2)由于MVC的三个模块相互独立

38、,改变其中一个不会影响其他两个,所以依据这种设计思想能构造良好的松偶合的构件。 3)此外,控制器提高了应用程序的灵活性和可配置性。控制器可以用来 联接不同的模型和视图去完成用户的需求,这样控制器可以为构造应用程序提供强有力的手段。 MVC处理过程的结构图:4.3 多线程简介 线程是指进程中单一顺序的控制流,又称为轻量级进程。线程共享相同的地址。空间并共同构成一个大的进程。线程间的通讯是非常简单而有效的, 上下切换非常快。线程使得在一个应用程序中, 程序的编写更加自由和丰富。多线程是相对于单线程而言的, 是指在一个程序中可以定义多个线程并同时运行它们, 每个线程可以执行不同的任务。多线程不同于多

39、任务, 多任务是指操作系统而言, 而多线程是针对一个程序而言, 也就是一个程序内部可以同时执行的线程有多个, 而每个线程可以完成不同的任务。4.4 SQL语言SQL是一个功能强大的数据库语言。SQL通常使用于数据库的通讯。SQL是关系数据库管理系统的标准语言。SQL语句通常用于完成一些数据库的操作任务,比如在数据库中更新数据,或者从数据库中检索数据。使用SQL的常见关系数据库管理系统有:Oracle、 Microsoft SQL Server、 access等等。虽然绝大多数的数据库系统使用SQL,但是它们同样有它们自立另外的专有扩展功能用于它们的系统。但是,标准的SQL命令,比如select

40、、 insert、 update、 delete、 create和 drop常常被用于完成绝大多数数据库的操作。SQL语言有着非常突出的优点,主要是:非过程化语言,统一的语言,是所有关系数据库的公共语言。非过程化语言:SQL是一个非过程化的语言,因为它一次处理一个记录,对数据提供自动导航。SQL允许用户在高层的数据结构上工作,而不对单个记录进行操作,可操作记录集,所有SQL 语句接受集合作为输入,返回集合作为输出。SQL的集合特性允许一条SQL语句的结果作为另一条SQL语句的输入。统一的语言:SQL可用于所有用户的db活动模型,包括系统管理员、数据库管理员、 应用程序员、决策支持系统人员及许多

41、其它类型的终端用户。SQL为许多任务提供了命令,其中包括:查询数据, 在表中插入、修改和删除记录,建立、修改和删除数据对象, 控制对数据和数据对象的存取, 保证数据库一致性和完整性。以前的数据库管理系统为上述各类操作提供单独的语言,而SQL 将全部任务统一在一种语言中。SQL功能强大,是一种完备的数据处理语言,不仅用于数据库查询,而且用于数据库中的数据修改和更新,概括起来,它可以分成以下几组:dml(data manipulation language,数据操作语言):用于检索或者修改数据; ddl(data definition language,数据定义语言): 用于定义数据的结构,比如

42、创建、修改或者删除数据库对象; dcl(data control language,数据控制语言):用于定义数据库用户的权限。dml组可以细分为以下的几个语句:select:用于检索数据;insert:用于增加数据到数据库;update:用于从数据库中修改现存的数据;delete:用于从数据库中删除数据。ddl语句可以用于创建用户和重建数据库对象。4.5 TCP/IP协议(1)IP、TCP协议的特点:TCP/IP(Transmission Control Protocol/Internet Protocol)是传输控制协议/网际协议的缩写, TCP/IP是当今网络互联的核心协议。TCP/IP协

43、议的体系结构共有四个层次,即应用层、传输层、网络互联层和网络接口层。IP协议的作用:第一,它是网络层的协议,提供互联网上数据传输的统一格式。第二,提供不可靠的无连接的服务。第三,定义了互联网上的传输数据的基本单元,提供了供路由选择的信息,没有差错校验和处理的机制。TCP协议的功能:差错控制可靠性、面向连接、分段(Segment)、端口号。TCP是传输控制协议,是面向连接的提供了一种可靠的传输服务,它用三次握手和滑动窗口机制来保证传输的可靠性,及进行流量控制。 TCP/IP协议具有以下特点:协议标准具有开放性,其独立于特定的计算机硬件及操作系统,可以免费使用。统一分配网络地址,使得每个TCP/I

44、P 设备在网络中都具有唯一的IP地址。实现了高层协议的标准化,能为用户提供多种可靠的服务。(2)TCP/IP协议进行传输数据传输的过程:应用程序为了传输数据会调用TCP,将数据和对应的参数传给TCP,将TCP 数据包封装在IP包内,通过网络送给目的TCP。接收方TCP在接收到数据后通知上层应用程序,TCP将保证接收数据的正确性。在实现TCP的主机上,TCP可以被看成是一个模块,和文件系统区别不大,TCP 也可以调用一些操作系统的功能,TCP不直接和网络打交道,控制网络的任务由专门的设备驱动模块完成。TCP只是调用IP接口,向TCP提供所有TCP需要的服务。(3)端口号:有的时候,一个ip地址不能完整的标识一台服务器,这是因为一台物理性的计算机同时运行着多个应用程序,这就需要我们来区别同一台机子上的不同的服务,所以就在传输层和应用层上设置接口,就是 端口。端口实际是一个16位长的 地址,他的范围是065535之间,其中01023是熟知端口,主要是给提供服务的应用程序使用,这些端口是所有应用进程都

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号