Nrecvfrom

Description
ÇöÀçÀÇ ³×Æ®¿öÅ© ¿¬°á·ÎºÎÅÍ µ¥ÀÌÅ͸¦ Àоî¿Â´Ù.

Syntax
S32 Nrecvfrom(S32 s, S8 *buf, S32 len, S32 flags, struct sockaddr *from, S32 *fromlen)

Parameters
s ¼ÒÄÏ ½Äº°ÀÚ
buf ÀоîµéÀÎ µ¥ÀÌÅÍ°¡ ÀúÀåµÉ ¹öÆÛ
len ÀоîµéÀÏ µ¥ÀÌÅÍÀÇ ¹ÙÀÌÆ® ¼ö
flags¿É¼Ç
MSG_OOB ±ä±Þ µ¥ÀÌÅ͸¦ ¹Ýȯ
MSG_PEEK Á¤º¸¸¦ ¹Ýȯ
from³×Æ®¿öÅ© ¿¬°áÀÌ ÀÌ·ç¾îÁú ¿ø°ÝÁö È£½ºÆ®ÀÇ Á¤º¸¸¦ °¡Áö´Â ±¸Á¶Ã¼
fromlen from ±¸Á¶Ã¼ÀÇ Å©±â

Returns
-1 Error
>= 0 Number of bytes received.

Comments
MSG_WAITALL ´Â Áö¿øÇÏÁö ¾Ê´Â´Ù. ¿¡·¯°¡ ³­ °æ¿ì¿¡ errno¿¡ ¿¡·¯ Äڵ尡 ÀúÀåµÈ´Ù. ÀúÀåµÇ´Â ¿¡·¯ÄÚµå´Â NreadsocketÀÇ °æ¿ì¿Í °°´Ù

See Also
Nrecv, Nrecvmsg

Example
/* Naccept() or Nconnect() is not needed here since Nrecvfrom() establishes the connection before reading */
S32 rc; /* return code */
struct sockaddr_in socka;
struct hostent ht;
U8 buff[BUFFLEN+1];
...
memset(&socka, 0, sizeof(socka));
socka.sin_family = AF_INET;
Ngethostbyname_r("host1", &ht, buff, sizeof(buff), &rc);
memcpy((S8 *)&socka.sin_addr, (S8 *)ht.h_addr_list[0],Iid_SZ);
socka.sin_port = Nhtons(1100);
rc = Nrecvfrom(s, buff, 8, 0, (struct sockaddr *)&socka, &socksize);
if ( rc < 8 )
   /* process error */