跨平台方式在单线程中从多个连接读取数据

发布于 2024-12-15 00:24:56 字数 264 浏览 1 评论 0原文

我的应用程序需要同时下载多个网页,并且由于在 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

2024-12-22 00:24:56

跨平台的方式是使用POSIX规定的selectpoll

或者,更有效的是,您可以使用库。库的主要优点是,通过采用系统特定的机制,它可以比 select 更有效地完成任务。

例如,一个好的网络库可能会使用:

  • Linux 上的 epoll
  • FreeBSD 上的 kqueue
  • Solaris 上的 /dev/poll
  • pollset code> 在 AIX
  • iocp 在 Win32

我认为你可以使用 asio 对于 C++ 或libevent 用于 C。

The cross-platform way is to use select or poll 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 Linux
  • kqueue on FreeBSD
  • /dev/poll on solaris
  • pollset on AIX
  • iocp on Win32
  • etc

I think you can use asio for C++ or libevent for C.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文