1<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2<html xml:lang="en-US" lang="en-US" xmlns="http://www.w3.org/1999/xhtml">
3  <head>
4    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
5    <meta http-equiv="Content-Style-Type" content="text/css" />
6    <link rel="stylesheet" href="../../css/manpage.css" type="text/css" />
7<title>RecvFrom</title>
8  </head>
9  <body>
10<h1><CODE>nn::socket::RecvFrom</CODE> Function</h1>
11<h2>Syntax</h2>
12    <div class="section">
13      <pre class="definition">
14s32 RecvFrom(
15     s32 s,
16     void * buf,
17     s32 len,
18     s32 flags,
19     <a href="../../nn/socket/SockAddrIn/Overview.html">SockAddrIn</a> * sockFrom
20);
21</pre>
22    </div>
23<h2>Arguments</h2>
24    <div class="section">
25      <table class="arguments">
26        <thead>
27          <tr>
28            <td width="15" />
29<th>Name</th>
30<td>Description</td>
31          </tr>
32        </thead>
33        <tr>
34<td>in</td>
35<th>s</th>
36<td>Specifies a socket descriptor. Specify a socket descriptor created using the <a href="../../nn/socket/Socket.html"><CODE>Socket</CODE></a> or <a href="../../nn/socket/Accept.html"><CODE>Accept</CODE></a> function.</td>
37        </tr>
38        <tr>
39<td>in</td>
40<th>buf</th>
41<td>Specifies a pointer to the buffer used to read out received data.</td>
42        </tr>
43        <tr>
44<td>in</td>
45<th>len</th>
46<td>Specifies the size in bytes of the buffer used to read out received data.</td>
47        </tr>
48        <tr>
49<td>in</td>
50<th>flags</th>
51<td>Specifies the message transmission type.</td>
52        </tr>
53        <tr>
54<td>out</td>
55<th>sockFrom</th>
56<td>Specifies a pointer to the socket address structure used to get the communication target's address information. The <CODE>len</CODE> field of the socket address must be initialized appropriately (for example, to <CODE>sizeof(<a href="../../nn/socket/SockAddrIn/Overview.html">SockAddrIn</a>)</CODE>).</td>
57        </tr> </table>
58    </div>
59<h2>Return Values</h2>
60<div class="section">For stream sockets (<CODE>SOCK_STREAM</CODE>), this function returns <CODE>0</CODE> to indicate that the socket cannot accept any more messages because the remote host has finished sending messages. For datagram sockets (<CODE>SOCK_DGRAM</CODE>), this function does not return <CODE>0</CODE>. </div>
61<h2>Description</h2>
62    <div class="section">
63<p>Attempts to receive data (messages) from a remote host via a socket.</p><p>This function usually blocks until the socket receives a message. However, if the <a href="../../nn/socket/Fcntl.html"><CODE>Fcntl</CODE></a> function has set the socket to non-blocking mode and <SPAN class="argument">flags</SPAN> is set to <CODE>MSG_DONTWAIT</CODE>, this function does not block and only gets the data already received at the time this function is called. For datagram sockets (<CODE>SOCK_DGRAM</CODE>), the entire message is read out in a single operation. If the message cannot fit into the allocated buffer and <SPAN class="argument">flags</SPAN> is not set to <CODE>MSG_PEEK</CODE>, any data that does not fit into the buffer is discarded. For stream sockets (<CODE>SOCK_STREAM</CODE>), message boundaries are ignored. In this case, the data is returned to the user application as soon as the data becomes usable.</p><p>A return value of one or more indicates the number of bytes of received messages.</p><!-- write here --></div>
64<h2>See Also</h2>
65    <div class="section">
66      <p class="reference">
67            <br /> </p>
68    </div>
69<h2>Revision History</h2>
70    <div class="section">
71      <dl class="history">
72        <dt>2010/06/14</dt>
73<dd>Initial version.<br />
74        </dd>
75      </dl>
76    </div>
77  <hr><p>CONFIDENTIAL</p></body>
78</html>