“Drive” transfers
libcurl provides three different ways to perform the transfer. Which way to
use in your case is entirely up to you and what you need.
The ‘easy’ interface lets you do a single transfer in a synchronous
fashion. libcurl will do the entire transfer and return control back to
your application when it is completed—successful or failed.The ‘multi’ interface is for when you want to do more than one transfer at
the same time, or you just want a non-blocking transfer.The ‘multi_socket’ interface is a slight variation of the regular multi
one, but is event-based and is really the suggested API to use if you intend
to scale up the number of simultaneous transfers to hundreds or thousands
or so.
Let’s look at each one a little closer…