我正在使用 C++ 开发一个项目,基本上,我需要能够在不同平台(Win、Mac、Linux 等)上通过 https(或可能是 sftp)短暂地(比如 1 次使用)托管单个文件可能的)。该库需要与我的 LGPL 许可证兼容,并且最好需要与路由器后面的广域网一起使用。如果没有,我将不得不要求我的用户手动进行端口转发。
我意识到这是一种奇怪的想法,NAT Traversal + HTTP,但我只是想知道是否有人知道一个好的库或一组库可以做到这一点?如果没有,我可能不得不自己写。
您可以查看GNU libmicrohttpd(LGPL 许可证),这是一个用于嵌入到应用程序中的跨平台 HTTP 服务器库。上手相当容易。
对于端口转发部分,您可以查看MiniUPnP(BSD 许可证),我没有使用过这个库,也不能保证它可以正常工作。
任何 UPnP 库都可以解决问题,基本步骤是:
如果第 2 步或第 3 步失败,您需要向用户提供如何操作的说明(将其发送到portforward.com)。