C网络编程专题8P2P编程

[C#网络编程系列]专题八:P2P编程(转载:wwcnblogs/zhili/archive/2012/08/23/WebServer)引言:前面的介绍专题中有朋友向我留言说介绍下关于P2P相关的内容的,首先本人对于C#网络编程也不是什么大牛,因为能力的关系,也只能把自己的一些学习过程和自己的一些学习过程中的理解和大家分享下的,下面就进入正题——P2P(PeertoPeer)编程。一、P2P的介绍首先,现在大家熟知的BT、电驴、迅雷、QQ、MSN和PPlive等都是基于P2P方式实现的软件,并且对等联网(PeertoPeer,P2P)将是互联网的发展方向,因此对于P2P技术的了解显得非常的重要,下面就来介绍下P2P架构:在P2P技术之前,我们所有的网络应用都采用C/S或者B/S架构来实现的然而在之前C/S架构的应用程序中,客户端软件向服务器发出请求,服务器然后对客户端请求做出响应,在这种情况下,如果客户端越多,此时服务器的压力就越大。然而采用P2P技术实现的每台计算机既是客户端,也是服务器,他们的功能都是对等的。对于安装了P2P软件(如迅雷,QQ等)的计算机加入一个共同的P2P网络,网络中的节点之间可以直接进行数据传输和通信。1.1P2P架构和C/S架构的比较C/S架构有下面的缺点(其实上面的简单介绍中也讲到过):1.服务器负担过重。当大量用户访问C/S系统的服务器时,服务器常常会出现网络堵塞等现象,这时候,我们可能会通过增加投资提高服务器的硬件性能2.系统稳健性和服务器关联密切。指的是——如果服务器出现了问题时,整个系统的运行将会瘫痪(感觉是面向对象中经常强调的原则——低耦合原则)然而P2P具有下面的特点:1.对等模式P2P系统中的客户端能够同时扮演客户端和服务器的角色,使两台计算机之间能够不通过服务器直接进行信息分享(QQ中当好友在线的时候发信息时,相信此时是不需要经过服务器转发的,只有当给离线好友发送消息时,此时应该会先把消息发送到服务器端存储起来,当好友再次登录的时候,会和服务器进行连接,服务器会进行判断是不是给这个用户的信息来决定是否转发,QQ软件的实现属于混合型P2P结构的,这个会在后面的P2P系统分类中介绍。)注:括号中都是我个人的一些理解,如果有什么说错的地方请大家及时更正我,这样我会及时的更新以免误导大家,谢谢大家监督。2.网络资源的分布式存储在C/S架构中,所有客户端都直接从服务器下载所有数据资源,这样势必会加重服务器的负担,而P2P则改变了以服务器为中心的状态,使每个节点可以先从服务器上个下载一部分,然后再相互从对方或者其他节点下载其余部分。采用这种方式,当大量客户端同时下载时,就不会形成网络堵塞现象了。1.2P2P系统的分类使用P2P技术的系统分为两类:(1)单纯型P2P——没有专用的服务器。安装了P2P软件的各个计算机可以直接通信。(2)混合型P2P——有专用的服务器,此时的服务器一般叫索引服务器,此服务器与C/S架构下的服务器不同,在C/S架构下所有资源都存储在服务器中,所有传递的信息都要经过服务器,而在混合型P2P系统中的索引服务器仅仅起到协调和扩展的功能,资源不是全部存储在服务器上,而是分布在各个电脑上,安装了P2P软件的电脑开始全部和索引服务器连接,以便告知自己监听的IP地址和端口号,然后再通过索引服务器告诉其他与自己连接的电脑,每台计算机的连接和断开都通过服务器通知网络上有联系的计算机,这样就减轻了每台计算机搜索其他计算机的负担,但是信息的传递还是通过点对点的方式来完成(这里可以以QQ为例,当我们电脑上安装了QQ这类P2P软件时,安装了QQ这类软件的计算机就会加入一个P2P网络,并且登陆的时候都会与索引服务器建立连接,通过连接来告诉服务器自己的IP地址和端口号,当我们找一个好友聊天时,此时自己的计算机和好友的计算机都会与服务器端口连接,但是要互相发送消息,自己的计算机必须知道好友计算机的IP地址和端口号才可以通信,这样的工作正是通过索引服务器来告知对方的--指的是告诉自己的计算机好友的计算机的IP地址和端口号,告诉好友的计算机自己的IP地址和端口号,这样双方就可以不通过服务器直接通信了。)1.3主流P2P应用分类P2P网络应用大致可以分为三类——1.文件共享类,例如迅雷,B...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供参考,付费前请自行鉴别。
3、如文档内容存在侵犯商业秘密、侵犯著作权等,请点击“举报”。

常见问题具体如下:

1、问:已经付过费的文档可以多次下载吗?

      答:可以。登陆您已经付过费的账号,付过费的文档可以免费进行多次下载。

2、问:已经付过费的文档不知下载到什么地方去了?

     答:电脑端-浏览器下载列表里可以找到;手机端-文件管理或下载里可以找到。

            如以上两种方式都没有找到,请提供您的交易单号或截图及接收文档的邮箱等有效信息,发送到客服邮箱,客服经核实后,会将您已经付过费的文档即时发到您邮箱。

注:微信交易号是以“420000”开头的28位数字;

       支付宝交易号是以“2024XXXX”交易日期开头的28位数字。

客服邮箱:

biganzikefu@outlook.com

所有的文档都被视为“模板”,用于写作参考,下载前须认真查看,确认无误后再购买;

文档大部份都是可以预览的,笔杆子文库无法对文档的真实性、完整性、准确性以及专业性等问题提供审核和保证,请慎重购买;

文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为依据;

如果您还有什么不清楚的或需要我们协助,可以联系客服邮箱:

biganzikefu@outlook.com

常见问题具体如下:

1、问:已经付过费的文档可以多次下载吗?

      答:可以。登陆您已经付过费的账号,付过费的文档可以免费进行多次下载。

2、问:已经付过费的文档不知下载到什么地方去了?

     答:电脑端-浏览器下载列表里可以找到;手机端-文件管理或下载里可以找到。

            如以上两种方式都没有找到,请提供您的交易单号或截图及接收文档的邮箱等有效信息,发送到客服邮箱,客服经核实后,会将您已经付过费的文档即时发到您邮箱。

注:微信交易号是以“420000”开头的28位数字;

       支付宝交易号是以“2024XXXX”交易日期开头的28位数字。

笔杆子文秘
机构认证
内容提供者

为您提供优质文档,供您参考!

确认删除?