mirror of
https://codeberg.org/kiss-community/repo
synced 2024-12-23 07:40:11 -07:00
69 lines
2.8 KiB
Groff
69 lines
2.8 KiB
Groff
.\" generated by cd2nroff 0.1 from curl_multi_socket.md
|
|
.TH curl_multi_socket 3 "2024-08-02" libcurl
|
|
.SH NAME
|
|
curl_multi_socket \- read/write available data
|
|
.SH SYNOPSIS
|
|
.nf
|
|
#include <curl/curl.h>
|
|
CURLMcode curl_multi_socket(CURLM *multi_handle, curl_socket_t sockfd,
|
|
int *running_handles);
|
|
.fi
|
|
.SH DESCRIPTION
|
|
This function is deprecated. Do not use. See \fIcurl_multi_socket_action(3)\fP
|
|
instead.
|
|
|
|
At return, the integer \fBrunning_handles\fP points to contains the number of
|
|
still running easy handles within the multi handle. When this number reaches
|
|
zero, all transfers are complete/done. Note that when you call
|
|
\fIcurl_multi_socket(3)\fP on a specific socket and the counter decreases by one, it
|
|
DOES NOT necessarily mean that this exact socket/transfer is the one that
|
|
completed. Use \fIcurl_multi_info_read(3)\fP to figure out which easy handle that
|
|
completed.
|
|
|
|
The \fIcurl_multi_socket(3)\fP functions inform the application about updates in the
|
|
socket (file descriptor) status by doing none, one, or multiple calls to the
|
|
socket callback function set with the \fICURLMOPT_SOCKETFUNCTION(3)\fP option to
|
|
\fIcurl_multi_setopt(3)\fP. They update the status with changes since the previous
|
|
time the callback was called.
|
|
|
|
Get the timeout time by setting the \fICURLMOPT_TIMERFUNCTION(3)\fP option with
|
|
\fIcurl_multi_setopt(3)\fP. Your application then gets called with information on
|
|
how long to wait for socket actions at most before doing the timeout action:
|
|
call the \fIcurl_multi_socket_action(3)\fP function with the \fBsockfd\fP argument set
|
|
to CURL_SOCKET_TIMEOUT. You can also use the \fIcurl_multi_timeout(3)\fP function to
|
|
poll the value at any given time, but for an event\-based system using the
|
|
callback is far better than relying on polling the timeout value.
|
|
|
|
Usage of \fIcurl_multi_socket(3)\fP is deprecated, whereas the function is
|
|
equivalent to \fIcurl_multi_socket_action(3)\fP with \fBev_bitmask\fP set to 0.
|
|
.SH PROTOCOLS
|
|
This functionality affects all supported protocols
|
|
.SH EXAMPLE
|
|
.nf
|
|
int main(void)
|
|
{
|
|
/* the event-library gets told when there activity on the socket 'fd',
|
|
which we translate to a call to curl_multi_socket_action() */
|
|
int running;
|
|
int rc;
|
|
int fd;
|
|
CURLM *multi;
|
|
rc = curl_multi_socket(multi, fd, &running);
|
|
}
|
|
.fi
|
|
.SH DEPRECATED
|
|
\fIcurl_multi_socket(3)\fP is deprecated, use \fIcurl_multi_socket_action(3)\fP instead!
|
|
.SH AVAILABILITY
|
|
Added in curl 7.15.4
|
|
.SH RETURN VALUE
|
|
CURLMcode type, general libcurl multi interface error code.
|
|
|
|
The return code is for the whole multi stack. Problems still might have
|
|
occurred on individual transfers even when one of these functions return OK.
|
|
.SH SEE ALSO
|
|
.BR curl_multi_cleanup (3),
|
|
.BR curl_multi_fdset (3),
|
|
.BR curl_multi_info_read (3),
|
|
.BR curl_multi_init (3),
|
|
.BR the hiperfifo.c example
|