从 NAT 后面建立对等连接



我需要为我自己的客户端之间通过互联网进行点对点UDP或TCP通信提供一些通用方式,而无需创建自己的服务器。

我不能只使用 XMPP 进行通信,因为文件传输是必要的。

我是否正确理解了可能的操作顺序?

  • 连接到一些(或任何?XMPP 服务器,使用准备好的现有 XMPP 帐户
  • 搜索另一个连接到 XMPP 的我自己的客户端并连接到它。
  • 为每个客户端解析唯一的公共全球互联网 (IP?( 地址或 ID(如何?(
  • 在客户端之间交换这些地址
  • 通过与客户的 NAT 执行某些操作使直接连接成为可能
  • 使用接收到的唯一地址将客户端直接 p2p 连接到彼此
  • 断开与 XMPP 服务器的连接
  • 通过我自己的p2p连接进行通信

如果序列正确,我需要执行哪些特定操作来解析唯一地址,然后建立 UDP 或 TCP 连接?如何在 c++ 上做到这一点?


编辑。

我在这里找到了很好的答案:编程P2P应用程序

你的情况与WebRTC很接近:对等方需要一种方法来1(发现彼此("信令"(,2(如果需要,通过NAT建立直接连接。(眩晕/转弯(

首先,请参阅此WebRTC基础架构概述,稍后再提出更具体的后续问题。

最新更新