从NAT后面建立对等连接

时间:2019-12-18 08:55:01

标签: c++ udp xmpp p2p nat

我需要在不创建自己的服务器的情况下为自己的客户端之间通过Internet进行自己的peer-to-peer UDP或TCP通信提供一些常规方法。

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

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

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

如果顺序正确,那么我需要执行哪些特定的操作来解析唯一地址,然后建立UDP或TCP连接?在c ++上怎么做?

1 个答案:

答案 0 :(得分:3)

您的情况接近WebRTC:对等方需要一种方法:1)互相发现(“信号发送”),2)必要时通过NAT建立直接连接。 (眩晕/翻身)

请参阅此WebRTC infrastructure overview作为开始,并在以后询问更具体的后续问题。