【编者按】:网学网VC与C++类别为您提供C/S模式基于VC的聊天软件的开发参考,解决您在C/S模式基于VC的聊天软件的开发学习中工作中的难题,参考学习。
客服咨询,网学网竭诚为您服务,本站永久域名:myeducs.cn |
目 录 1 概述. 1 1.1 本课题的研究背景. 1 1.2 国内外研究现状. 1 1.3 开发工具的简介. 1 1.3.1 Visual C++1 1.3.2 ACCESS 2000数据库简介. 3 2网络通讯程序的设计原理和过程. 4 2.1 MFC框架. 4 2.2 TCP/IP协议. 5 2.3 客户机/服务器模型. 7 2.4 Windows Sockets网络编程接口. 8 2.5 系统功能描述. 8 3 需求分析. 9 3.1可行性研究. 9 3.2 系统需求分析. 9 3.3 系统目标. 9 3.4 系统开发环境. 10 4总体设计. 10 4.1系统流程设计. 11 4.2 服务器端的设计. 11 4.2.1 服务器端工作流程图. 11 4.2.2 服务器的界面设计. 12 4.3 客户端的设计. 12 4.3.1 客户端工作流程图. 12 4.3.2 客户端的界面设计. 14 4.4 数据库设计. 14 5 系统程序实现. 15 5.1 服务器端. 15 5.2 客户机端. 21 6 软件测试. 28 6.1 软件测试的意义. 29 6.2 软件测试的重要性. 29 6.3 软件测试的范围. 29 6.4 软件测试的方法. 29 6.5 软件测试的目的和原则. 30 7 总结. 31 参考文献. 33 致谢. 34 TCP/IP协议 TCP/IP是国际互联网所采用进行网际互连的通信协议。IP互连协议(Internet Protocol),负责主机之间的传输数据。TCP传输控制协议(Transmission Control Protocol),负责在应用程序之间传递数据。实际所称的TCP/IP协议包括了在国际互联网上应用的一组协议,互联网协议组是此协议组的另一个名字。这个协议组包括几种工作在不同层次上的网络协议,UDP用户数据报协议(User Datagram Protocol),提供给用户进程的无连接协议,也负责在应用程序之间无连接传递数据,但不执行正确性检查。ICMP互连网控制报文协议(Internet Control Message Protocol),处理主机间的差错和传送控制。ARP地址解析协议(Address Resolution Protocol),负责将网络层地址转换成链路层地址。RARP反向地址解析协议(Reverse Address Resolution Protocol),负责将链路层地址转换成网络层地址。 TCP/IP协议的核心是传输层协议(TCP、UDP)、网络层协议(IP)和物理接口层,这三层通常在操作系统的内核中实现。TCP/IP网络环境下的应用程序设计是通过网络系统编程界面Socket实现的,Socket提供应用程序与系统内核之间的网络编程接口。协议可以是可靠的可以是不可靠的。可靠的协议意味着当数据通过协议传递时,协议保证数据正确传输。可靠传输包括几个特征。首先,为了确保数据正确传送,协议在通信应用程序之间互相交换确认信息。也就是说,程序每次发送-个报文时,都期望对方发送一个相当于说:“我得到这个报文”的确认信息。如果发送程序没有收到这样一个确认信息,程序将自动重新发送此报文,直到得到应答信息为止。其次,为了确保传输的数据有效,可靠协议在每次传输时,都包含一个或更多的校验和(CRC)。接收计算机重新计算校验和,与收到的校验和进行比较。如果不匹配,就表明在传输过程中发生了错误。 传输控制协议TCP是一个使用校验和、确认信息以及其它可靠数据传输技术的可靠协议。相比之下,不可靠协议不能确保数据正确传输。协议试图传输数据,但不保证成功。而且,不可靠协议在传输失败后,并不通知发送方应用程序。可将不可靠数据传输比作没有返回地址的信件。如果发送地址是锗误的,由于邮递系统不能将信退回给你,所以你就不知道信件有没有送到。即使发送地址是正确的,也不能保证邮递系统不丢失你的信件。 TCP/IP协议组中存在的两个基本数据服务是:字节流服务和数据报服务。使用字节流的协议将信息看作一串字节流进行传输。协议不管要求发送或接收数据的长度和传送数目,只是将数据看作一个简单的字节串流。使用数据报的协议将信息视作一个独立单元进行传输。协议单独发送每个数据报——数据报之间不相互依赖。例如,假设你使用字节流协议发送5个数据段(每个有10字节)和一个包含50字节的数据段(总共100字节)。连接的接收方可以按每次20字节读数据(要读5次)。传输控制协议是字节流协议。
客户机/服务器模型 客户机/服务器模型也是一种网络模型,但与前述的模型不同,它并不是定义了网络的层次结构,而是描述了一种网络程序运行的方式。 客户机/服务器模型将网络应用程序分为客户和服务器两部分。客户方对服务器方发送信息请求,服务器方对其做出相应回答,提供服务。在TCP/IP网络应用中,多数网络应用程序是使用客户机/服务器模型设计的。服务程序通常在一个众所周知的地址监听对服务的请求,也就是说,服务进程一直处于休眠状态,直到一个客户程序提出了请求信息。此时,服务程序被唤醒并且为客户提供服务,对客户的请求做出适当的反应。虽然基于连接的服务是设计客户/服务器应用程序的标准,但有些服务也是可以通过数据报Socket提供的。 通常,网络应用程序包含两个独立的应用程序:客户程序和服务器程序。但是,也可以设计同时完成这两种功能的程序,例如,一些服务器程序如果不能完成一个服务请求时,它将转而充当客户程序,向其它服务器程序请求信息。这方面的一个典型例子就是提供Internet从域名到IP地址映射服务的DNS服务器。 为了充分理解TCP/IP协议族,必须理解几个重要术语。这些术语指出了两个TCP/IP传输协议:用户数据包协议(UDP)和传输控制协议(TCP)之间的区别。这些术语进一步描述了与网络连接、协议可靠性以及数据服务有关的协议特性。 当建立服务器程序时,应该将服务器程序设计成等候客户的请求。你知道,TCP传输层通过协议端口和应用程序(像服务器和客户)通信,也就是说,为了按收客户请求,服务器程序必须对传输层的一个特定协议端口进行侦听。当服务器配置socket接口时,它使用bind()函数让Socket执行体登记一个协议端口。也就是说,程序告诉Socket执行体使用哪一个协议端口进行数据传送。Socket执行体接着告诉传输层某个特定协议端口已被使用,并将其收到的所有数据传送给Socket API。 使用无连接协议的程序和使用面向连接协议的服务器程序之间的主要相似之处是它们都必须对一个协议端口进行侦听。例如,无连接和连接服务器程序必须在协议端口侦听客户请求。同样,由于无连接客户程序没有和远地主机建立直接连接,所以它也必须对协议端口进行侦听,以便接收以对它服务请求产生的数据报应答。Socket API中的bind()函数让程序将一个本地地址(包括主机地址和协议端口)和一个Socket联系起来。
|
本站发布的计算机毕业设计均是完整无错的全套作品,包含开题报告+程序+论文+源代码+翻译+答辩稿PPT |
本文选自计算机毕业设计http://myeducs.cn |