{$cfg_webname}
主页 > 计算机 > VB >

点对点聊天文件传输系统的设计与实现

来源:56doc.com  资料编号:5D187 资料等级:★★★★★ %E8%B5%84%E6%96%99%E7%BC%96%E5%8F%B7%EF%BC%9A5D187
资料以网页介绍的为准,下载后不会有水印.资料仅供学习参考之用. 帮助
资料介绍

摘要
本程序使用VB语言编程,使用WinSock控件完成的点对点(P2P)聊天和文件传输程序。可以实现两台机器间互发消息,并且有聊天和文件传输记录,安全可靠。
关键词
p2p WinSock,聊天和文件传输程序,VB
 
开发背景
P2P是一种技术,但更多的是一种思想,有着改变整个互联网基础的潜能的思想。
1.1p2p的概念
P2P是peer-to-peer的缩写,peer在英语里有“(地位、能力等)同等者”、“同事”和“伙伴”等意义。这样一来,P2P也就可以理解为“伙伴对伙伴”的意思,或称为对等联网。目前人们认为其在加强网络上人的交流、文件交换、分布计算等方面大有前途。
简单的说,P2P直接将人们联系起来,让人们通过互联网直接交互。P2P使得网络上的沟通变得容易、更直接共享和交互,真正地消除中间商。P2P就是人可以直接连接到其他用户的计算机、交换文件,而不是像过去那样连接到服务器去浏览与下载。P2P另一个重要特点是改变互联网现在的以大网站为中心的状态、重返“非中心化”,并把权力交还给用户。 P2P看起来似乎很新,但是正如B2C、B2B是将现实世界中很平常的东西移植到互联网上一样,P2P并不是什么新东西。在现实生活中我们每天都按照P2P模式面对面地或者通过电话交流和沟通。
即使从网络看,P2P也不是新概念,P2P是互联网整体架构的基础。互联网最基本的协议TCP/IP并没有客户机和服务器的概念,所有的设备都是通讯的平等的一端。在十年之前,所有的互联网上的系统都同时具有服务器和客户机的功能。当然,后来发展的那些架构在TCP/IP之上的软件的确采用了客户机/服务器的结构:浏览器和Web服务器,邮件客户端和邮件服务器。但是,对于服务器来说,它们之间仍然是对等联网的。以email为例,互联网上并没有一个巨大的、唯一的邮件服务器来处理所有的email,而是对等联网的邮件服务器相互协作把email传送到相应的服务器上去。另外用户之间email则一直对等的联络渠道。当然但是过去的5年里,互联网的发展至少从表面上远离了P2P,互联网上绝大部分的节点也不能和其他节点直接地交流。Napster正是唤醒了深藏在互联网背后的对等联网。Napster的文件共享功能在局域网中共享目录也是再平常不过的事情。但是Napster的成功促使人们认识到把这种“对等联网”拓展到整个互联网范围的可能性。当然,在许多人的眼中,Napster并不是纯粹的P2P,它仍然需要一个处于中心协调机制。
事实上,网络上现有的许多服务可以归入P2P的行列。即时讯息系统譬如ICQ、AOL Instant Messenger、Yahoo Pager、微软的MSN Messenger以及国内的OICQ是最流行的P2P应用。它们允许用户互相沟通和交换信息、交换文件。用户之间的信息交流不是直接的,需要有位于中心的服务器来协调。但这些系统并没有诸如搜索这种对于大量信息共享非常重要的功能,这个特征的缺乏可能正 是为什么即时讯息出现很久但是并没有能够产生如Napster这样的影响的原因之一。
另外一个可以归入P2P是拍卖网站譬如eBay,人们在总结eBay的模式的时候用了C2C,是不是和P2P有一点类似?eBay就是一个将人们联系的和交易物品的社区,用户可以方便的搜索其他用户叫卖的商品。eBay提供了一些使得交易得以顺利进行的服务,但是交易是直接在用户之间进行的。如果将“交易”的概念推广,C2C就是P2P的一个特例,这里人们互相交换的是商品。
但如果仔细深究的话,Napster和即时讯息在赋予用户之间直接交流的能力、eBay使用户可以直接交易的同时,却破坏了服务器端的那种自互联网出现之初就存在的对等联网思想,因为它们都需要有一个位于中心的服务器来协调,而不是分布在世界上不同地方的、对等联网的许多服务器。这也正是诸如Gnutella和Freenet不断的宣称它们创造了“纯粹”的P2P,完全没有中心服务器的P2P服务。

概要设计
1概要设计阶段的主要任务
①系统分析员审查软件计划、软件需求分析提供的文档,提出最佳推荐方案,用系统流程图,组成系统物理元素清单,成本效益分析,系统的进度计划,供专家审定,审定后进入设计。
②确定模块结构,划分功能模块,将软件功能需求分配给所划分的最小单元模块。确定模块间的联系,确定数据结构、文件结构、数据库模式,确定测试方法与策略。
③ 编写概要设计说明书,用户手册,测试计划,选用相关的软件工具来描述软件结构,结构图是经常使用的软件描述工具。选择分解功能与划分模块的设计原则,例如模块划分独立性原则,信息隐蔽原则等。
2概要设计的过程
概要设计要先进行系统设计,复审系统计划与需求分析,确定系统具体的实施方案;然后进行结构设计,确定软件结构。
3概要设计的原则
①将软件划分成若干独立成分的依据。
②如何表示不同的成分内的功能细节和数据结构。
③如何统一衡量软件设计的技术质量。
4系统功能分析
预测开发的点对点聊天和文件传输系统达到的功能如下:
1、服务器端服务
2、客户机服务
3、上网服务
4、点对点实时信息传输








目   录
第一章  开发背景 3
1.1P2P的概念 3
1.2P2P的思想溯源 5
1.3P2P内容转移到“边缘” 7
1.4重新解读P2P 9
第二章  开发环境及实现技术 12
2.1开发环境 12
2.2开发工具简介 12
第三章  系统设计 14
3.1概要设计 14
3.2详细设计 15
第四章  系统的实现 17
4.1主界面的实现 17
4.2点对点聊天模块的实现 20
4.2.1服务器端子模块的实现 20
4.2.2客户端子模块的实现 23
4.3点对点文件传输模块的实现 26
4.3.1服务器端子模块的实现 26
4.3.3客户端子模块的实现 31
4.4上网功能模块的实现 35
设计心得 38
参考文献 39

推荐资料