异步http客户端库和glib事件循环
Asynchronous http client library and glib event loop
我正在寻找一个具有特定需求的异步http客户端库:
- 必须有可能将其实现为glibmm源
- 必须是单一威胁
- 必须有lgpl, bsd, mit或类似的许可证
为了将其实现为glibmm源,必须能够访问它的文件描述符,创建Glib::PollFD对象,这样就可以了。
我一直在看几个库,它们都有一些问题:
- libcurl,几乎可以做我想做的,在多源API中它有一个curl_multi_fdset函数,它返回fd_set的。问题是,我无法弄清楚如何将fd_set转换为一个或多个Glib::PollFD的
- Poco,有一个HttpSessionClient返回istream,我找不到一种方法来做解锁读取。
- Boost::Asio要求使用io_service作为事件循环。
有谁能克服我在这些树库中看到的问题,或者建议替代库吗?
Glib::PollFD::PollFD(int fd)是您想要的构造函数。fd_set就是一个整数fds的集合。"set"这个词是在数学意义上使用的,即在一个集合中没有fd可以出现一次以上,因此他们不把它称为数组或列表。fd_set只是一个固定大小的缓冲区。通过创建一个fd_set并添加一些fds来尝试它,然后在调试器中查看它,或者直接将其以十六进制格式转储。
这是异步编程中一个常见的模式,你需要连接两个异步事件循环。虽然可以使用超时轮询两个循环,但通常最好从一个事件循环中获取原始数据,并将它们添加到
相关文章:
- Android NDK传感器向事件队列报告奇怪的间隔
- 从文本文件中读取时钟时间和事件时间并进行处理
- WMI检测进程创建事件-c++
- EvtExportLogneneneba API正在将远程计算机的事件日志保存到远程PC本身.如何将其保存到主机
- 处理闪烁窗口事件
- C++Builder中的OnClick事件签名存在问题
- 跟踪滚动条上的鼠标事件
- 什么是事件表 (wxWidgets)?
- 如何在 MFCaptureEngine 中获取"Camera removed"事件
- 给定顺序中的事件处理
- 当服务中的事件被触发时,如何将响应从服务发送回客户端?
- 在 C++/CLI 中将 .NET 事件从一个 DLL 引发到另一个 DLL
- 如何创建事件驱动的 SDL2 应用程序
- Windows 进程间同步类似事件?
- 如何从C++端挂接到 QML 项的 onClick 事件
- 如何通过多类"Union variable" (sfml) 使用轮询事件
- 如何在Qt 4.8中阻止/忽略/丢弃早于特定超时的用户输入事件
- C++ 信号和插槽不工作:插槽不响应事件
- 禁用Qt中的Glib事件循环-Qt_NO_Glib未生效
- 异步http客户端库和glib事件循环