创建一个类似torrent的客户端让P2P全双工流发生

问题描述 投票:0回答:0

任务如题所示

关键部分是让 websockets 在知道各自的网络/互联网 ip 的两个对等点之间进行通信。

我对 Torrent 客户端应用程序的工作原理有一个粗略的了解,但是我对 ip/端口路由的了解不是很好,无法理解建立我的目标所需的所有含义。

会尝试恢复我要做的事情,并寻求你的帮助。

请想当然地假设每个对等点都知道他想要连接的网络 ip 地址。 我正在编写的客户端/应用程序将有一个 websocket 服务器来接受传入的连接和一个 websocket 客户端来连接到一个唯一的特定远程主机。对于本地网络,这样做没有问题,但是当涉及到连接 web 域中的两个或多个对等点时,我的知识显示出一些不足。一个 Torrent 客户端,就像“transmission”或“bittorrent”这样的几个肯定是将 websocket 服务器绑定到本地接口,用于路由流量的接口,比如说“192.168.1.10”,然后它们应该是能够接收来自本地网络外部的传入连接 - BitTorrent 客户端允许传入连接接受而无需修改任何内容,无需任何端口转发或任何其他魔法 - 它们只是开箱即用 - 我怎样才能获得相同的结果?更明确地说,我如何建立一个能够接受本地网络外部传入连接的 websocket 服务器?

至于 websocket 客户端我想应该没有特别的细节需要寻找,远程 web ip 地址只是客户端套接字应该知道的能够连接到的地址 - 如果我错了请纠正我。

找到一些带有 C++ 代码的 github repo 应该很好看,如果有的话(可能是一些过时的 bittorrent 客户端项目)

谢谢

[编辑] 我不知道,但传输项目是开放的,会看看它——在此期间,我们将不胜感激每一个帮助。

c++ sockets websocket p2p bittorrent
© www.soinside.com 2019 - 2024. All rights reserved.