VC012基于TCPIP网络聊天程序的设计_第1页
VC012基于TCPIP网络聊天程序的设计_第2页
VC012基于TCPIP网络聊天程序的设计_第3页
VC012基于TCPIP网络聊天程序的设计_第4页
VC012基于TCPIP网络聊天程序的设计_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

-.z目录第1章概论§1.1课题的来源及意义……………1§1.2网上寻呼的软件的现况………1§1.3面向对象方法与设计简介……2§1.4本章小结…………3第2章网络通讯程序的设计原理和过程§2.1TCP/IP协议……………………4§2.2客户/效劳器程序的设计……6第3章软件功能与界面需求……………9第4章概要设计和详细设计§4.1总体设计概述……………………10§4.2效劳器数据库的设计…………11§4.3类设计的总体构造……………13§4.4效劳器端的常量定义…………15§4.5客户端的常量定义……………17§4.6效劳器端的底层通讯类的设计………………21§4.7客户端的底层通讯类的设计…………………23§4.8客户/效劳器之间的通讯的数据类的设计………………25§4.9发送数据确实认消息的编码方案…………30§4.10效劳器端的分配用户**的策略…………31§4.11效劳器的应用程序类CServerApp的设计……………31§4.12客户端的应用程序类CClientApp的设计……………33§4.13效劳器端检查用户是否仍然在线的算法………………34§4.14效劳器端处理用户请求的算法……………35§4.15客户端处理效劳器发送来数据的算法…40第5章全文总结与工作展望§5.1全文总结…………42§5.2工作展望…………42第6章附录§6.1查错日志…………43§6.2设计中遇到的问题……………46参考文献……………………47第1章概论§1.1课题的来源及意义在网络无所不在的今天,在Internet上,有icq,oicq,ticq等网上寻呼软件,极大程度上方便了处于在世界各地的友人之间的相互联系,也使世界好象一下子缩小了,不管你在哪里,只要你上了网,翻开这些软件,就可以给你的朋友发信息,不管对方是否也同时在线,只要知道他有。现在,企业、机关、学校都建立起了自己的局域网,在局域网,虽然可以通过文件共享的方式进展通讯,但单单使用这种方式,是非常不方便的,首先,在局域网里的网上邻居里,只能看到机器名,不清楚对方是谁,也不知道对方机器里有什么资源可以共享,而且,当局域网的机器很多时,这种方式更加麻烦。于是,就想到做一个在局域网里的icq,在局域网里,我们可以通过它,实现在局域网里方便的联络,进展文件传输,消息的发布,自己共享内容的简介等。在学校建立起校园网里,这软件可以起到方便同学之间,教师之间,师生之间的相互联络,这样,不用上Internet,可以节省资源,在学校这个大环境里,就可以同学之间联系,联络感情,促进同学之间的友谊,学生可以通过它来与不同寝室的同学,教师讨论问题。并能最大限度地利用现有的网络资源,极大地提高工作效率。为了适应校园网的建立,实现校园网内进展消息发布,学生交流,师生交流,网上作业等功能。§1.2网上寻呼的软件的现况网上寻呼软件在国外的有icq等,在国内的主要有腾讯的Oicq,还有Ticq,OmO和一些在网页上的即时通讯工具,像Chinaren上的WebMaster等等,都做得即美观,且功能强大,Oicq现在拥有非常大的用户群。在局域网内的网上寻呼,就我知道的有**硕思软件公司的硕思即时通,能够较好的完成局域网上寻呼,聊天,发文件,收等功能。现在也有很多,在局域网上不使用效劳器的通讯软件,这种软件小巧且方便,也能解决一局部问题。但是有效劳器的通讯软件,有着不可比较的优势:可以发送离线消息,不管用户当时是否在线,下次上线时,就可以看到这条消息了。可以保存用户的个人信息或介绍,供人查看。而且,那种通讯软件,是以机器为通讯单元的,而这种寻呼软件是以人为通讯单元。总之,这种软件在局域网上,还是有很大的用途的,为局域网上通讯,带来极大的方便。虽然说,现在这个软件已经有公司把它开发出来了,我再做也不一定有新意,也未必可以做得更好,但作为毕业设计,也算是对我能力的一个考验和这四个我学习知识的一个检查。而且,我校现在也正在筹备建立校园网,如果这个软件做得比较成功的话,能为校园网上的通讯带来一定的方便,我就很满足了。§1.3面向对象方法与设计简介传统的软件工程方法有生命周期方法和快速原型法。面向对象方法学是一种全新的软件工程方法,其出发点和根本原则是尽可能模拟人类习惯的思维方式,把构成客观世界的实体抽象为对象。概括地说,面向对象方法学有四个要点:1.认为客观世界是由各种对象组成的,复杂的对象可以由比较简单的对象以*种方式组合而成;2.把所有对象都划分成各种对象类,每个对象类可以定义一组数据和方法;3.按照子类和父类的关系,把假设干对象类组成一个层次构造的系统;4.对象彼此之间仅能通过传递消息互相联系。用面向对象方法学开发的软件有以下优点:1.与人类习惯的思维方法一致;2.稳定性好;3.可重用性好;4.可维护性好。§1.4本章小结随着计算机应用技术的日益普及,网络也普及到我们生活的每个角落,很好的利用这人资源,将为我们的工作和学习,带来极大的方便和提高工作效率,所以,开发一个局域网里的C/S通讯软件,是十分必要。由于采用面向对象方法开发软件具有明显的优点,本系统将采用面向对象方法进展开发。由于采用面向对象的系统模型可以使整个软件系统的构造变得更加灵活,本系统的构造模型将采用面向对象的系统模型,采用VC++6.0这个可视化开发工具进展编码。第2章网络通讯程序的设计原理和过程对网络通讯程序的设计的原理和过程的透彻理解,是网络通讯程序的前提。本章将简要地介绍一下有关网络通讯程序设计的根本知识。§2.1TCP/IP协议TCP/IP是国际互联网所采用进展网际互连的通信协议。实际所称的TCP/IP协议包括了在国际互联网上应用的一组协议,互联网协议族是此协议族的另一个名字。这个协议族包括几种工作在不同层次上的网络协议,IP互连协议〔InternetProtocol〕,负责主机之间的传输数据。TCP传输控制协议〔TransmissionControlProtocol〕,负责在应用程序之间传递数据。UDP用户数据报协议〔UserDatagramProtocol〕,提供给用户进程的无连接协议,也负责在应用程序之间无连接传递数据,但不执行正确性检查。ICMP互连网控制报文协议〔InternetControlMessageProtocol〕,处理主机间的过失和传送控制。ARP地址解析协议〔AddressResolutionProtocol〕,负责将网络层地址转换成链路层地址。RARP反向地址解析协议〔ReverseAddressResolutionProtocol〕,负责将链路层地址转换成网络层地址。TCP/IP协议的核心是传输层协议〔TCP、UDP〕、网络层协议〔IP〕和物理接口层,这三层通常在操作系统的内核中实现。TCP/IP网络环境下的应用程序设计是通过网络系统编程界面Socket实现的,Socket提供给用程序与系统内核之间的网络编程接口。协议可以是可靠的可以是不可靠的。可靠的协议意味着当数据通过协议传递时,协议保证数据正确传输。可靠传输包括几个特征。首先,为了确保数据正确传送,协议在通信应用程序之间互相交换确认信息。也就是说,程序每次发送-个报文时,都期望对方发送一个相当于说:“我得到这个报文〞确实认信息。如果发送程序没有收到这样一个确认信息,程序将自动重新发送此报文,直到得到应答信息为止。其次,为了确保传输的数据有效,可靠协议在每次传输时,都包含一个或更多的校验和〔CRC〕。接收计算机重新计算校验和,与收到的校验和进展比较。如果不匹配,就说明在传输过程中发生了错误。传输控制协议TCP是一个使用校验和、确认信息以及其它可靠数据传输技术的可靠协议。相比之下,不可靠协议不能确保数据正确传输。协议试图传输数据,但不保证成功。而且,不可靠协议在传输失败后,并不通知发送方应用程序。可将不可靠数据传输比作没有返回地址的信件。如果发送地址是锗误的,由于邮递系统不能将信退回给你,所以你就不知道信件有没有送到。即使发送地址是正确的,也不能保证邮递系统不丧失你的信件。TCP/IP协议组中存在的两个根本数据效劳是:字节流效劳和数据报效劳,使用字节流的协议将信息看作一串字节流进展传输。协议不管要求发送或接收数据的长度和传送数目,只是将数据看作一个简单的字节串流。使用数据报的协议将信息视作一个独立单元进展传输。协议单独发送每个数据报——数据报之间不相互依赖。例如,假设你使用字节流协议发送5个数据段〔每个有10字节〕和一个包含50字节的数据段〔总共100字节〕。连接的接收方可以按每次20字节读数据〔要读5次〕。传输控制协议是字节流协议。字节流协议不关心每个数据段的长度。如果应用程序使用字节流协议发送数据,则协议能够保证连接的另一端按照发送的顺序接收数据。相比之下,传输到同一目的地的多个数据报可能不会按发送顺序到达。如果接收方应用程序要求数据顺序一致,应用程序必须在数据到达后,校对这些数据。用户数据报协议和互连网协议使用数据报传输数据。数据报类似于信件。如果你在同一天给同一个人邮寄两封信,你无法知道那个人先收到那封信。同样,如果连续两天给两个人邮信,你也不能知道哪封信先收到。收到信的顺序和发送顺序可能相反。在TCP/IP术语中,端口类〔Port〕似于IP地址,IP地址与主机地址是相联系的,端口和协议相联系。IP数据报保存目的和源IP地址,同样传输协议也保存源和目的端口号。如果端口这个概念对你来说很陌生,请考虑计算机上的硬件端口。你可能编写过往硬件端口送数据的程序。例如为了打印,如果没有其它程序的话,必须向串或并端口发送数据。PC机给它的端口命名和编号。例如,PC机的并行打印端口称为LPTl和LPT2,串行端口称为1和2。在Internet上,网络只是简单地对协议端口编号。在PC机,LPT1表示并行端口1。成千个PC机应用程序使用此方案。多年来,程序员编写PC程序时都假定LPT1表示并行打印端口1。同样,程序员将每个Internet协议端口与一个特定的应用程序和功能联系在一起。Internet包括像FTP、Telnet和Mail这样广泛使用的应用程序采用的应用协议,在Internet上,这些应用程序使用一种叫做“通用口分配〞的端口。通用口分配是特定应用程序广泛使用的一个协议端口。像PC程序员使用打印端口LPT1用于打印,Internet程序员也对具体应用程序使用许多协议端口。例如,平凡文件传输协议〔FTP〕的通用口分配是端口号21的。Telnet的通用口分配是端口号23。§2.2客户/效劳器程序的设计客户机/效劳器模型也是一种网络模型,但与前述的模型不同,它并不是定义了网络的层次构造,而是描述了一种网络程序运行的方式。客户及/效劳器模型将网络应用程序分为客户和效劳器两局部。客户方对效劳器方发送信息请求,效劳器方对其做出相应答复,提供效劳。在TCP/IP网络应用中,多数网络应用程序是使用客户/效劳器模型设计的。效劳程序通常在一个众所周知的地址监听对效劳的请求,也就是说,效劳进程一直处于休眠状态,直到一个客户程序提出了请求信息。此时,效劳程序被"惊醒"并且为客户提供效劳,对客户的请求作出适当的反响。虽然基于连接的效劳是设计客户/效劳器应用程序的标准,但有些效劳也是可以通过数据报Socket提供的。通常,网络应用程序包含两个独立的应用程序:客户程序和

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论