毕业设计(论文)基于P2P技术的局域网聊天工具_第1页
毕业设计(论文)基于P2P技术的局域网聊天工具_第2页
毕业设计(论文)基于P2P技术的局域网聊天工具_第3页
毕业设计(论文)基于P2P技术的局域网聊天工具_第4页
毕业设计(论文)基于P2P技术的局域网聊天工具_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

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

文档简介

1、 毕 业 论 文(设 计)题目: 基于p2p技术的局域网聊天工具 (英文): chat tool of local network based on p2p technology 系 别: 计算机科学系 专 业: 计算机科学与技术 姓 名: 学 号: 指导教师: 答辩日期: 2006.05.14 基于p2p技术的局域网聊天工具中文摘要现在流行的聊天软件大都是在c/s模式下运行的,一切服务都是以服务器为核心,以它的正常运转为前提,因此,即使是在局域网通讯也需要服务器的支持。为了让在局域网内的用户能够轻松地进行聊天和文件共享,我们设计了一种无固定服务器纯p2p的通讯模型,用户与用户之间就靠软件的协

2、议进行通讯。本文主要对这种模型的设计、原理和实现进行了详细的阐述,并且对在此基础上实现的功能作了简要的介绍。关键词:p2p,局域网通讯,tcp、udp协议,文件传输,五子棋游戏chat tool of local network based on p2p technologyabstractthe chat software that spreads now most are circulates under the c/s mode, the whole services are depend on the server, taking its normal operation as a p

3、remise, therefore, be regarded as in the internet communication of the local network to also need the support of the server.for some one can communicate and the file share easily in the local network, we design a kind of no fixed server pure p2p model, customer and customer can talk easy depend on t

4、he protocols of the software.this text mainly elaborate the design,principle and realization of this kind of model in detail, and made detailed introduction to various application based on this model. keywords: p2p, lan,communication, tcp、udp, file transport,fiver game目 录第一章 引言21.1简要介绍21.2项目背景21.3特色

5、与创新3第二章 可行性分析32.1技术可行性32.2国内外研究现状和发展趋势4第三章 需求分析43.1功能需求43.1.1功能划分43.1.2功能描述53.2数据需求63.2.1保存数据的方法和载体63.2.2数据一致性与容错性7第四章 概要设计74.1网络模型设计74.2系统结构模型设计84.4功能模块处理流程94.4.1上下线提示流程94.4.2聊天消息收发流程94.4.3群操作流程104.4.4文件收发流程114.4.5游戏操作流程114.5界面设计12总结12参考文献12致谢13第一章 引言1.1简要介绍基于p2p技术的局域网聊天工具,我们把该软件命名为“toptalk”。它的主要作用

6、是实现同在一个局域网上的每个用户之间进行即时通讯,该软件还具有聊天室、文件传输和网络对弈游戏的功能。“toptalk”是一个建立在纯p2p模型下的聊天工具,所以完全不用额外的服务器支持就可以进行点对点通讯,使用起来也非常方便。它采用了基于udp网络的传输协议进行底层的消息传送,在此基础上用广播消息实现上下线提示和聊天室功能,点对点的消息实现两人之间的聊天通讯、网络游戏和收发群消息的功能。“toptalk”同时也采用了tcp网络的传输协议进行文件传输,该功能可以同时收发多个文件并且支持断点续传。我在这个小组的主要工作是负责底层通讯的代码设计、用户管理模块的实现、五子棋游戏的实现和各个模块间的接合

7、工作。1.2项目背景现在的互联网大多是以s(server)/ b(browser)或s/c(client)结构的应用模式为主的,这样的应用必须在网络内设置一个服务器,信息通过服务器才可以传递。信息或是先集中上传到服务器保存,然后再分别下载(如网站),或是信息按服务器上专有规则(软件)处理后才可在网络上传递流动(如邮件)。在以上方式下,一切服务都是以服务器为核心,以它的正常运转为前提。像现在流行的聊天软件也都是在这种模式下为大家服务的,因此我们也必须依赖服务器的正常运转才能够进行聊天。但是随着p2p技术的日益流行,大家都意识到点对点的通讯更能够体现网络应用的原始意义。特别是在局域网内,更加需要一

8、种廉价、效率更高的软件(不需要服务器支持,软件本身就具备服务器和客户端的功能)。我们的项目就是针对这种需求而开发的,设计思想也很简单,就是以简单而有效的方式构建纯p2p通讯模型,使得开发后期不需要过多考虑如何解决对等通讯的技术问题,而可以专注于如何实现与完善可扩展、互操作性强的高层应用。在没有服务器支持的情况下实现局域网内点对点的通讯功能,最直接想到的就是网络聊天、文件传输和网络游戏等应用。1.3特色与创新随着网络聊天用户群的急剧增长,在传统的客户端/服务(c/s)设计结构模式下开发的网络聊天软件,由于必须使客户端的数据通过服务器的转播才能发往目的地,服务器需承受巨大的负担。虽然在这种模式下易

