毕业设计(论文)-基于P2P技术的局域网聊天工具.doc

上传人:爱问知识人 文档编号:3950535 上传时间:2019-10-11 格式:DOC 页数:15 大小:111.55KB
返回 下载 相关 举报
毕业设计(论文)-基于P2P技术的局域网聊天工具.doc_第1页
第1页 / 共15页
毕业设计(论文)-基于P2P技术的局域网聊天工具.doc_第2页
第2页 / 共15页
毕业设计(论文)-基于P2P技术的局域网聊天工具.doc_第3页
第3页 / 共15页
毕业设计(论文)-基于P2P技术的局域网聊天工具.doc_第4页
第4页 / 共15页
毕业设计(论文)-基于P2P技术的局域网聊天工具.doc_第5页
第5页 / 共15页
点击查看更多>>
资源描述

《毕业设计(论文)-基于P2P技术的局域网聊天工具.doc》由会员分享,可在线阅读,更多相关《毕业设计(论文)-基于P2P技术的局域网聊天工具.doc(15页珍藏版)》请在三一文库上搜索。

1、基于P2P技术的局域网聊天工具 毕 业 论 文(设 计)题目: 基于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 o

3、peration as a premise, 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 e

4、asy depend on the 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简要介

5、绍21.2项目背景21.3特色与创新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技术的局域网聊天工具,我们把该软件命名为“

6、TopTalk”。它的主要作用是实现同在一个局域网上的每个用户之间进行即时通讯,该软件还具有聊天室、文件传输和网络对弈游戏的功能。“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与网格技术的结合,影响了整个计算机网络的概念和人们的信息获取模式,真正实现了“网络就是计算机,计算机就是网络”。 它提供了很多吸引人的特

12、性,比如自主性(self-organization) 、负载平衡(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 在线消息处理

14、3 下线消息处理4 通话消息处理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数据库里我们需要三个表来保存聊天工具所需的主要数据,这三个表是本地用户表、用户信息表和聊天记录表。本地用户表是用户申请新用户时保存进去的,同时也把用户的信息保存到用户基本信息表。当用户登录和修改都需要取出本地用户的信息和用户的基本信息。用户基本信息表除了保存本地用户的信息外,还有保存在局域网上不同主机申请的用户信息,本地用户就是靠着这些信息找到想要聊天的对象的。在聊天工具运行的过程中,聊天的内容是用户想要保存下来的,以便以后可以查看过去的聊天记录。所以软件

17、应该可以根据发送者和接收者的ID提取出他们的聊天记录,并且把记录还原成用户可识别的聊天内容。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游戏操作流程打开游戏窗口发送请求消息聊天窗口用户结点收到游戏请求拒绝加入游戏同意加入游戏收到拒绝消息连接成功收到游戏消息走棋悔棋重新开始退出更新棋盘状态走棋消息更新棋盘

21、同意请求图5.84.5界面设计用户界面的美观和方便与否会直接影响到用户使用的积极性,所以我们为界面换上了一个免费的皮肤来改善界面的外观。用户新建、修改的工作都是通过界面交互完成的,而用户登录后的用户面板是用户操作的主要平台。总结本文主要阐述了基于P2P技术的聊天工具的开发过程和设计思路,重点介绍了聊天工具的底层消息处理和各种功能的实现原理。软件中仍存在一些问题。由于没有固定服务器的支持,所以消息收发也只能够是即时的,这样就不可避免地造成一些数据的不一致性。本软件要靠自身的协议来完成网络协调工作,所以协议考虑的健不健全直接影响到系统的安全性。总之,该软件已经完成了基本的所有要求,从底层消息处理到

22、功能模块应用都已经基本实现。虽然在确定网络模型和软件整体架构方面有一定的创新,但是还存在一些问题,要进一步在测试过程中加以改进,不断的完善提高。参考文献1 局域网新技术与标准(美)马德隆(Thomas W.Madron)著2 计算机局域网络理论及技术李腊元著3 对等网络编程源代码解析(美)Dreamtech软件研发组著4 无所不共享P2P网络共享完全手册易倍思工作室编著5 Visual C+ 网络通信编程实用案例精选丁展,刘海英等编著6 Visual C+ 网络通信协议分析与应用实现汪晓平,钟军等编著7 Visual C+ 工程应用与项目实践张雨,阮伟良,李贺等编著致谢我们小组一共有三个成员,从选题到项目开发完成都一直不停地在努力学习之中,因为大家都没有做项目的经验,所以必须是自己慢慢摸索,直到找出最好的策略和方案。在这个毕业设计的过程中,我们要感谢古俐明老师对我们小组的的悉心指导和给予了许多宝贵的意见,同时又让我们有充分的发挥空间,自由创作。正因为这样,我们在开发项目的选题上有了更多的选择,最终完成了我们满意的毕业设计作品。- 15 -

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1