7

Can anyone show (through code) or explain to me how I might use libevent and curl together in a c program? I'm trying to write a high-performance non-blocking data monitor which needs to upload data to a CouchDB instance. I'm familiar with both libevent and curl, but merging curl_multi with libevent has me stumped for some reason. I do not understand the program flow of the offical libcurl example - can anyone point me to, or supply, a simpler example?

Peter Downs
  • 482
  • 1
  • 4
  • 14

2 Answers2

7

The key is really the curl_multi_socket_action() function that should be used as soon as your event library says there's something on a socket to deal with. Event-based libcurl is more complex than "plain" libcurl so doing a very easy example is not that straight forward.

Daniel Stenberg
  • 54,736
  • 17
  • 146
  • 222
  • 1
    when I call `curl_multi_socket_action()` telling it either to read or write, does it use the read/write callback functions that were set up using `curl_easy_setopt()`? If not, how does it perform the read/write? – Peter Downs Aug 03 '11 at 19:06
  • 1
    Yes, it will use the callbacks for reading/writing as you have setup. – Daniel Stenberg Aug 03 '11 at 21:07
  • Ah, alright, that make this a little clearer. Thanks for your help. – Peter Downs Aug 03 '11 at 21:19
0

One exotic way to use curl with libevent is in a coroutine.

user1095108
  • 14,119
  • 9
  • 58
  • 116