9、于统一和管理,功能也可以比较强大,但是要以服务器承担巨大的负担为代价。本项目的创新点是采用基于纯p2p网络模型的通讯方式,不需要专门的服务器,网络中所有的对等点都是服务器,并且承担很小的服务器的功能。各用户可以根据toptalk运行时收集到的用户列表信息选择聊天对象,大部分的功能都可以在此连接上实现。第二章 可行性分析2.1技术可行性我们项目的需求是可以在局域网内实现方便快捷的通讯和资源共享,搭建一个完善的聊天环境。在局域网内实现点对点的聊天并不是一件难事,在现有的网络协议udp、tcp/ip和socket的支持下都可以轻易的实现通讯。而重点解决的问题是如何在没有固定服务器的环境下营造一个完整

10、的和可知的通讯环境,局域网内的每一个用户可以知道其他用户的上下线情况和有选择的进行通话。目前,在局域网内有一个方法是最适合用来实现上下线功能的,那就是用广播的方式,所有用户都固定一个端口来处理广播或udp数据,这样就可以在这个端口上进行底层的消息互通了。当前,p2p技术已经趋向成熟,它的几个特点(没有传统的服务器概念、可扩展性好、完全对称)都非常切合软件开发的思路。基于上述有关技术的支持,我们利用p2p技术核心思想实现局域网通讯并开发“toptalk”聊天工具是完全可行的。2.2国内外研究现状和发展趋势通过对国内外关于对等网络的技术文章进行分析,利用p2p技术对网络连接方式和结构的设计研究主要

11、是如何在互联网上实现点对点的连接,如何充分利用互联网上的各种资源,将互联网从一个基于文件的网页和电子邮件网络转变成一个动态的、颗粒状的网络。而在运用p2p技术针对局域网不同主机之间进行通讯的技术文章还是比较少,虽说在局域网实现点对点连接比起在互联网是简单的多,但是也不能够忽略局域网每台计算机对网络资源共享的愿望,特别是在没有服务器的情况下。不过技术是不分大小的,我们还是可以借鉴p2p技术在互联网上的应用。p2p技术的发展以及p2p与网格技术的结合,影响了整个计算机网络的概念和人们的信息获取模式,真正实现了“网络就是计算机,计算机就是网络”。 它提供了很多吸引人的特性,比如自主性(self-or

12、ganization) 、负载平衡(load-balancing) 、有效性(availability) 、容错冗余(fault tolerance) 和匿名(anonymity)等。p2p引导网络计算模式从集中式向分布式偏移,也就是说网络应用的核心从中央服务器向网络边缘的终端设备扩散。这使人们在internet上的共享行为被提到了一个更高的层次,使人们以更主动深刻的方式参与到网络中去。第三章 需求分析3.1功能需求3.1.1功能划分根据该聊天工具的主要功能以及p2p模式的需求可划分为五个模块:用户管理模块、底层消息处理模块、聊天功能模块、文件传输模块、五子棋对弈游戏模块。其中用户管理模块和底

13、层消息处理模块是整个软件的基础模块,其他三个模块都是在此基础上添加的。3.1.2功能描述3.1.2.1用户管理模块功能需求这主要是因为考虑到在一台pc机上可能会有不同的用户登录,所以为了实现这点就特别把该软件设计成多用户型。这样就出现了用户管理模块,它在功能实现上主要是: 1 申请新用户 2 修改用户信息3 用户登录4 查找用户面板5 查找用户列表结点6 查看用户信息7 创建新群3.1.2.2底层消息处理模块功能需求:该模块主要是处理通讯协议下的各种消息,包括发送消息和接收并处理消息这两个主要的功能。在功能实现上,可分为以下几个部分:1上线消息处理2 在线消息处理3 下线消息处理4 通话消息处

14、理5 文件传输消息处理6 群消息处理7 五子棋游戏消息处理3.1.2.3 聊天模块功能需求聊天功能模块是本软件主要实现的功能,因此要尽可能做到方便快捷,易于使用。由于没有固定的服务器,所有的消息都是实时的,不能够把消息上传到服务器保存,再等接收者上线后转发出去。由于这种不可避免的缺陷,在功能上也不能够像传统的聊天工具那样,在功能上需做一些改变和配合。在用户数据方面也很容易引起不一致性问题,所以也不能够太过依赖数据。在功能实现上,可分为以下几个部分:1 按类显示用户列表2 信息提示3 查看聊天记录4 收发信息3.1.2.4文件传输模块功能需求文件收发是资源共享的最主要渠道,收发必须是可靠的,并且

