我想让用户可以轻松地将其 NAT 上的端口转发到我的 C++ 应用程序的本地计算机。我想让这项工作在 OSX 和 Windows 上运行。Linux 将是一个很大的好处,但 Linux 用户可能更愿意手动转发端口,所以这不是一个问题。LGPL 类型代码是可以的,但我不能使用任何直接 GPL 的东西。
我很想听听任何人在这方面的任何想法或经验,但我想到了一些具体的问题:
我想让用户可以轻松地将其 NAT 上的端口转发到我的 C++ 应用程序的本地计算机。我想让这项工作在 OSX 和 Windows 上运行。Linux 将是一个很大的好处,但 Linux 用户可能更愿意手动转发端口,所以这不是一个问题。LGPL 类型代码是可以的,但我不能使用任何直接 GPL 的东西。
我很想听听任何人在这方面的任何想法或经验,但我想到了一些具体的问题:
MiniUPNP 由至少一个 bittorrent 客户端(传输)使用,应该可以正常工作。
OS X 和 Windows 上的 Bonjour 可用于与支持 uPNP 或 NAT-PMP 的路由器进行端口映射。我没有使用过API (DNSServiceNATPortMappingCreate),但我已经成功地在 NAT-PMP 路由器后面的 Windows 和 OS X 上发布了广域服务。我不确定您的 Windows 用户是否想要安装 Bonjour(尽管如果他们使用 iTunes 或 Safari,他们可能已经安装了 Bonjour)来使用您的应用程序,但 OS X 支持应该不是问题。