我如何制作自己的P2P软件?

时间:2010-04-20 09:15:00

标签: p2p

我怎样才能制作自己的napster?哪些库是这些p2p程序使用的?我不太熟悉套接字编程的概念。你能用Qt4制作p2p程序吗?

自从Napster时代以来,我一直在想这个问题。

你怎么会创造下一个“bitorrent”?这是通过使用类似的套接字库?

p2p技术的最新成果是什么?有新闻网站吗?什么是p2p的未来发展?

5 个答案:

答案 0 :(得分:14)

P2P或Peer-to-Peer是一种非常难以创建的程序,主要是因为它的结构非常好。大多数互联网应用程序都是Client-Server,这是因为只要拥有一个你知道可以连接的固定服务器就可以解决很多麻烦。在一天结束时,这或多或少都是Napster所做的,它只是索引文件并说明谁正在托管它们。

创建P2P软件的另一个问题是,即使你创建了一堆虚拟计算机,也可以自己开发它,很少有同行可以测试。你会发现很难测试它缩放到00的用户。

首先,您需要学习使用合适的语言进行编程,例如C ++或C#,可能只是将其作为控制台应用程序来学习该技术。

接下来,了解如何使用文件。如果你不能保存东西就没那么多了。

接下来的网络。从客户端 - 服务器设置开始,只是为了掌握传输文件。制作一个提供文件的服务器应用程序和一个下载它的客户端应用程序。然后开始将其扩展到一个服务器,为许多客户端提供文件。

最后一步是合并客户端和服务器,以便当对等端下载更多文件时,它可以开始成为服务器并让其他客户端从中下载。

如果您愿意,现在您可以考虑使用GUI。

答案 1 :(得分:7)

当你有很多人共享文件时,点对点共享Napster的工作方式才有意义。这有点像鸡蛋和鸡蛋的问题,但这一切都归结为:没有人使用网络,没有人使用。社交网络等也是如此。

话虽如此,Qt4确实包含一个支持UDP和TCP的网络模块,这是通过Internet进行通信的基础。有可用的文档和示例代码here

至于你的上一个问题:我认为P2P的未来充满痛苦和痛苦。大内容是p2p网络最常用的“功能”之后:共享音乐和电影。您的意见可能会有所不同。

答案 2 :(得分:3)

我找到以下链接 - http://en.wikibooks.org/w/index.php?title=The_World_of_Peer-to-Peer_(P2P)/Building_a_P2P_System

它还没有完整,但会让你知道在设计或创建自己的P2P网络时应该考虑什么。

答案 3 :(得分:2)

如果我是你,我会下载非常受欢迎的P2P程序(如Frostwire)的源代码。 sourceforge上有一堆源代码。没有什么比在一个完全正在运行的项目中看到所有内容如何组合在一起更好的了。功能齐全的代码非常适合学习。

http://sourceforge.net/projects/frostwire/

http://shareaza.sourceforge.net/

一旦你看到前方的艰巨任务......你可能不想再这样做了。我只是快速搜索了一些比较流行的源代码,但Frostwire可能是Limewire之后最常用的。当我警告他们关于P2P(他们的孩子没有下载Linux ISO)时,我已经将它从成千上万的客户机器上删除了:))

哦......我刚注意到了这个日期。好吧,我已经输入了这个,如果你曾经开始研究这个项目我肯定你还在继续研究它:)

答案 4 :(得分:0)

... Peer 2 Peer


GUI当然可以在Qt中开发(正如您所计划的那样)。

对于后端p2p网络处理,请查看:

  

您可能还想看一下:

  

古德纳克!!