我有一台 PC 和一部手机,我正在尝试通过 3G 在两者之间建立双向通信。
在 PC 端,我可以完全控制 NAT。因此,我将特定端口上的传入通信端口映射到我办公 table 上的 PC。
然后我用我的特定端口发送到我们 PC 网络的外部 IP 地址。
我看到数据包到达了我的 PC,非常完美。所以现在我想从 PC 向手机发回通信。我通过“recvfrom”获得了地址和端口,然后执行 sendto 返回到我从中接收数据的地址和端口。
然而,手机没有接收到这些数据。我假设传入通信未被移动提供商网络上的 NAT 框重定向。
这是为什么?我想看到我已经从电话发起通信,我应该能够沿着那条路线返回以与电话通信?
那么,我该如何让它发挥作用呢?
任何想法表示赞赏!
最佳答案
好吧,我确实弄清楚了我做错了什么。我正在从电话与 PC 的端口“x”进行通信,然后尝试通过端口“y”以另一种方式返回。两种方式使用相同的端口允许进行通信:)
关于c++ - UDP NAT穿越,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4397837/