跨平台方式在单线程中从多个连接读取数据
我的应用程序需要同时下载多个网页,并且由于在 Linux 中进行 epoll 编程的经验,我知道这在单个线程中是可能的。目前我使用 CURL 与 HTTP 交互,但是...
更新:发现了curl的多接口:http://curl.haxx.se/libcurl/c/libcurl-multi.html 我认为问题已解决(-;
My application need to download several web-pages simultaneously and i know this is possible in a single thread because of experience with epoll programming in linux. Currently i use CURL to interact with HTTP but...
update: Discovered the curl's MULTI-interface: http://curl.haxx.se/libcurl/c/libcurl-multi.html I think question is resolved (-;
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
跨平台的方式是使用POSIX规定的
select
或poll
。或者,更有效的是,您可以使用库。库的主要优点是,通过采用系统特定的机制,它可以比
select
更有效地完成任务。例如,一个好的网络库可能会使用:
epoll
/dev/poll
iocp
在 Win32我认为你可以使用
asio
对于 C++ 或libevent
用于 C。The cross-platform way is to use
select
orpoll
which are specified by POSIX.Alternatively, and more efficiently, you could use a library. The main advantage of a library is that it can do things way more effectively than
select
, by employing system-specific mechanisms.For example, a nice network library would probably use:
epoll
on Linuxkqueue
on FreeBSD/dev/poll
on solarispollset
on AIXiocp
on Win32I think you can use
asio
for C++ orlibevent
for C.