3

我正在使用 C++ 开发一个项目,基本上,我需要能够在不同平台(Win、Mac、Linux 等)上通过 https(或可能是 sftp)短暂地(比如 1 次使用)托管单个文件可能的)。该库需要与我的 LGPL 许可证兼容,并且最好需要与路由器后面的广域网一起使用。如果没有,我将不得不要求我的用户手动进行端口转发。

我意识到这是一种奇怪的想法,NAT Traversal + HTTP,但我只是想知道是否有人知道一个好的库或一组库可以做到这一点?如果没有,我可能不得不自己写。

4

1 回答 1

2

您可以查看GNU libmicrohttpd(LGPL 许可证),这是一个用于嵌入到应用程序中的跨平台 HTTP 服务器库。上手相当容易。

对于端口转发部分,您可以查看MiniUPnP(BSD 许可证),我没有使用过这个库,也不能保证它可以正常工作。

任何 UPnP 库都可以解决问题,基本步骤是:

  1. 在本地计算机上启动 HTTP 服务器
  2. 打开本地计算机上的端口
  3. 使用UPnP请求网关转发端口

如果第 2 步或第 3 步失败,您需要向用户提供如何操作的说明(将其发送到portforward.com)。

于 2012-07-16T07:53:06.247 回答