【问题标题】:Does libcurl able to send a http message over UDP?libcurl 是否能够通过 UDP 发送 http 消息?
【发布时间】:2014-09-05 17:12:24
【问题描述】:

我开发了一个进行参数跟踪的程序。当参数值更改时,我想通过 通过 udp 的 http 消息通知服务器。

我想为此使用 libcurl。 libcurl 能否通过 UDP 发送 http 消息?

【问题讨论】:

  • 您在这里谈论的是不同的协议层。 http 是基于TCP/IP 的协议,其中UDP 故意错过了TCP 部分!虽然 libcurl 似乎是support UDP.
  • libcurl 支持基于 UDP 的协议 TFTP 的 UDP,而不是 HTTP。
  • @DanielStenberg THX 进行澄清。很高兴知道!

标签: c++ c curl udp libcurl


【解决方案1】:

不,它没有。对于 HTTP,libcurl 仅支持 TCP 或 Unix 域套接字。将来可能会添加一些内容。

(libcurl 支持一些其他协议的 UDP 传输。)

【讨论】:

  • 尝试通过 UDP 发送 HTTP 消息不是问题吗?不会有任何东西控制传输,根本没有响应。
  • @DanielStenberg 是否可以使用 libcurl 发送 UDP 消息(不是 http 消息)?
  • 我发现这个答案的措辞具有误导性。在这个问题的背景下,这是有道理的;但人们可以很容易地从该答案中假设 cURL 不支持任何东西,但 HTTP over TCP。
  • 我现在想澄清一下,现在它也支持基于 unix 域套接字的 HTTP! =)
  • 好举动,我不知道 UNIX 套接字;这可能有用。感谢您的仔细检查!
【解决方案2】:

理论上,HTTP 可以在与 TCP 不同的协议上使用(这种情况在 RFC2616 中提到),但它需要是一个可靠的协议,即提供有保证的传递的协议,必须保持消息的顺序并且必须检测重复。普通 UDP 不提供这些东西,因此不可能在普通 UDP 上使用 HTTP,因此 libcurl 不提供它。

如果您对语法接近 HTTP 但支持 UDP 的协议感兴趣,请查看用于 VoIP 的 SIP。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-17
    • 2016-12-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多