【问题标题】:Use http persistent connections instead of sockets使用 http 持久连接而不是套接字
【发布时间】:2016-04-19 00:13:51
【问题描述】:

我遇到桌面应用程序 (c#) 客户端需要从服务器接收连接的情况。为了避免强制客户端在其 NAT 中打开端口,有人建议改用客户端发起的 http 持久连接。我不确定这是不是正确的解决方案,但它似乎有点滥用这个 http 扩展。这个解决方案可以吗,还是我应该研究一下更好的替代方案?

【问题讨论】:

  • 要通过 NAT 接收入站连接,必须在 NAT 上打开一个端口并映射到目标 PC。如果在 NAT 上启用了 uPNP,则目标应用程序可以通过编程方式打开和映射端口,否则 NAT 管理员必须打开端口。另一种选择是改为建立出站连接。它不必位于 HTTP 端口(尽管这是最常用的端口,因为大多数 NAT/防火墙允许到端口 80 的出站连接以允许 Web 浏览器流量),并且接收服务器不必是 HTTP 服务器.
  • *护脸,对。我可能想多了
  • 顺便说一句,您的评论可以作为答案

标签: sockets http nat


【解决方案1】:

要通过 NAT 接收 入站 连接,必须在 NAT 上打开一个端口并映射到目标 PC 的 IP 地址。如果 NAT 上启用了 uPNP,则目标应用程序可以通过编程方式打开和映射端口,否则 NAT 管理员必须打开端口。

另一种选择是改为建立 出站 连接。它不必在 HTTP 端口上(除非 NAT 被管理员锁定),尽管这是最常用的端口,因为大多数 NAT/防火墙允许到端口 80 的出站连接以允许 Web 浏览器流量。接收服务器不必是实际的 HTTP 服务器。

【讨论】:

    猜你喜欢
    • 2010-12-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-12
    • 1970-01-01
    • 2014-01-12
    相关资源
    最近更新 更多