| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- .\" generated by cd2nroff 0.1 from curl_multi_socket.md
- .TH curl_multi_socket 3 "2025-01-17" 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
|