如何实现UDP打孔?

问题描述

所以我想在 Golang 中创建一个 p2p 文件共享应用程序。我正在运行一个全球可访问的服务器,目的是共享 2 个客户端的 IP 地址。当两个客户端都有对方的IP地址时,他们可以使用打孔来共享文件

但是我在打孔部分遇到了一些问题。当我向服务器发送请求时,服务器将存储客户端的地址,稍后它将将此地址转发给其他客户端。问题是存储在服务器上的地址与用于打孔的地址不同。假设存储在服务器上的地址是第一个客户端的 NATrouterIP1:PORT-A 和第二个客户端的 NATrouterIP2:PORT-B。但是当我使用第一个客户端向第二个客户端发送消息时,它显示该消息是从 NATRouterIP1:PORT-C 发送的。 PORT-A 通常保持在 65000 左右。但是这个 PORT-C 是 1024。为了我的应用程序工作,这些端口应该是相同的。有人能解释一下是什么问题吗?

Github:https://github.com/killtheverse/go-send

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)