15、能够支持断点续传。在功能实现上分为:1 添加发送文件2 接收文件3 发送文件4 中止收发文件3.1.2.5五子棋对弈游戏模块功能需求网络游戏可以增加聊天工具的趣味性,而对弈游戏又是最适合的游戏模式,所以就选择了五子棋作为游戏的娱乐功能。该游戏实现起来比较简单,主要的功能分为下面几个部分:1 建立游戏2 状态提示3 悔棋4 重新开始3.2数据需求3.2.1保存数据的方法和载体在软件运行前必须有保存数据的方法和载体,我们选用了access数据库为数据保存的主要载体,另外还有一些标志性数据放在注册表里。数据的输入是否准确是数据处理的前提,错误的输入会导致处理错误或者程序异常,从而影响软件的稳定性。用

16、户个人信息和聊天内容主要是手工输入的,而用户的id则由系统分配,用户本身不需要知道这样一个细节。在access数据库里我们需要三个表来保存聊天工具所需的主要数据,这三个表是本地用户表、用户信息表和聊天记录表。本地用户表是用户申请新用户时保存进去的,同时也把用户的信息保存到用户基本信息表。当用户登录和修改都需要取出本地用户的信息和用户的基本信息。用户基本信息表除了保存本地用户的信息外,还有保存在局域网上不同主机申请的用户信息,本地用户就是靠着这些信息找到想要聊天的对象的。在聊天工具运行的过程中,聊天的内容是用户想要保存下来的,以便以后可以查看过去的聊天记录。所以软件应该可以根据发送者和接收者的i

17、d提取出他们的聊天记录,并且把记录还原成用户可识别的聊天内容。3.2.2数据一致性与容错性由于用户信息在本地是共享的,所以就不存在数据一致性问题。但是由于没有固定服务器的支持,所以每一个用户端都要独立保存一份数据,当一部分用户在线时,数据更新也只是这一部分用户,这样就造成数据不一致。面对这个问题,我们的聊天工具就一定能够允许出现数据的不一致,并且在用户上线后,能够即时获得更新。第四章 概要设计4.1网络模型设计对于局域网的整体模型,我们采用了纯p2p的连接模型,充分发挥了端对端通讯的优势。在本地主机上保存了局域网其它结点的基本信息,直接通过目录列表与其它主机通讯,这样可以大大减少连接的开销。设

18、计模型图解:peer0to1to2to3peer2to0to1to3peer1to0to2to3peer3to0to1to2基于目录式的p2p网络模型图 5.14.2系统结构模型设计以需求分析为依据,参照现在比较流行的开发模型的特点,我们把结构模型划分为三层:显示层、控制层以及数据层。显示层主要是用户与软件的交互平台,它实现友好的用户界面,是用户获得和输入信息的渠道。包括:申请或修改用户信息窗口、登录窗口、用户面板窗口、聊天对话窗口、文件监视器窗口、五子棋游戏窗口等。控制层是整个软件的灵魂,大部分的底层操作都需要经过调用控制层的方法。包括:初始化原始数据、网络消息的收发、网络消息的处理、用户信

19、息的管理、基本窗口的管理。数据层是提供了存取、拷贝、查找和序列化等方法的信息结构体,它使得消息数据操作、数据库操作和基本信息数据操作都变得透明化。包括:数据集对象、基本数据信息对象。4.4功能模块处理流程4.4.1上下线提示流程用户登录广播上线消息在线用户收到上线消息收到在线消息返回在线消息更新用户列表更新用户列表退出广播下线消息收到下线消息图5.44.4.2聊天消息收发流程选择用户结点发送聊天消息用户面板收到聊天消息查找用户面板找不到找到用户面板查找用户结点找到用户结点聊天窗口打开更新聊天内容聊天窗口未打开添加到消息队列提示有新消息丢弃图5.54.4.3群操作流程创建新群已经存在创建成功更新

20、群列表搜索新群广播要搜索群的名字收到搜索群消息找不到该群找到该群收到群信息返回群信息更新群列表请求加入该群收到请求加入消息同意加入收到群消息拒绝请求同意加入消息更新群用户列表更新群用户列表图5.64.4.4文件收发流程用户结点用户结点添加发送文件更新文件收发窗口发送文件传输请求收到请求消息初始化socket接收socket连接接收确认信息准备成功发送确认信息确认成功接收数据发送数据图5.74.4.5游戏操作流程打开游戏窗口发送请求消息聊天窗口用户结点收到游戏请求拒绝加入游戏同意加入游戏收到拒绝消息连接成功收到游戏消息走棋悔棋重新开始退出更新棋盘状态走棋消息更新棋盘同意请求图5.84.5界面设计用户界面的美观和方便与否会直接影响到用户使用的积极性,所以我们为界面换上了一个免费的皮肤来改善界面的外观。用户新建、修改的工作都是通过界面交互完成的,而用户登录

温馨提示

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

最新文档

评论

0/150

提交评论