curl_easy_send.html 3.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. <html><head>
  2. <title>curl_easy_send 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. P.level1 {
  9. padding-left: 4em;
  10. }
  11. P.level2 {
  12. padding-left: 6em;
  13. }
  14. span.emphasis {
  15. font-style: italic;
  16. }
  17. span.bold {
  18. font-weight: bold;
  19. }
  20. span.manpage {
  21. font-weight: bold;
  22. }
  23. h2.nroffsh {
  24. background-color: #e0e0e0;
  25. }
  26. span.nroffip {
  27. font-weight: bold;
  28. font-size: 120%;
  29. font-family: monospace;
  30. }
  31. p.roffit {
  32. text-align: center;
  33. font-size: 80%;
  34. }
  35. </STYLE>
  36. </head><body>
  37. <p class="level0"><a name="NAME"></a><h2 class="nroffsh">NAME</h2>
  38. <p class="level0">curl_easy_send - sends raw data over an "easy" connection <a name="SYNOPSIS"></a><h2 class="nroffsh">SYNOPSIS</h2>
  39. <p class="level0"><span Class="bold">#include &lt;curl/easy.h&gt;</span>
  40. <p class="level0"><span Class="bold">CURLcode curl_easy_send( CURL * curl , const void * buffer ,</span> <span Class="bold"> size_t buflen , size_t * n );</span>
  41. <p class="level0"><a name="DESCRIPTION"></a><h2 class="nroffsh">DESCRIPTION</h2>
  42. <p class="level0">This function sends arbitrary data over the established connection. You may use it together with <a class="emphasis" href="./curl_easy_recv.html">curl_easy_recv(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.
  43. <p class="level0"><span Class="bold">buffer</span> is a pointer to the data of length <span Class="bold">buflen</span> that you want sent. The variable <span Class="bold">n</span> points to will receive the number of sent bytes.
  44. <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_send.html">curl_easy_send(3)</a> will not work on connections that were created without this option.
  45. <p class="level0">You must ensure that the socket is writable before calling <a class="emphasis" href="./curl_easy_send.html">curl_easy_send(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 can be written to. <a name="AVAILABILITY"></a><h2 class="nroffsh">AVAILABILITY</h2>
  46. <p class="level0">Added in 7.18.2. <a name="RETURN"></a><h2 class="nroffsh">RETURN VALUE</h2>
  47. <p class="level0">On success, returns <span Class="bold">CURLE_OK</span> and stores the number of bytes actually sent into <span Class="bold">*n</span>. Note that this may very well be less than the amount you wanted to send.
  48. <p class="level0">On failure, returns the appropriate error code. <a name="EXAMPLE"></a><h2 class="nroffsh">EXAMPLE</h2>
  49. <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>
  50. <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> <a class="manpage" href="./curl_easy_getinfo.html"> curl_easy_getinfo (3)</a> <span Class="manpage"> </span> <a class="manpage" href="./curl_easy_recv.html">curl_easy_recv (3) </a> <p class="roffit">
  51. This HTML page was made with <a href="http://daniel.haxx.se/projects/roffit/">roffit</a>.
  52. </body></html>