H2003031287_江海涛_基于TCP协议的简单即时通信软件的设计与实现.doc
【精品】asp.net基于tcp协议的简单即时通信软件的设计与实现(源代码+论文)
收藏
资源目录
压缩包内文档预览:(预览前20页/共33页)
编号:1637808
类型:共享资源
大小:690.32KB
格式:RAR
上传时间:2017-08-30
上传人:机****料
认证信息
个人认证
高**(实名认证)
河南
IP属地:河南
50
积分
- 关 键 词:
-
精品
asp
net
基于
tcp
协议
协定
简单
即时
通信
通讯
软件
设计
实现
源代码
论文
- 资源描述:
-
【精品】基于tcp协议的简单即时通信软件的设计与实现(源代码+论文),精品,asp,net,基于,tcp,协议,协定,简单,即时,通信,通讯,软件,设计,实现,源代码,论文
- 内容简介:
-
添加好友OK分类号: U D C: 007) 6051 级:公 开 编 号: 2003031287 成都信息工程学院 学位论文 基于 论文作者姓名: 江海涛 申请学位专业: 计算机科学与技术 申请学位类别: 工学 学士 指导教师姓名(职称): 王敏 论文提交日期: 2007 年 06 月 01 日 基于 摘 要 即时通 信 ( 由于其具有 实时性、跨平台性、成本低、效率高等优点 而受到广泛的使用。设计并实现 一个能够处理 多用 户进行实时、安全的即时通 信系统 具有较强的现实意义。 即时 通信 的底层 通信是 通过 接 字接口实现的 。当前的主流 统和微软的 统都在内核提供了对 接口的支持。使用这个统一的接口,可以编写一个可移植的 P 通信 程序。使信息能够在 可靠的传输。 本文设计并实现了基于局域网内的简单即时通信系统,系统采用 C/S 模式,底层通 信通过 接字接口实现,服务器负责客户端的登录验证,好友信息的保存和心跳报文的发送。客户端采用 式实现消息传递,并能实现文件的 传输 。本文首先讨论了同步套接字,异步套接字,多线程并发执行任务等;然后阐述了客户端、服务器如何使用 列化的消息进行 通信 。 关键词: 即时通信;文件传输;套接字 ; 议 as To a M (is in P is by s of in we a P, us ) of of of of of be 2P ML 录 论文总页数: 28页 1 引言 .题背景 .内外研究现状 . 国外研究现状 . 国内研究现状 .课题研究的意义 .课题的研究方法 . 相关技术介绍 .发平台及 C 发语言 .议 . P 网络协议 . 传输控制协议 .接字 . . 流的基本概念 . 的流 .步、异步、阻塞和非阻塞 .。 即时通信 不同于 部分的 即时通信 服务提供了 特性显示联络人名单,联络人是否在在线与能否与联络人交谈。 最早的 即时通信 软件是 英文中 I 谐音,意思是我找你。四名 以色列青年于 1996 年 7 月成立 司,并在 11 月份发布了最初的 六个月内有 85 万用户注册使用。 在因特网上受欢迎的 即时通信 服务包含了 这些服务有赖于许多想法更久的 (与普遍 )的在线聊天媒介,如 1970 年代早期,一种更早的 即时通信 形式是柏拉图系统 (之后在 1980 年代, 交谈实时 信息 被广泛的使用于工程师与学术界, 1990年代 即时通信 更跨越了因特网交流。 1996 年 11 月, 首个广泛被非 时通信 软件。在 介绍之后,同时在许多地方有一定数量的 即时通信 方式发展,且各式的 即时通信 程序有独立的协议,无法彼此互通。这引导使用者同时执行两个以上的 即时通信 软件,或者他们可以使用支持多协议的终端软件,如 近年来,许多 即时通信 服务开始提供视讯会议的 功能,网络电话 (与网络会议服务开始整合为兼有影像会议与实时 信息 的功能。于是,这些媒体的分别变的越来越模糊。 国内外研究现状 外研究现状 当今,国际上对网络 通信 系统研究的较好的公司有,思科, 公司,思科主要研究的是底层的传输; 司研究的是应用层。其中 司凭借其在操作系统的垄断地位,为了在网络的发展中取得先机,采用了各种各样的手段。但是,其捆绑的 论从功能上,还是技术上来说,都不算是非常先进的。当然, 样也不是很受人青睐,这让人想起了,当年的网景公司,网 景只是生不逢时。 择手段 的想打跨网景,可见其对网络的重视。如今, 司在网络应用上捷足先登,凭借着 网络的应用上领先于 软,想用同样的 办 第 2 页 共 28 页 法搞跨对手,因此它拿出了 c#,来对抗 些都是在应用层面的开发工具。应用层上的产品就更显种类繁多。 乎是国际上通用的即时 通信 工具,由于在我国它的应用不是很广,所以,其原理也很少被介绍。 产品,同样在国内没什么市场,所以,对其原理,也很少被讨论过。至于 在 c+下开发的产品,虽然有严重 的安全隐患,不过,至少能在某种程度上代表当今国际研究的水平。此外,国际上最近出先了新的浏览器 性能据说是远高于 许在网络的天下, 有了更强劲的对手。 国内研究现状 国内在应用层上的网络应用软件目前发展异常的火爆 ,因为我国有着网络应用的最大的市场,现在国内网络的基础性建设发展迅速,应用软件也层出不穷,其中,在游戏的领域中,网络 通信 的工作做的不错,如联众游戏平台,还有其他的一些平台,这些平台基本上都是基于 的,用的都是 信,但是为了效率,这些平台没有用 供的 ,而是直接用 行通信。所以效率上不错。此外, 即时 通信 ,也是做的很好的,从某中程度上来说,代表了国内最高的水平。 本课题研究的意义 本课题目标是实现局域网用户之间的即时交流和文件传输,通过基础的网络程,为局域网内部的即时 通信 提供一个简单而较安全的解决方案。 本课题的研究方法 本系统采用 C/S( 构进行设计 ,使用 000 构建数据库, 并在 境下使用 #言和 接字 开发一个基于议的简单即时 通信 软件,实现简单的即时聊天,文件传输等功能。 2 相关技术介绍 架是 司推出的一种全新的开发平台 ,提供了统一的、面向对象并且可以扩展的编程类库和完善的集成开发环境 ,大大简化了应用程序的开发过程 ,并且具有良好的移植性和安全性。 微软为了推行 略,特别为 台设计了一种语言 C#。 C#是由 +派生而来的一种“简单、流行、面向对象、类型安全”的程序设计语言,其综合了 和 C+的强大功能,然而更多的人感觉 C#更类似 第 3 页 共 28 页 事实上 C#融合了大量的 想, C#是 关键性语言,它是整个 台 的基础。与 C#相比, 支持的其它语言显然是配角,包括 内。但是微软并没有打算放弃 反,微软对 着另一番独特的打算,定位与 C#不完全重合, 用范围仍强于 C#,这一点无论对微软公司还是软件业应用现状都非常重要。 可见 + 架中已经退化成了底层的语言了,就像 C+之前 的标准 后将只有开发底层或桌面程序的程序员使用它。它虽然仍旧强大,但是已经不是主流,而主流就是 C#语言。 议 P 网络协议 协议是对等的网络实体之间通信的规则,可以简单地理解为网络上各计算机彼此交流的一种“语言”。网络通信协议设计的基本原则是层次化,层和协议的集合被称为网络体系结构。相邻层之间的接口定义了下层向上层提供的基本操作和服务,下层向上层提供的服务分两种形式:面向连接的服务和无连接的服务。 计算机网络中已经形成的网络体系结构主要有两个: 考模型和 P 参考模 型。 P 参考模型是因特网( 基础。和 7层协议相比,P 协议只有 4个层次。通常说的 P 是一组协议的总称, P 实际上是一个协议族,包括 100 多个相互关联的协议,其中 网际协议 )是网络层最主要的协议; 输控制协议 )和 户数据报协议是传输层中最主要的协议 ),一般认为 最根本的三 种协议,是其他协议的基础。 传输控制协议 面向连接的通信可以使用可靠通信,在这时候,第四层协议发送数据接收方的确认,如果未收到数据或者数据被损坏,则请求重新传输。 议就使用这种可靠通信。 使用 议的应用层协议包括 。 求在发送数据之前必须打开连接。服务器应用程序必须执行一个称作被动打开( 操作,以利用一个已知的端口号创建一个链接,这是,服务器并不是对网络进行呼叫,而是侦听并等待引入的请求 。客户应用程序必须执行一 个主动打开( 为此,它向服务器应用程序发送一个同步序列号 第 4 页 共 28 页 ( 标识连接。客户应用程序可以将动态端口号作为本地端口使用。服务器必须向客户发送一个确认( 及服务器的序列号( 随后,客户回复一个样就建立了链接。 现在可以发送和接收消息了。接收消息后,总是返回 息。如果在收到 消息将被放到重发队列中以再次发送。 由于它的握手机制,所以 议比较复杂并且费时,但此协议在处理数据时对数据包的传送有保障,从而使得在应用程序协议中不 需要再包括该功能。 接字 套接字这个术语并没有定义某个协议:它具有两层含义,但两者都与一个协议相关。第一个含义是套接字编程 最初由伯克利大学为 创建。 境的编程接口(并且被命名为 包装在 名空间的 中。 一个独立于协议的编程接口,用于编写网络应用程序。 套接字的第二层含义表示一个用于在进程间进行通信的终端。在 P 中, 每个终端都与一个 址和一个端口号绑定。我们必须对流式套接字和数据报套接字这两种类型进行区分。流失套接字用 P 协议来使用面向连接的通信;另一方面,数据报套接字用 P 来使用无连接通信。 的基本概念 流的概念已经存在很长时间了。流是一个用于传输数据的对象。数据的传输有两个方向: 1) 如果数据从外部源传输到程序中,这就是读取流。 2) 如果数据从程序传输到外部源,这就是写入流。 外部源常常是一个文件,但也不完全都是文件,它还可以是: 1) 网络,使用一定的网络协议与网络上其它计算机或终端交换数据。 2) 一个指 定的管道。 3) 一块内存区域。 在这些情况中,微软提供了一个 类 读写内存数据使用 理网络数据。读写管道没有相应 第 5 页 共 28 页 的流类,但有一个常见的流类 果要编写一个这样的类,可以从这个基类继承。流对外部数据源不做任何假定。外部源还可以是代码中的一个变量,使用流在变量之间传输数据的技术是一个非常有用的技巧,可以在数据类型之间转换。 在网络编程中我们经常会使用到 网络中的流对象: 实现了 标准的 制,即可以使用 讯网络套接字用标准的流操作进行网络数据的读写。它提供以下的功能: 1) 一个统一的从网络中读取数据的方法 2) 与其他的 兼容,这样你可以很容易地移植程序。 步、异步、阻塞和非阻塞 同步( 所谓同步方式,就是发送方发送数据包以后,不等接受方响应,就接着发送下一个数据包。 异步( 异步方式就是当发送方发送一个数据包以后,一直等到接受方响应 后,才接着发送下一个数据包。 阻塞( 指执行此套接字的网络调用时,直到调用成功才返回,否则此套节字就一直阻塞在网络调用上,比如调用 的 )方法读取网络缓冲区中的数据,如果调用的时候没有数据到达,那么此 )方法将一直挂在调用上,直到读到一些数据,此函数调用才返回 非阻塞( 指在执行此套接字的网络调用时,不管是否执行成功,都立即返回。同样调用 的 )方法读取网络缓冲区中数据,不管 是否读到数据都立即返回,而不会一直挂在此函数调用上。 在 络通信软件开发中,最为常用的方法就是异步非阻塞套接字。平常所说的 C/S(客户端 /服务器)结构的软件采用的方式就是异步非阻塞模式的。 其实在用 C进行网络编程中,我们并不需要了解什么同步、异步、阻塞和非阻塞的原理和工作机制,因为在 已经已经把这些机制给封装好了。 ,又称为 型,简称 C/S 架构。 C/S 计算技术在信息产业当中占有重要的地位。 这种客户机 /服务器模型是一种非对称式编程模式。该模式的基本思想是把集中在一起的应用划分成为功能不同的两个部分 ,分别在不同的计算机上运行,通过它们之间的分工合作来实现一个完整的功能。对于这种模式而言其中一部分需要作为服 第 6 页 共 28 页 务器,用来响应并为客户提供固定的服务;另一部分则作为客户机程序用来向服务器提出请求或要求某种服务。 在此“服务器”是指能在网络上提供服务的任何程序。服务器接受网络上的请求,完成服务后将结果返回给申请者。对于简单的服务,把每个请求用一个 据报发给服务器,服务器用另一个数据报返回响应。 客户机和服务器都 是独立的计算机。当一台连入网络的计算机向其他计算机提供各种网络服务 (如数据、文件的共享等 )时,它就被叫做服务器。而那些用于访问服务器资料的计算机则被叫做客户机。严格说来,客户机 /服务器模型并不是从物理分布的角度来定义,它所体现的是一种网络数据访问的实现方式。采用这种结构的系统目前应用非常广泛。如宾馆、酒店的客房登记、结算系统,超市的 统,银行、邮电的网络系统等。 各种网络服务器基本都遵循同样的算法 :创建一个端口 (接受从网络上来的客户服务请求,完成计算后把结果返回给客户,如此反复。 时通信 协议 协议是一系列的步骤,它包括双方或者多方,设计它的目的是要完成一项任务。即时 通信 协议,参与的双方或者多方是即时 通信 的实体。协议必须是双方或者多方参与的,一方单独完成的就不算协议。这样在协议动作的过程中,双方必须交换信息,包 括控制信息、状态信息等等。这些信息的格式必须是协议参与方同意并且 遵循的。好的协议要求清楚,完整,每一步都必须有明确的定义,并且不会引起误解 ;对每种可能的情况必须规定具体的动作。 有许多的 统,如 M、 M 和 M,它们使用了不同的技术,而且它们互 不兼容。为了创建即时 通信 的统一标准,人们经过了多次尝试: 对话初始协议( 即时 通信 对话初始协议和表示扩展协议( 应用交换协议( 显示和即时 通信 协议( 基于 开放的可扩展 通信 和表示协议( 议(常称为 议)。人们多次努力,试图统一各大主要 应商的标准( 但无一成功,且每一种 然继续使用自己所拥有的协议。 本系统目的在于实现一个简单的即时通信过程 ,没有必要采用通用 的比较复杂的即时通信协议,因此使用了简单定义的 记定义来规范即时通信的各种网络信息, 在网络中传输序列化的 言。 第 7 页 共 28 页 3 系统总体设计 求分析 软件针对局域网内部用户,实现用户间的即时通信。需要分别实现服务器端和客户端的软件设计。 服务器端负责监听用户连接请求,负责连接数据库存储用户信息,负责发送给用户好友信息,负责发送心跳报文检查用户在线状态并即时让用户更新好友在新信息。 客户端发起主动连接,向服务器请求登录或者注册。客户端可以修改昵称,可以加已知用户为好友(类似于 好友添加功能)。客户端之间可 以发起 式的聊天,可以传送文件。 统基本架构 基于 C/S 架构的 即时通信软件便于对用户信息进行统一管理和保存 ,面向特定的用户,对信息的安全控制能力很强。为了减轻服务器负担,客户端之间的信息传递是采用 式的,服务器只负责用户的注册,登录和用户在线状态的检验。基本结构如图: C L I E N I E N 和 登 录 信 息S E R V E 信 息注 册 和 登 录 信 息返 回 信 息聊 天 信 息 , 文 件 传 输图 1 系统基本架构 能模块设计 (1)可以完成客户端注册,客户端可以通过填写信息进行注册,信息被发送到服务器端。 (1)客户可以输入 账号 和密码进行 登录 ,客户端会发送 登录 信息等待服务器响应, 登录 成功后会发出 登录 成功信息并刷新好友列表。 第 8 页 共 28 页 (1)密码修改:应该有密码修改功能 (2)信息修改:可以更改一些注册信息 (1)即时聊天模块:客户端与客户端之间建立线程进行即时聊天,也包含有 简单的 对称 加解密算法功能。 (2)好友列表:可以对好友列表进行添加删除等动作 (1)文件传输:文件传输功能 客户端传送的注册信息进行判断。 (1)密:对用户的 账号 和密码信息进行 密 (2)重复用户检查:将加密后信息与已存在 账号 进行比较,检查是否 账号 已存在 ,如果存在就返回错误信息 (3)注册成功:将可成功注册的用户 账号 和密码写入数据库内,并向客户端返回成功信息 (1)对密码和信息修改请求进行判断,执行和返回修改成功信息 应 : (1)对 登录 的 账号 和密码进行加密检查后发回正确或错误情况,并记录上线信息 (2)好友列表发送:给成功 登录 的 账号 发送好友列表及好友上线信息 (3)上线信息发送:给成功 登录 的 账号 的好友发送在线信息(包括 口等等信息) (1)对 登录 ,在线,离线的用户情况进行统计,记录和通知 (2)心跳测试:每隔一段时间发送报文测试用户是否因意外原因离线 (3)情况记录: 将用户 登录 时间, 线时间等信息记录入数据库 第 9 页 共 28 页 辑 图 注 册登 录注 册 回 应在 线 情 况C L I E N T S E R V E 信息 管 理密 码 修 改信 息 修 改取 得 好 友列 表修 改 回 应H A S 注 册 成 功登 录 回 应好 友 列 表发 送上 线 信 息发 送注 册 信息 检 查注 册 失 败测 试文 件 传 输消 息 加 密消 息 解 密即 时 聊 天在 线 情 况记 录 逻辑 图 据库设计 体关系图 服务器是作为记录和读取数据库信息的载体,与客户端关系并不复杂,这里需 第 10 页 共 28 页 要重点 考虑客户端之间的关系。用户与用户之间的关系是较为特殊的递归关系,即描述发生在两个相同实体上的关系。 如下: 图 3 详细列表 数据库 包含两个表,分别为 记录 用户信息的 记录用户好友信息的 细设计见下面两表: 表 1 用户信息表 (属性)名 类型 主键 宽度 是否允许为空 备注 9 增长 20 户帐号 20 户昵称,可重复 20 户 35 册日期 20 后登录 20 户 100 户好友分组,有默认值 20 码问题 20 码答案 20 户密码 4 线状态, 1在, 0不在 表 2 用户好友表 (属性)名 类型 主键 宽度 是否允许为空 备注 9 增长 20 户 20 户好友 20 户好友分组 聊天 文件传输 n n 用户 友 态 户端 账号 昵称 D 密码 好友分组 状态 客户端 账号 昵称 D 密码 好友分组 第 11 页 共 28 页 4 系统 实现 用 通信协议 息结构 两个 C#类定义了包括服务器信息,状态信息,注册信息,登录信息,聊天信息或者请求文件传输信息的函数,服务器和客户端通过将它们实例化和序列化再转
- 温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

人人文库网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
2:不支持迅雷下载,请使用浏览器下载
3:不支持QQ浏览器下载,请用其他浏览器
4:下载后的文档和图纸-无水印
5:文档经过压缩,下载后原文更清晰
|