0

首先,我想我需要说我还在学习 C++,如果这非常明显/简单,我深表歉意。

我正在尝试在我的 C++ 程序中使用 libevent 库(通过尝试查看示例文件夹中的代码并测试了一些)来使用 http 流。我想知道是否有人可以为我提供一个示例,说明我将如何连接到 URL,例如 live.domain.com,发送适当的标头,读取返回的数据并通过同一连接发送回数据......我不确定 libevent 是否有任何阻塞连接,但为了明确起见,我正在寻找非阻塞样本。

我为什么要这样做?

我正在使用一个 API,它要求你打开一个连接,除非出现错误,否则它会保持活动状态。它会定期向连接的客户端发送状态文本,直到它通过同一连接接收到带有 ID 的字符串。此时它开始发回有关给定 ID 的数据...我不完全确定在初始请求严格遵守之后通过同一连接发回数据,但这正是服务器所期望的,所以它会工作...如果我知道怎么做

提前致谢

4

1 回答 1

0

呸。鉴于这不是真正的 HTTP,我认为您不会对使用 HTTP 库感到高兴——即使您在经历了很多挫折之后今天让它工作,明天它也很容易被破坏。这太罕见了,不能成为受支持的功能。

但是......听起来它也很简单,您可以使用 libevent 打开一个原始 TCP 连接,手动发送一些看起来有点像 HTTP 请求的东西,然后从那里使用原始套接字处理它。无论如何,您都不希望 HTTP 库为您提供额外的东西(额外的传输/内容编码、代理支持、SSL、与其他协议版本的兼容性......)

就示例而言,请查看libevent book。特别是,看起来非常接近您想要的“Trivial HTTP v0 客户端”。祝你好运!

于 2011-09-18T00:49:03.947 回答