P2P文件传输

//老师要求写一个点对点的文件传输程序,在局域网内没有一个共同的服务器,任意两个计算机都可以相互传输文件。一开始理解的时候,认为各计算机是对等的,所以觉得和Server/Client模型没什么关系,结果什么资料都查不到。这才从定义入手,来搞清楚这个“点对点”到底是怎么回事,结果查下来,还是得用Server/Client模型

关于点对点技术的介绍(网络摘抄):

点对点即Peer-To-Peer,通常简写为P2P。所谓网络中的点对点,其实可以看成是一种对等的网络模型。P2P其实是实现网络上不同计算机之间,不经过中继设备直接交换数据或服务的一种技术。P2P由于允许网络中任一台计算机可以直接连接到网络中其他计算机,并与之进行数据交换,这样既消除了中间环节,也使得网络上的沟通变得更容易、更直接。

P2P作为一种网络的模型,它有别于传统的客户/服务器模型。客户/服务器模型一般都有预定义的客户机和服务器。而在P2P模型转并没有明确的客户端和服务器,但其实在P2P模型中,每一台计算机既可以看成是服务器,也可以看成是客户机。在网络中,传统上的客户机/服务器通讯模型中,发送服务请求或者发送数据的计算机,一般称为客户机;而接收、处理服务或接收数据的计算机称为服务器。而在P2P网络模型中,计算机不仅接收数据,还有发送数据,不仅提出服务请求,还有接收对方的服务请求。

//程序中所谓“服务器”并不是硬件中的服务器,而是接收、处理服务或接收数据的计算机,即完成接收任务的就需要有Server端。

在网络利用通讯程序进行通讯的任一计算机,在通讯之前,都需要侦听端口号,接受其他机器的连接申请,并在连接建立后,就可以接收对方发送来的数据;同时也可以向其他机器提出连接申请,并在对方计算机允许建立连接请求后,发送数据到对方。可见在网络中进行P2P网络通讯的任一计算机既是客户机,同样也是服务器。

程序的关键步骤就是实现信息在网络中的发送和接收。程序在处理数据发送和接收时采用不通的端口号,网络点对点通讯程序并不像客户端/服务器端模型程序那样,分成客户端程序和服务器端程序。它是集客户端程序和服务器端程序与一身。

你可能感兴趣的:(P2P文件传输)