如果 P2PSearcher 出现不能连接服务器或者不能搜索的问题,很可能是电脑上启动了迅雷或电驴类的软件,刚好占用了 P2pSearcher 的端口,因此它没法连接网络。
相关知识:
1、卸载计算机系统中已安装的"迅雷"和"电驴"软件,再此重新安装一下即可解决,另外如果再次安装还是出现无法连接eMule网络的现象,就再次继续卸载已安装的迅雷和电驴,下载一个新版本的继续安装,总要有一次是可以成功的。
2、P2pSearcher小工具是可以在WIN7下和XP下任意运行的,这里可以肯定的说明下此工具没有系统的兼容性问题。
扩展资料:
P2Psearcher (p2psou)是一款小巧快捷的电驴资源搜索软件,基于先进的P2P搜索技术,可在瞬间搜遍全球ED2k网络资源,简单便捷的搜索到ED2K网络上共享的海量影音娱乐,学习资料等资源。搜索出来的资源可以用电驴或者迅雷下载工具下载,非常方便。
支持各种资源的搜索,包含影视,,文字,音乐,种子等各种文件类型。搜索出来的资源可以用电驴或者迅雷下载工具下载,非常方便。
参考资料来源:百度百科-p2psearcher
P2P文件共享系统的实现分析摘 要:系统Qt P2P file-sharing System (QPS)是利用Qt开发的P2P文件共享系统。QPS采用P2P中的混合模式,此模式结合了集中目录式和纯分布式两者的优点,在实现上具有简易性,在共享度上具有很强的扩展性。QPS的最大特点是加入了策略。这种策略能限制一些用户只下载而不共享资源的行为。策略的引入是为了鼓励用户与其他人分享自己的资源,而不仅仅是索取。入策略的QPS不仅能比较有效的限制只下载不分享的行为,而且对系统的寿命也有相当程度的提高。�
关键词:文件共享;P2P;策略;Qt��
C/S式架构造就了一批著名的门户网站,如雅虎,新浪等。这些网站容易受到黑客的亲睐后果是服务崩溃。C/S式架构只有一个服务器或服务机群,服务器一旦崩溃,它提供的服务也将停止。而P2P式架构却正好相反,它没有服务器(相对C/S架构而言)或服务器是分布的,一个服务器崩溃了,其他的服务器照样能提供服务。这种架构能有效的抵抗DDOS攻击,它的安全性有很可靠的保障。另外,采用P2P式架构的网络资源共享系统不但大大的减轻了单个服务器的负担,而且也提高了很大的安全性。人们也可以通过这种架构建立自己的信息天地,与其他的人分享自己的资源。�
1 系统设计实现的重点与难点�
系统QPS在Linux上用Qt开发,系统设计原理和策略都并不复杂,但这不代表系统的实现也是简单的。对于系统的整个实现来说,有三个地方是最重要的,也是比较难的。先介绍系统运行流程:�
(1)Group-leader peer运行,并连接上其他的任意某个Group-leader peer;�
(2)Ordinary peer连接(登陆)某个Group-leader peer,并把所资源表发送个Group-leader peer;�
(3)Group-leader peer将已连接的其他PC的资源表发送给此ordinary peer;�
(4)Ordinary peer浏览资源并选择下载或则向Group-leader peer发送资源搜索请求;�
(5)Group-leader peer将资源表中符合搜索的资源所在ordinary peer的IP发给请求ordinary peer,同时向其他以连接的Group-leader peer发送搜索请求,其他的Group-leader peer将资源IP反馈,收到反馈后再发送个搜索ordinary peer;�
(6)Ordinary peer从获得的资源表中选择下载,即与另一个ordinary peer建立连接,下载完毕后断开连接。�
从上面的过程可以看出,系统共有三个通信链路,分别是:�
(1)Group-leader peer与Group-leader peer之间的通信;�
(2)ordinary peer与Group-leader peer之间的通信;�
(3)ordinary peer与ordinary peer之间的通信。�
三个通信链路上的信息都是不一样的。因此,必须给三个通信链路都制定相应的通信协议。QPS不是多线程的,因此对每个通信套接字来说,都必须知道对方的套接字。这在实现上也存在一定的难度,这个是由开发工具而带来的。最后一个难度是NAT穿透问题。为了解决不同局域网间的通信,这个问题的解决是必须的。由于开发硬件环境的限制,现版本的QPS本没有考虑这个问题。也就是说,实现的版本是局域网内的。在此,需要指出的是,NAT的问题并没有违背QPS的目的。首先,QPS只是当前的一个版本,以后可能会进一步完善;再者,在将来IPv6的推出就自然而然的解决了不同局域网内通信这一问题。�
2 实现过程�
针对上节的三个通信链路,必须要设计好三个通信协议。先看下QPS中需要传输的各种信息。如图1:�
通信链路上的信息表示的意义如下:�
Download request:文件下载请求信息;�
File data:文件数据;�
Local share list:本地的共享信息列表,包括文件名,文件大小,下载次数等;�
Share list:Group-leader peer上的共享信息列表;�
Search message:文件搜索信息,包括文件名及搜索跳数;�
Search result:返回的搜索结果,包括文件名和文件所在IP;�
Other leader msg:其他leader peer上的信息,包括连接ordinary peer数目和文件数量等;�
Local share msg:和other leader msg一样。�
(1) 数据结构定义。�
为了实现以上三个通信协议,首先规定了一些数据结构,以区别不同的通信信息。个种数据结构如下:�
#define FILEINFO 1//文件信息�
#define SHAREINFO 2//共享列表信息�
#define DOWNLOAD3//下载请求信息�
#define SEARCH4//文件搜索信息�
#define LEADERINFO 5//Group-leader peer信息�
#define FILEDATA6//文件数据�
#define MAX_SIZE (204810) //文件数据的大小�
typedef struct�
{�
int type;//表示是何种信息,下同�
ULONG size; //文件大小�
ULONG downloadTimes; //文件下载次数�
char name〔100〕; //文件名�
}FileMsg; //文件信息结构体�
typedef struct�
{�
int type;�
ULONG size;//文件大小�
ULONG downloadTimes;//文件下载次数�
char ip〔20〕;//文件所在IP�
char name〔100〕;//文件名�
}ShareMsg; //共享信息列表结构体�
typedef struct�
{�
int type;�
ULONG size; //文件大小�
ULONG seek;//文件数据块在文件中的位置
char name〔100〕;//文件名�
}DownloadMsg;//下载请求结构体�
typedef struct�
{�
int type;�
ULONG tips; //文件搜索跳数�
char name〔100〕; //文件名�
}SearchMsg; //文件搜索结构体�
typedef struct�
{�
int type;�
ULONG connectedNumber;//连接数量�
ULONG fileNumber; //文件数目�
char ip〔20〕;//Group-leader peer的IP�
}LeaderMsg;//Group-leader peer信息结构体�
typedef struct�
{�
int type;�
ULONG seek;//文件数据块在文件中的位置�
ULONG bytes; //buff中的实际字节数�
ULONG size; //文件大小�
char name〔100〕;//文件名�
char buff〔MAX_SIZE〕;//文件数据�
}FileData;//文件数据结构体�
(2)信息传输函数的声明。�
void uploadShareList(const FileMsg& file);//upload local share list to leader�
void download(const DownloadMsg& msg);//download file data�
void search(QString fileName, UINT tips);//search a file�
void downShareList();//download other peers' share list from leader�
void otherLeadersInfo();//get other leaders' info through the connected leader�
void searchBack();//seach result back, read it�
void uploadFile(int sock);//upload the file data that downloader requested�
void receiveList(int sock);//receive peer's share list�
void sendShareList(ComSocket socket); //send share list to peer -> socket�
void sendOtherLeaderInfo(ComSocket socket);//send other leaders' info to peer�
void sendLeaderInfo(ComSocket socket);//send leader's info to some leader�
void search(int sock);//received search request from peer�
void remoteSearch(SearchMsg msg);//send search to logoned leader�
void leaderSearch(int sock);//received leader's search request�
void searchBack();// received search result from leader�
以上函数是根据上面的数据结构而声明的。每个函数都有一个对应的数据结构。这些函数是整个系统的核心。�
设计了解决通信问题的数据结构和函数的声明后,剩下需要做的便是具体编码,将声明的函数加以实现,最后测试其是否正确便真正意义上的解决了上面叙述的难点问题,也是核心问题。�
(3)用户接口。�
QPS只给用户提供了简单的 *** 作接口,但我相信这是足够的。具体的用户接口如下:�
连接选择:让用户选择想要连接的Group-leader peer。�
上传数目设置:为了限制上传量,保障用户的系统资源(CPU,网络带宽等)。�
搜索设置:让用户输入文件名及搜索跳数。�
下载选择:双击文件名即可下载该文件。�
共享目录设置:让用户选择想要共享的目录�
下载目录设置:让用户选择下载文件放置的路径�
除了上述用户可以直接 *** 作的接口外,还有些接口是用户不可 *** 作的。这些接口是用来显示当前系统的运行情况。比如,下载显示用来显示当前正在下载的文件,包括下载速率,已下载文件的大小等;而下载完成列表显示的则是系统自启动以来下载的所有文件列表。对于许多的其他文件共享系统来说,它们都有丰富的接口,尽可能的让用户使用更简便。QPS的设计和实现的主要目的是在原理和策略上挖掘网络资源,使得网络资源能够尽可能的广泛共享。因此,在界面上只做了基本的接口。�
(4)配置文件。�
为方便用户的各项设置,QPS中也有许多的配置文件。这些配置文件在系统运行时会被自动的读取,相应的变量会被赋值。用户改变某个设置后,这项设置同样会被写入到配置文件中,并在下次运行时被读取。这类配置文件典型的是下载目录和共享目录的设置。系统运行时,会找到当前共享目录路径,并获取该目录下文件信息。还有一类配置文件是可作为用户输入的文本文件。比如leadersdat这个文件就是用来让用户输入可以选择连接的Group-leader peer IP的。记录文件被下载次数的配置文件对用户来说是不可更改的,这是为了防止用户恶意修改此文件以获得totalValue,达到少共享文件就可以下载大量文件的目的。�
文件共享系统QPS是在上面叙述的四点上一步一步加以实现的,其中也有考虑不全的地方,反反复复经过了几次修改。在提供基本功能上,工作重点都放在协议的实现上。由于Qt开发平台没有对网络程序提供丰富的接口,许多的接口不得不自己一步一步实现并测试正确性。在这点上,对QPS的实现确实用相当大的影响。当然,这带来的好处是二次开发比较简便,因为上层的接口都是已经实现了的,正确性很高。�
参考文献�
〔1〕�陆正中,马进德,石正贵等JBuilder 9软件开发项目实践〔M〕北京:清华大学出版社,2005:240-261〔2〕�James FKurose,Keith WRoss。计算机网络——自顶向下方法与Internet特色〔M〕北京:高等教育出版社,2005:136-145�
〔3〕�Robert Flenner等,Java P2P技术内幕〔M〕 北京:电子工业出版社,2003:200-235�
〔4〕�许斌 JXTA——Java P2P网络编程技术〔M〕 北京:清华大学出版社,2003:1-256�
〔5〕�Oaks,Traversat,Gong JXTA技术手册〔M〕 北京:清华大学出版社,2004:23-78看这个游戏由什么发售,现在一般主流游戏除了steam还有育碧的uplay ,EA的origin等等,如果是steam的游戏的话一般情况下都是用的steam服务器联网,个别游戏会用p2p联机概括的说,就是从你得手机客户端(或者PC客户端) 到 你的NVR走得是P2P模式的流量转发, 能够穿越你家里的NAT以及运营商BRAS上的NAT。
一般的网络是这样,IPC---NVR---homeGateway(NAT第一次)--------BRAS(NAT第二次)------骨干网-----NVR服务器(NVR提供商的服务器暴露于Internet,用于P2P地址翻译与NAT穿透)----- 手机网络----手机
上面是刚开始的通信模式,等两端都打通NAT后, 通讯模式是这样。
IPC---NVR---homeGateway(NAT第一次)--------BRAS(NAT第二次)---骨干网--手机网络----手机
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)