当前位置:文档之家› 基于TCP的网络通信协议设计毕业论文

基于TCP的网络通信协议设计毕业论文

基于TCP的网络通信协议设计毕业论文目录ABSTRACT ..................................................................................................................... 错误!未定义书签。

第一章绪论.. (1)1.1 项目开发背景和意义 (1)1.2 开发和运行环境 (1)第二章开发工具简介 (1)2.1 Visual C++6.0介绍 (1)2.2 MFC (1)2.3 MSDN (2)2.4 Visual Assist X (3)第三章协议设计涉及知识简介 (1)3.1 即时通讯 (1)3.2 网络协议 (2)3.3 OSI七层网络模型 (2)3. 4 TCP/IP协议 (3)3.5 TCP传输 (4)3.6 C/S编程模型 (4)3.7 Socket套接字 (5)3.8 网络字节顺序 (6)3.9 Windows Sockets (6)3.10 同步、异步、阻塞和非阻塞 (7)3.11 多线程 (7)第四章需求分析 (10)4.1 整体需求分析 (10)4.2 可行性分析 (10)第五章概要设计 (11)5.1 性能要求 (11)5.2 通讯协议格式设计 (11)5.3 软件工作模式图 (12)5.4 软件设计原理 (12)第六章详细设计 (15)6.1 协议设计 (15)6.2 服务器端工程设计 (17)6.3 客户端工程设计 (22)6.4多线程设计(一台服务器与多个客户端通信) (31)6.5 协议工作设计 (34)第七章系统测试 (42)7.1 测试目的 (42)7.2 测试要求 (42)7.3 测试方法 (42)7.4 系统测试 (43)总结................................................................................................................................ 错误!未定义书签。

致谢................................................................................................................................ 错误!未定义书签。

参考文献. (55)第一章绪论1.1 项目简介1.1.1 项目开发背景和意义计算机网络技术的飞速发展,使得人类社会正全面迈向信息化。

近几年来,信息网络更是以前所未有的速度不断发展壮大,广泛应用于人类的生产、生活、学习和娱乐等各个领域,极大地促进了人类社会的进步。

即时通讯作为目前的主要应用之一,已经极大的融入到我们生活的各个领域。

即时通信是一个终端连往一个即时通信网路的服务。

即时通信不同于e-mail在于它的交谈是实时的。

大部分的即时通信服务提供了presence awareness的特性──显示联络人名单,联络人是否在在线与能否与联络人交谈。

即时通信(Instant Message),由于其具有实时性、跨平台性、成本低、效率高等优点而受到广泛的使用。

即时通讯软件的迅速发展已经突破了作为技术工具的极限,被认为是现代交流方式的象征。

在网络通讯时,必须选用正确的网络通讯协议,以保证不同连接方式和操作系统的计算机之间可以进行数据传输。

如何让通讯双方更决捷有效安全地沟通,就成为大家关心的问题。

一个良好的协议设计可以很好的解决这个问题。

一个良好的协议设计可以很好的解决这个问题。

我们知道,并且大家也都在用,QQ,微信,飞信,MSN,YY等众多的即时通讯软件,已经成为了目前大家交流必不可少的工具,然而这些聊天工具虽然方便、实用,但是,由于其功能太多,如游戏,社区,电子邮件等功能,占据内存空间过大,从一定程度上来说,更多的已经演变成了一种娱乐工具,不能作为即时通讯的专用工具。

签于此,一个简单友好的即时通讯的网络聊天工具的开发就显得必不可少了,而我们知道,网络通讯少不了相应的软件协议的支持,我们本次的设计目标就是设计一个专用于支持内容简单,占用内存小的计算机之间即时通讯的网络聊天协议。

本系统使用当前流行的MFC框架,c++语言编写,采用面向对象的思想设计,基于TCP 传输控制协议。

切实考虑大众用户的需求,为方便用户之间的沟通,为大家提供了一个简单的用以支持即时通讯的网络聊天协议。

本文首先对本次协议设计所用的开发平台以及开发工具做了简单介绍,其次又对开发中所用到的知识点做了系列概括,接着是需求分析,在此基础上那个提出了对软件协议设计的设计方案,然后分析了协议的各类型字段,最后讲了该协议的具体实现。

网络协议一直以来作为信息网络的核心支柱之一。

近年来,网络的新概念新方法、新技术以惊人的速度不断涌现,软硬件不断升级换代,新的产品和业务更是层出不穷出不穷,令人目不暇接,网络协议更是不断完善,以来更好的为信息化社会服务。

不难发现,网络技术如同自然界的生物一样,是一个新旧更替,优胜劣汰的发展过程。

陈旧落后的技术不论是网络协议还是其他,必然被新的,更加先进的技术所替代。

作为网络工程系的学生,必须在打牢网络理论基础,不断更新学习各种网络新技术的同时,并且能够把学到的理论知识应用于实践中去,以便于深入理解网络体系结构和运行机制,切实掌握各种网络技术的基本原理、软、硬件设计方法和相关协议以及算法。

