
我正在按照以下方法用 C++ 构建一个 BitTorrent 客户端https://wiki.theory.org/BitTorrentSpecification。
我能够成功从同伴处下载片段。我有几个关于上传的问题。
- 我知道当我们第一次向跟踪器发出公告时,客户端就会成为跟踪器对等列表的一部分,但是其他对等体如何知道在连接到我的客户端时要连接到哪个端口?
- 连接到对等点后,我是否必须继续监听对等点?以防它想要请求一些数据或发送其他消息。
- 我还应该监听与其他想要从我的客户端下载数据的对等点的连接,我的假设正确吗?
答案1
- 端口信息应该是公告的一部分。
- 不是。您发起连接。对等端会回答您的请求,但它不会主动提供所有信息,因此您不必听取它。
- 是的。严格来说,如果您只想下载而不想上传,则不必这样做,但大多数其他客户端会很快注意到这一点,如果您不提供任何回报,它们会拒绝让您从他们那里下载。
在 torrent 圈子里,免费使用是被强烈反对的。