Sortix cross-nightly manual
This manual documents Sortix cross-nightly. You can instead view this document in the latest official manual.
curl_easy_send(3) | Library Functions Manual | curl_easy_send(3) |
NAME
curl_easy_send - sends raw data over an "easy" connectionSYNOPSIS
#include <curl/curl.h>
CURLcode curl_easy_send(CURL *curl, const void *buffer,
size_t buflen, size_t *n);
DESCRIPTION
This function sends arbitrary data over the established connection. You may use it together with curl_easy_recv(3) to implement custom protocols using libcurl. This functionality can be particularly useful if you use proxies and/or SSL encryption: libcurl takes care of proxy negotiation and connection setup.PROTOCOLS
This functionality affects all supported protocolsEXAMPLE
int main(void)
{
CURL *curl = curl_easy_init();
if(curl) {
CURLcode res;
curl_easy_setopt(curl, CURLOPT_URL, "https://example.com");
/* Do not do the transfer - only connect to host */
curl_easy_setopt(curl, CURLOPT_CONNECT_ONLY, 1L);
res = curl_easy_perform(curl);
if(res == CURLE_OK) {
long sockfd;
size_t sent;
/* Extract the socket from the curl handle - we need it for waiting. */
res = curl_easy_getinfo(curl, CURLINFO_ACTIVESOCKET, &sockfd);
/* send data */
res = curl_easy_send(curl, "hello", 5, &sent);
}
}
}
AVAILABILITY
Added in curl 7.18.2RETURN VALUE
On success, returns CURLE_OK and stores the number of bytes actually sent into *n. Note that this may be less than the amount you wanted to send.SEE ALSO
curl_easy_getinfo(3), curl_easy_perform(3), curl_easy_recv(3), curl_easy_setopt(3)2024-11-24 | libcurl |