而本次设计就是针对这一目标,结合本人在大学四年的理论学习和各种实践,对网络协议一次模拟设计,及时对本人大学学习情况的考察,也是自己对自己在大学所学知识的一次系统整叠和梳理,更是对自己的一次锻炼。

1.1.2 开发和运行环境操作系统:Win7编辑和运行平台:Visual C + + 6.0编码语言:MFC协助软件:MSDN, Visual Assist X第二章开发工具简介2.1 Visual C++6.0介绍2.1.1 特色Visual C++6.0由Microsoft开发, 它不仅是一个C++编译器,而且是一个基于Windows操作系统的可视化集成开发环境(integrated development environment,IDE)。

Visual C++6.0由许多组件组成,包括编辑器、调试器以及程序向导AppWizard、类向导Class Wizard等开发工具。

这些组件通过一个名为Developer Studio的组件集成为和谐的开发环境。

Microsoft的主力软件产品。

Visual C++是一个功能强大的可视化软件开发工具。

Visual C++6.0以拥有“语法高亮”,自动编译功能以及高级除错功能而著称。

比如,它允许用户进行远程调试,单步执行等。

还有允许用户在调试期间重新编译被修改的代码,而不必重新启动正在调试的程序。

其编译及创建预编译头文件(stdafx.h)、最小重建功能及累加连结(link)著称。

这些特征明显缩短程序编辑、编译及连结的时间花费,在大型软件计划上尤其显著。

2.1.2 缺点由于C++是由C语言发展起来的,也支持C语言的编译。

6.0版本是使用最多的版本,很经典。

最大的缺点是对于模版的支持比较差。

现在最新补丁为SP6,推荐安装,否则易出现编译时假死状态。

仅支持Windows操作系统。

目前发现与windows 7兼容性不好,安装成功后可能会出现无法打开cpp文件的现象。

2.2 MFC2.2.1 MFC简介MFC(MicrosoftFoundationClasses),是微软公司提供的一个基础类(Microsoft Foundation Classes),以C++类的形式封装了Windows的API,并且包含一个应用程序框架,以减少应用程序开发人员的工作量。

其中包含的类包含大量Windows句柄封装类和很多Windows的内建控件和组件的封装类。

MFC应用程序的总体结构通常由开发人员从MFC类派生的几个类和一个CWinApp类对象(应用程序对象)组成。

MFC 提供了MFC AppWizard 自动生成框架。

Windows 应用程序中,MFC的主要文件为“Afxwin.h”.MFC实际上是微软提供的,用于在C++环境下编写应用程序的一个框架和引擎。

VC++是Windows下开发人员使用的专业C++ SDK(SDK,Standard SoftWare Develop Kit,专业软件开发平台),MFC就是挂在它之上的一个辅助软件开发包。

MFC作为与VC++血肉相连的部分。

只不过MFC类是微软为VC++专配的。

MFC是WinAPI与C++的结合。

API,即微软提供的Windows下应用程序的编程语言接口,是一种软件编程的规范,但不是一种程序开发语言本身,可以允许用户使用各种各样的第三方的编程语言来进行对Windows下应用程序的开发,使这些被开发出来的应用程序能在Windows下运行。

编程语言函数本质上全部源于API,因此用它们开发出来的应用程序都能工作在Windows的消息机制和绘图里,遵守Windows作为一个操作系统的内部实现。

MFC是微软对API函数的专用C++封装,这种结合一方面让用户使用微软的专业C++ SDK来进行Windows下应用程序的开发变得容易,因为MFC是对API的封装,微软做了大量的工作,隐藏了好多程序开发人员在Windows下用C++ & MFC编制软件时的大量内节,如应用程序实现消息的处理、设备环境绘图,这种结合是以方便为目的的,必定要付出一定代价,因此就造成了MFC对类封装中的一定程度的的冗余和迂回,但这是可以接受的。

MFC不只是一个功能单纯的界面开发系统,它提供的类绝大部分用来进行界面开发,关联一个窗口的动作,但它提供的类中有好多类不与一个窗口关联,即类的作用不是一个界面类,不实现对一个窗口对象的控制(如创建、销毁),而是一些在Windows中实现内部处理的类,如数据库的管理类等。

Windows作为一个提供功能强大的应用程序接口编程的操作系统,因为API函数实在太多了,而且名称很乱,从零构架一个窗口动辄就是上百行的代码。

MFC是面向对象程序设计与Application framework的完美结合,它将传统的API进行了分类封装,创建了程序的一般框架。

Windows作为一个提供功能强大的应用程序接口编程的操作系统,因为API函数实在太多了,而且名称很乱,从零构架一个窗口动辄就是上百行的代码。

MFC是面向对象程序设计与Application framework的完美结合,它将传统的API进行了分类封装,创建了程序的一般框架。

相关主题