Git init
[external/curl.git] / docs / libcurl / curl_easy_recv.html
1 <html><head>
2 <title>curl_easy_recv man page</title>
3 <meta name="generator" content="roffit 0.7">
4 <STYLE type="text/css">
5 P.level0 {
6  padding-left: 2em;
7 }
8
9 P.level1 {
10  padding-left: 4em;
11 }
12
13 P.level2 {
14  padding-left: 6em;
15 }
16
17 span.emphasis {
18  font-style: italic;
19 }
20
21 span.bold {
22  font-weight: bold;
23 }
24
25 span.manpage {
26  font-weight: bold;
27 }
28
29 h2.nroffsh {
30  background-color: #e0e0e0;
31 }
32
33 span.nroffip {
34  font-weight: bold;
35  font-size: 120%;
36  font-family: monospace;
37 }
38
39 p.roffit {
40  text-align: center;
41  font-size: 80%;
42 }
43 </STYLE>
44 </head><body>
45
46 <p class="level0"><a name="NAME"></a><h2 class="nroffsh">NAME</h2>
47 <p class="level0">curl_easy_recv - receives raw data on an "easy" connection <a name="SYNOPSIS"></a><h2 class="nroffsh">SYNOPSIS</h2>
48 <p class="level0"><span Class="bold">#include &lt;curl/easy.h&gt;</span> 
49 <p class="level0"><span Class="bold">CURLcode curl_easy_recv( CURL * curl , void * buffer ,</span> <span Class="bold">size_t  buflen , size_t * n );</span> 
50 <p class="level0"><a name="DESCRIPTION"></a><h2 class="nroffsh">DESCRIPTION</h2>
51 <p class="level0">This function receives raw data from the established connection. You may use it together with <a class="emphasis" href="./curl_easy_send.html">curl_easy_send(3)</a> to implement custom protocols using libcurl. This functionality can be particularly useful if you use proxies and/or SSL encryption: libcurl will take care of proxy negotiation and connection set-up. 
52 <p class="level0"><span Class="bold">buffer</span> is a pointer to your buffer that will get the received data. <span Class="bold">buflen</span> is the maximum amount of data you can get in that buffer. The variable <span Class="bold">n</span> points to will receive the number of received bytes. 
53 <p class="level0">To establish the connection, set <span Class="bold">CURLOPT_CONNECT_ONLY</span> option before calling <a class="emphasis" href="./curl_easy_perform.html">curl_easy_perform(3)</a>. Note that <a class="emphasis" href="./curl_easy_recv.html">curl_easy_recv(3)</a> does not work on connections that were created without this option. 
54 <p class="level0">You must ensure that the socket has data to read before calling <a class="emphasis" href="./curl_easy_recv.html">curl_easy_recv(3)</a>, otherwise the call will return <span Class="bold">CURLE_AGAIN</span> - the socket is used in non-blocking mode internally. Use <a class="emphasis" href="./curl_easy_getinfo.html">curl_easy_getinfo(3)</a> with <span Class="bold">CURLINFO_LASTSOCKET</span> to obtain the socket; use your operating system facilities like <span Class="emphasis">select(2)</span> to check if it has any data you can read. <a name="AVAILABILITY"></a><h2 class="nroffsh">AVAILABILITY</h2>
55 <p class="level0">Added in 7.18.2. <a name="RETURN"></a><h2 class="nroffsh">RETURN VALUE</h2>
56 <p class="level0">On success, returns <span Class="bold">CURLE_OK</span>, stores the received data into <span Class="bold">buffer</span>, and the number of bytes it actually read into <span Class="bold">*n</span>. 
57 <p class="level0">On failure, returns the appropriate error code. 
58 <p class="level0">If there is no data to read, the function returns <span Class="bold">CURLE_AGAIN</span>. Use your operating system facilities to wait until the data is ready, and retry. <a name="EXAMPLE"></a><h2 class="nroffsh">EXAMPLE</h2>
59 <p class="level0">See <span Class="bold">sendrecv.c</span> in <span Class="bold">docs/examples</span> directory for usage example. <a name="SEE"></a><h2 class="nroffsh">SEE ALSO</h2>
60 <p class="level0"><a class="manpage" href="./curl_easy_setopt.html">curl_easy_setopt (3)</a> <a class="manpage" href="./curl_easy_perform.html">  curl_easy_perform (3)</a> <span Class="manpage"> </span> <a class="manpage" href="./curl_easy_getinfo.html">curl_easy_getinfo (3)</a> <span Class="manpage"> </span> <a class="manpage" href="./curl_easy_send.html">curl_easy_send (3) </a> <p class="roffit">
61  This HTML page was made with <a href="http://daniel.haxx.se/projects/roffit/">roffit</a>.
62 </body></html>