综合实习课程设计说明书基于CS模式的TCP即时通信系统_第1页
综合实习课程设计说明书基于CS模式的TCP即时通信系统_第2页
综合实习课程设计说明书基于CS模式的TCP即时通信系统_第3页
综合实习课程设计说明书基于CS模式的TCP即时通信系统_第4页
综合实习课程设计说明书基于CS模式的TCP即时通信系统_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

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

文档简介

1、学 班 学 成名级号绩不告诉你不告诉你不告诉你HUNAN UNIVERSITY OF TECHNOLOGY(综合课程实习2)设计说明书基于C/S模式的即时通信系统(使用TCP协议实现)起止日期:2013年12月16日 至 2014年1月丄日指导教师(签字)计算机与通信学院20132013年1212月摘要即时通信(Instant Message),由于其具有实时性、跨平台性、成本低、效率高 等优点而受到广泛的使用。设计并实现一个能够处理多用户进行实时、安全的即时 通信系统具有较强的现实意义。即时通信的底层通信是通过 SOCKE套接字接口实现 的。当前的主流UNIX系统和微软的 WINDOWS统都

2、在内核提供了对SOCKET?接口 的支持。使用这个统一的接口,可以编写一个可移植的TCP/IP通信程序。使信息能 够在INTERNE上可靠的传输。本文设计并实现了基于局域网内的简单即时通信系统,系统采用C/S模式,底层通信通过SOCKE套接字接口实现,服务器负责客户端的登录验证,好友信息的保 存和心跳报文的发送。客户端采用 P2P方式实现消息传递,并能实现文件的传输。 本文首先讨论了同步套接字,异步套接字,多线程并发执行任务等;然后阐述了客 户端、服务器如何使用XML序列化的消息进行通信。关键词:即时通信,文件传输,套接字,TCP协议目录一绪论. 21.目的 . 22.意义 . 2二需求分析

3、. 32.1需求. 32.2相关技术介绍 . 32.2.1.NET 开发平台及 C.NET 开发语言 . 32.2.2 TCP 协议 . 42.3套接字 . 42.4 C/S 模型 . 52.5即时通信协议 . 5三系统总体设计 . 63.1系统基本架构 . 63.2功能模块设计 . 63.3 逻辑图 . 83.4 数据库设计 . 93.4.1实体关系图 . 93.4.2详细列表 . 9四系统详细设计 . 104.1使用XML定义的即时通信协议 .104.1.1信息结构MESSAGE.CS&UMESSAGE.C.S.104.1.2数据结构FriendStruct .124.2数据库连接类 .1

4、34.3服务器端 .144.3.1同步套接字网络监听.144.3.2多线程 .184.3.3计时器 .184.4客户端 .194.4.1同步套接字客户端 .204.4.2采用异步套接字的文件传输 .22五心得体会 25六参考文献 26一 绪论1. 目的 综合课程实习是网络工程专业的重要实践性环节,是学生在学校期间对前期主要课程内 容的一次综合训练。综合课程实习为学生提供了一个既动手又动脑、独立实践的机会,并且将 课本上的理论知识和实际有机地结合起来。通过综合课程实习,可以进一步巩固学生所学专业 知识,加深对专业的了解,扩大专业知识面,提高发现问题、分析问题与解决问题的实际能力, 为后继专业课程

5、的学习打下良好的基础。2. 意义最早的即时通信软件是ICQ, ICQ是英文中I seek you的谐音,意思是我找 你。四名以色列青年于 1996年 7月成立 Mirabilis 公司,并在 11月份发布了最初 的 ICQ 版本,在六个月内有 85 万用户注册使用。在因特网上受欢迎的即时通信服务包含了MSN Messenger、AOL InstantMessenger、Yahoo! Messenger、NETMessenger Service、Jabber、ICQ与 QQ 这 些服务有赖于许多想法更久的 (与普遍)的在线聊天媒介,如 Internet Relay Chat 一样知名。1970

6、年代早期,一种更早的即时通信形式是柏拉图系统 (PLATOsystem) 。之后 在 1980 年代, UNIX/Linux 的交谈实时信息被广泛的使用于工程师与学术界, 1990 年代即时通信更跨越了因特网交流。1996年11月,ICQ是首个广泛被非UNIX/Linux 使用者用于因特网的即时通信软件。在ICQ的介绍之后,同时在许多地方有一定数 量的即时通信方式发展,且各式的即时通信程序有独立的协议,无法彼此互通。这 引导使用者同时执行两个以上的即时通信软件,或者他们可以使用支持多协议的终 端软件,如 Gaim、 Trillian 或 Jabber。近年来,许多即时通信服务开始提供视讯会议的

7、功能,网络电话 (VoIP) ,与网 络会议服务开始整合为兼有影像会议与实时信息的功能。于是,这些媒体的分别变 的越来越模糊。C#L C#是由 C二 需求分析2.1需求(1)即时通信是一个终端连往一个即时通信网路的服务。即时通信不同于 e-mail 在于它的交谈是实时的。 大部分的即时通信服务提供了 presence awareness 的特性一一显示联络人名单,联络人是否在在线与能否与联络人交谈。近年来,许多即时通信服务开始提供视讯会议的功能,网络电话 (VoIP) ,与网 络会议服务开始整合为兼有影像会议与实时信息的功能。于是,这些媒体的分别变 的越来越模糊。(2) 本课题目标是实现局域网

8、用户之间的即时交流和文件传输,通过基础 的网络SOKE编程,为局域网内部的即时通信提供一个简单而较安全的解决方案。(3) 本系统采用 C/S(Client/Server )结构进行设计 , 使用 SQLServer 2000 构建数据库,并在.NET环境下使用Visual C#.net语言和SOCKE套接字开发一个 基于TCP协议的简单即时通信软件,实现简单的即时聊天,文件传输等功能。(4) 功能: 客户管理(注册和登陆) ;显示在线用户;支持私聊;多人同时在线聊 天(群聊)。(5)软件针对局域网内部用户, 实现用户间的即时通信。 需要分别实现服 务器端和客户端的软件设计。( 6)服务器端负责

