
目 录
第一 章 开发背景 ..........................................................................................................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

第一章 开发背景
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.2p2p 的思想溯源
回到互联网的本质。
如果回顾一下,我们会发现在 WWW 出现伊始 P2P 就是互联网的本质特
征之一。人们各自建立网页、互相做链接,人们上网是沿着链接冲浪。那
时的 web 是真正的“网”(web)。但是当 Yahoo!和 Lycos 建立了搜索引擎
和门户站点后,人们上网的方式被改变了,人们从此到一个地方去获取所
有的信息。记得新浪曾经有一段时间说它们是“目标站点”模式,但是如
果多问一句,现在人们一条一条地阅读新浪的新闻,在头脑中还有一个“网”
的概念吗?最大的问题是,这些站点控制了信息的流动、充斥了过时的信
息、阻碍了真正的交流,或者对于很多人来说,另外还有太多的广告。 P2P
就是把控制权重新还到用户手中去。人们通过 P2P 可以共享硬盘上的文件、
目录甚至整个硬盘。这种能量是非常令人激动的,那些费心存储在自己的
硬盘上的东西肯定是我们认为最有价值,所有人都共享了他们认为最有价
值的东西,这将使互联网上信息的价值得到极大的提升。是不是有一种和
WWW 刚刚出现的时候同样的激动呢?有一点。
因为每个 Peer 都代表了其后的人,基于自组织的网上社区也正在显现。
与门户站点从上而下建立社区的方式不同,人们将以自发的方式形成社区。