c++ - 如何在 udp 连接中绕过 NAT/防火墙

标签 c++ networking udp nat

我正在编写语音聊天应用程序,但问题是当客户端使用路由器防火墙阻止连接时

我用tcp连接解决了这个问题,但是用udp连接我不知道怎么解决这个问题

我通过这一步尝试udp洞

  1. 客户端A发送给(服务器)ip和用户名
  2. 客户端B发送给(服务器)ip和用户名
  3. (服务器)向客户端 B 客户端 A 发送信息——开始语音聊天
  4. (服务器)发送给客户端 A 客户端 B 信息——开始语音聊天

但是这个工作了一次,很多次都没有工作,我不知道为什么。 任何帮助。

最佳答案

您正在尝试的是 UDP 打洞。但是很少有具有对称 NAT 的路由器,打洞非常困难且不一致(如果可能的话)。在维基百科上阅读不同的 NAT,您将获得更多见解。

关于c++ - 如何在 udp 连接中绕过 NAT/防火墙,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13331489/

相关文章:

c++ - 如何自动化覆盖方法?

java - 从 java ServerSocket 到 iphone 的网络问题(仅在 3g 模式下)

http - 将 node.js 中的 UDP 套接字从应用程序传输到 HTTP

c++ - NAT 上的 UDP 失败

c++如何使用子类调用函数,具有父类(super class)指针

c++ - C++中如何获取executor的路径?

c++ - 根据指定的时间间隔将浮点值映射到函数

linux - AWS - 如何连接两个不同区域的两个 EC2 实例?

c - 在 TCP 上手动选择一个接口(interface)来发送数据

sockets - Flutter 中的 udp 套接字未收到任何内容