9、监听用户连接请求, 负责连接数据库存储用户信息, 负 责发送给用户好友信息,负责发送心跳报文检查用户在线状态并即时让用户更新好 友在新信息。( 7)客户端发起主动连接, 向服务器请求登录或者注册。 客户端可以修改 昵称,可以加已知用户为好友(类似于MSN勺好友添加功能)。客户端之间可以发起 P2P模式的聊天,可以传送文件。2.2相关技术介绍221.NET开发平台及C# .NET开发语言.NET框架是Microsoft公司推出的一种全新的开发平台,提供了统一的、面向 对象并且可以扩展的编程类库和完善的集成开发环境 , 大大简化了应用程序的开发 过程, 并且具有良好的移植性和安全性。微软为了推行

10、.NET 战略,特别为 .NET 平台设计了一种语言和C+派生而来的一种“简单、流行、面向对象、类型安全”的程序设计语言,其 综合了 Visual basic的高效率和C+的强大功能,然而更多的人感觉C#更类似JAVA 事实上C#融合了大量的JAVA思想,C#是.NET的关键性语言,它是整个.NET平台的 基础。与C#相比,.NET所支持的其它语言显然是配角,包括 VC+.NET在内。但是 微软并没有打算放弃 VC+.NET相反,微软对VC+.NETW着另一番独特的打算, VC+.NET的定位与C#不完全重合,VC+.NET应用范围仍强于C#,这一点无论对微 软公司还是软件业应用现状都非常重要

11、。2.2.2 TCP 协议 面向连接的通信可以使用可靠通信,在这时候,第四层协议发送数据接收方的 确认,如果未收到数据或者数据被损坏,则请求重新传输。TCP 协议就使用这种可靠通信。使用TCP协议的应用层协议包括 HTTR FTR SMTF和TeInet等。TCP要求在发送数据之前必须打开连接。服务器应用程序必须执行一个称作被 动打开( passive open )的操作,以利用一个已知的端口号创建一个链接,这是, 服务器并不是对网络进行呼叫,而是侦听并等待引入的请求。客户应用程序必须执 行一个主动打开( active open ),为此,它向服务器应用程序发送一个同步序列号(SYN以标识连接

12、。客户应用程序可以将动态端口号作为本地端口使用。服务器必须向客户发送一个确认(ACK以及服务器的序列号(SYN。随后,客户回复一个 ACK这样就建立了链接。现在可以发送和接收消息了。接收消息后,总是返回ACK消息。如果在收到ACK 之前发送方已经超时,则消息将被放到重发队列中以再次发送。由于它的握手机制,所以TCP协议比较复杂并且费时,但此协议在处理数据时 对数据包的传送有保障,从而使得在应用程序协议中不需要再包括该功能。2.3套接字 套接字这个术语并没有定义某个协议:它具有两层含义,但两者都与一个协议 相关。第一个含义是套接字编程 API,它最初由伯克利大学为BSDUNIX而创建。BSD 套

13、接字在经过修改后被用作 Win dows环境的编程接口(并且被命名为 Win Sock)。 Win Sock API 被包装在 System.Net.sockets 命名空间的.NET 类中。Win dowsSockets 是一个独立于协议的编程接口,用于编写网络应用程序。套接字的第二层含义表示一个用于在进程间进行通信的终端。在TCP/IP中,每个终端都与一个 IP 地址和一个端口号绑定。 我们必须对流式套接字和数据报套接字 这两种类型进行区分。 流失套接字用 TCP/IP 协议来使用面向连接的通信; 另一方面,数据报套接字用 UDP/IP 来使用无连接通信2.4 C/S 模型客户机/服务器模

14、型,又称为Client/Server 模型,简称C/S架构。C/S计算技 术在信息产业当中占有重要的地位。这种客户机 /服务器模型是一种非对称式编程模式。 该模式的基本思想是把集中 在一起的应用划分成为功能不同的两个部分 , 分别在不同的计算机上运行, 通过它们 之间的分工合作来实现一个完整的功能。对于这种模式而言其中一部分需要作为服 务器,用来响应并为客户提供固定的服务;另一部分则作为客户机程序用来向服务 器提出请求或要求某种服务。在此“服务器”是指能在网络上提供服务的任何程序。服务器接受网络上的请 求,完成服务后将结果返回给申请者。 对于简单的服务, 把每个请求用一个 IP 数据 报发给服

15、务器,服务器用另一个数据报返回响应。客户机和服务器都是独立的计算机。当一台连入网络的计算机向其他计算机提 供各种网络服务 ( 如数据、文件的共享等 ) 时,它就被叫做服务器。而那些用于访问 服务器资料的计算机则被叫做客户机。 严格说来, 客户机/服务器模型并不是从物理 分布的角度来定义,它所体现的是一种网络数据访问的实现方式。采用这种结构的 系统目前应用非常广泛。如宾馆、酒店的客房登记、结算系统,超市的POS系统,银行、邮电的网络系统等。各种网络服务器基本都遵循同样的算法 :创建一个端口 (Port) ,接受从网络上来 的客户服务请求,完成计算后把结果返回给客户,如此反复。2.5即时通信协议协议是一系列的步骤, 它包括双方或者多方, 设计它的目的是要完成一项任务。 即时通信协议,参与的双方或者多方是即时通信的实体。协议必须是双方或者多方 参与的,一方单独完成的就不算协议。这样在协议

温馨提示

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

评论

0/150

提交评论