admin管理员组

文章数量:1551732

BitTorrent 想必大家应该都不陌生,中文名叫做“种子”。

“种子”到底是什么?我一直不太清楚。在写这个项目之前,我对“种子”的认识停留在使用层面。

当我想找一个资源的时候,我会搜索 xxx 种子,一般会在一些非常不知名的小网站里面获取到以 .torrent 结尾的种子文件,然后使用迅雷或者 uTorrent 这样的下载器来下载。

如果迅雷有一点速度,哪怕几 kb,那么大概率我充个会员就搞定了。这个软件就是这么的恶心,不用有时候又没办法,像极了人生。

其他下载器比如 uTorrent 的话就一切随缘了,有些资源非常快,有些资源非常慢,有些一开始慢后来快。

这些问题是怎么回事?有没有改进的办法?在读 Jesse Li 的 Building a BitTorrent client from the ground up in Go 之前,我从没想过。

BitTorrent(BT)

Jesse Li 的博客图文并茂,讲述了如何用 Go 开发一个 BT 的下载器。内容涉及到 BT 协议以及下载器的代码设计,思路清晰,值得一读。

对于喜欢动手的朋友,可以先关掉这篇博客,参考 Jesse 的代码尝试自己写一个 BT 下载器。写完以后再回来,对比我用 Deno 开发的下载器,相信会有不一样的收获。

我们先来看一下 BT 是什么。

Tip
BT 一直在演进,新的功能有 DHT,磁力链接等,这里我们关注早期版本的 BT。

BT 是一个协议,和 HTTP, FTP 一样,是一个应用层的协议,这个协议被设计用来实现 P2P(Peer to Peer) 下载。

P2P 我想大家都很了解,中文翻译为点对点,不仅可以用来下载,还可以用来金融

本文标签: 下载器tinyTorrentDenoBitTorrent