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>