sendto

sendto ÇÔ¼ö´Â ÁöÁ¤µÈ ÁÖ¼Ò·Î µ¥ÀÌÅ͸¦ Àü¼ÛÇÏ´Â ÇÔ¼öÀÔ´Ï´Ù.

int sendto (
        SOCKET  
s,
        const char FAR *  
buf,
        int  
len,
        int  
flags,
        const struct sockaddr FAR *  
to,
        int
 tolen
);

 

Parameters

s
[ÀÔ·Â] ¼ÒÄÏÀÇ ±â¼úÀÚ¸¦ ¸í½ÃÇÕ´Ï´Ù.

buf
[ÀÔ·Â] Àü¼ÛµÉ µ¥ÀÌÅ͸¦ °¡Áö°í ÀÖ´Â ¹öÆÛ

len
[ÀÔ·Â] ¹öÆÛ ¾Ê¿¡ ÀÖ´Â µ¥ÀÌÅÍÀÇ ±æÀÌ

flags
[ÀÔ·Â]
ÇÔ¼öÀÇ È£ÃâÀÌ ¾î¶²ÀÏÀ» ÇÒÁö ³ªÅ¸³»´Â Ç÷¡±× ÀÔ´Ï´Ù.

to
[ÀÔ·Â] µ¥ÀÌÅÍ°¡ Àü¼ÛµÉ ¿ø°Ý È£½ºÆ®ÀÇ ¾îµå·¹½º¸¦ ³ªÅ¸³À´Ï´Ù.

tolen
[ÀÔ·Â]
to ¸Å°³º¯¼öÀÇ Å©±â

Remarks

sendto ÇÔ¼ö´Â ¼ÒÄÏ(Á¢¼Ó µÇ¾ú°Ç Á¢¼ÓµÇÁö ¾Ê¾Ò°Ç)¿¡¼­ µ¥ÀÌÅ͸¦ Á¢¼ÓµÈ »ó´ë¹æÀ¸·Î Àü¼ÛÇϴµ¥ »ç¿ëµÇ´Â ÇÔ¼öÀÔ´Ï´Ù. ¸Þ½ÃÁö ÁöÇâ ¼ÒÄÏ(message-oriented sockets)¿¡¼­ ÃÖ´ë ÆÐŶũ±â(getsockopt ÇÔ¼ö·Î SO_MAX_MSG_SIZE ¿É¼ÇÀÇ °ªÀ» ¾ò¾î³»¼­ ÃÖ´ë Å©±â¸¦ ±¸ÇÒ ¼ö ÀÖ½À´Ï´Ù.)¸¦ ÃÊ°úÇÏÁö ¾Êµµ·Ï ÁÖÀÇ ÇØ¾ß ÇÕ´Ï´Ù. ¸¸¾à µ¥ÀÌÅÍ°¡ Àü¼ÛµÇ±â¿¡ ³Ê¹« Å©´Ù¸é, µ¥ÀÌÅÍ´Â Àü¼ÛµÇÁö ¾Ê°í, WSAEMSGSIZE ¿¡·¯Äڵ带 ¹ß»ýÇÕ´Ï´Ù.

to ¸Å°³º¯¼ö´Â ¼ÒÄÏÀÇ ÁÖ¼Òü°è(address family)·Î µÈ µ¥ÀÌÅÍ°¡ Àü¼ÛµÉ ¿ø°Ý È£½ºÆ®ÀÇ ¾îµå·¹½º¸¦ ³ªÅ¸³À´Ï´Ù. ¹°·Ð, ºê·Îµåij½ºÆ®(broadcast) ¶Ç´Â ¸ÖƼij½ºÆ® ¾îµå·¹½º(multicast address)µµ µÉ ¼ö ÀÖ½À´Ï´Ù. ºê·Îµåij½ºÆ® ¾îµå·¹½º¸¦ »ç¿ëÇÏ¿© Àü¼ÛÇÒ °æ¿ì ¾îÇø®ÄÉÀ̼ÇÀº SO_BROADCAST ¼ÒÄϿɼÇÀ» °¡´ÉÇÏ°Ô ÇÏ¿© getsockopt ÇÔ¼ö¸¦ È£ÃâÇØ¾ß ÇÕ´Ï´Ù. getsockopt ÇÔ¼ö¸¦ ÀÌ¿ëÇÏÁö ¾Ê°í, ºê·Îµåij½ºÆ® ÇÏ·Á ÇÑ´Ù¸é, sendto ÇÔ¼ö´Â ½ÇÆзΠµ¹¾Æ°¡°í, WSAEACCES ¿¡·¯ÄÚµé ¹ß»ýÇÏ°Ô µË´Ï´Ù. TCP/IP ¿¡¼­, ¾îÇø®ÄÉÀ̼ÇÀº ±×·ì¸â¹ö(group member)°¡ µÇÁö ¾Ê°íµµ ƯÁ¤ÇÑ ¸ÖƼij½ºÆ® ¾îµå·¹½º·Î µ¥ÀÌÅ͸¦ Àü¼ÛÇÒ ¼ö ÀÖ½À´Ï´Ù.

¼ÒÄÏÀÌ ¹ÙÀÎµå µÇÁö ¾ÊÀº °æ¿ì À¯ÀÏÇÑ °ªÀº ·ÎÄà ½Ã½ºÅÛ¿¡ ÀÇÇؼ­ ÇÒ´çµÇ¾î Áý´Ï´Ù. ±×·±´ÙÀ½ ¼ÒÄÏÀº ¹Ù¿îµå µÈ °Í ó·³ ¸¶Å· µË´Ï´Ù. ÀÌ·± °æ¿ì ¾îÇø®ÄÉÀ̼ÇÀº ·ÎÄà ¼ÒÄÏÀÇ À̸§(name)À» ¾ò±â À§ÇØ getsockname ÇÔ¼ö¸¦ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.

send ÇÔ¼öÀÇ ¼º°øÀûÀÎ Á¾·á°¡ ¼º°øÀûÀÎ µ¥ÀÌÅÍÀÇ Àü¼ÛÀ» ÀǹÌÇÏÁö´Â ¾Ê´Â´Ù´Â Á¡À» ¸í½ÉÇϼ¼¿ä.

sendto ÇÔ¼ö´Â ÀϹÝÀûÀ¸·Î Á¢¼ÓµÇÁö ¾ÊÀº ¼ÒÄÏ¿¡ ´ëÇؼ­, to ¸Å°³º¯¼ö¿¡ ÁöÁ¤µÈ ƯÁ¤ÇÑ »ó´ë¹æ ¼ÒÄÏÀ¸·Î µ¥ÀÌÅͱ׷¥À» Àü¼ÛÇϴµ¥ »ç¿ëÇÏ´Â ÇÔ¼öÀÔ´Ï´Ù. ÇÏÁö¸¸, ¼ÒÄÏ(connectionless sockets : SOCK_DGRAM)ÀÌ ÀÌÀü¿¡ ƯÁ¤ÇÑ ÁÖ¼Ò·Î Á¢¼ÓµÇ¾î ÀÖ´Ù ÇÏ´õ¶óµµ, to ¸Å°³º¯¼ö´Â ÀÌÀü¿¡ ¸í½ÃµÈ ¸ñÀûÁö ÁÖ¼Ò¸¦ ¹«½ÃÇÕ´Ï´Ù. Á¢¼ÓÁöÇâ¼ÒÄÏ(connection-oriented socket)ÀÇ °æ¿ì to ¿Í tolen ¸Å°³º¯¼ö´Â ¹«½ÃµÇ¸ç, sendto ÇÔ¼ö´Â send ÇÔ¼ö¿Í °°Àº ÀÛµ¿À» ÇÏ°Ô µË´Ï´Ù.

flag ¸Å°³º¯¼ö´Â ¼ÒÄÏ¿¡ ´ëÇØ ¸í½ÃµÈ ¿É¼Ç ÀÌ»óÀÇ ÇÔ¼öµ¿ÀÛ¿¡ ¿µÇâÀ» ¹ÌÄ¡±â À§Çؼ­ »ç¿ëµÉ ¼ö ÀÖ½À´Ï´Ù. ÇÔ¼öÀÇ ÀǹÌü°è´Â ¼ÒÄÏ¿É¼Ç ±×¸®°í, flag ¸Å°³º¯¼ö¿¡ ÀÇÇؼ­ °áÁ¤µÇ¾î Áý´Ï´Ù. flag ¸Å°³º¯¼ö¸¦ ÀÌ¿ëÇÑ ¹æ¹ýÀÇ °æ¿ì ¾Æ·¡ÀÇ °ªÀ» OR ºñÆ®¿¬»êÀ» ÃëÇؼ­ ±¸¼ºµÇ¾î Áý´Ï´Ù.

Value Meaning
MSG_DONTROUTE
 
µ¥ÀÌÅÍ´Â ¶ó¿ìÆà µÉ ¼ö ¾øÀ½À» ³ªÅ¸³À´Ï´Ù. À©µµ¿ìÁî ¼ÒÄÏ ½Ã½ºÅÛÀº ´ëÀÀÇÏ´Â ¼ÒÄϿɼǰú ¸¶Âù°¡Áö·Î ÀÌ °ªÀ» ¹«½Ã ÇÒ ¼ö ÀÖ½À´Ï´Ù.
MSG_OOB µ¥ÀÌÅÍ°¡ out-of-band µ¥ÀÌÅͷμ­ Àü¼ÛµÉ ¼ö ÀÖÀ½À» ³ªÅ¸³À´Ï´Ù. ÀÌ Ç÷¡±×´Â ½ºÆ®¸² ¼ÒÄÏ°ú¸¸ »ç¿ëµË´Ï´Ù.

Return Values

¿¡·¯°¡ ¹ß»ýÇÏÁö ¾Ê´Â´Ù¸é, send ÇÔ¼ö´Â Àü¼ÛµÈ ÃÑ µ¥ÀÌÅÍ Å©±â¸¦ ¹ÝȯÇÕ´Ï´Ù. ºñµ¿±â ¼ÒÄÏÀÇ °æ¿ì len ¸Å°³º¯¼ö·Î °Ç³Ù ¼öÄ¡º¸´Ù ÀÛÀ» ¼ö ÀÖ½À´Ï´Ù. ¿¡·¯°¡ ¹ß»ýÇÑ °æ¿ì´Â SOCKET_ERROR¸¦ ¹ÝȯÇÏ°í, WSAGetLastError¸¦ ÀÌ¿ëÇؼ­ ƯÁ¤ÇÑ ¿¡·¯Äڵ带 ¾ò¾î³¾ ¼ö ÀÖ½À´Ï´Ù.

Error Codes

WSANOTINITIALISED

ÀÌ ÇÔ¼ö¸¦ »ç¿ëÇϱâ Àü¿¡ ¼º°øÀûÀÎ WSAStartup ÇÔ¼öÀÇ È£ÃâÀÌ ¾ø¾ú½À´Ï´Ù.

WSAENETDOWN ³×Æ®¿÷ ¼­ºê ½Ã½ºÅÛ¿¡ ¿¡·¯°¡ ¹ß»ýÇß½À´Ï´Ù.
WSAEACCES ¿äûµÈ ÁÖ¼Ò°¡ ºê·ÎƮij½ºÆ®(broadcast) ÁÖ¼ÒÀε¥, ÀûÀýÇÑ Ç÷¡±×°¡ ¼ÂÆõǾî ÀÖÁö ¾Ê½À´Ï´Ù. ºê·Îµåij½ºÆ® ¾îµå·¹½ºÀÇ »ç¿ëÀ» Çã¿ëÇϱâ À§ÇØ SO_BROADCAST ¸Å°³º¯¼ö¸¦ °¡Áö°í, setsockopt ÇÔ¼ö¸¦ È£Ãâ ÇØ¾ß ÇÕ´Ï´Ù.
WSAEINVAL ¾Ë ¼ö ¾ø´Â Ç÷¡±×°¡ »ç¿ëµÇ¾ú°Å³ª, SO_OOBINLINE ¿É¼ÇÀ» °¡´ÉÇÏ°Ô ÇÑ »óÅ ¿¡¼­ MSG_OOB Ç÷¡±×°¡ ¼ÒÄÏ¿¡ ´ëÇؼ­ ¸í½ÃµÇ¾ú½À´Ï´Ù. ¶Ç´Â len ¸Å°³º¯¼ö°¡ 0 À̰ųª 0º¸´Ù ÀÛ½À´Ï´Ù.
WSAEINTR ºí·ÏÅ· È£ÃâÀÌ WSACancelBlockingCall ÇÔ¼ö¿¡¼­ Ãë¼ÒµÇ¾ú½À´Ï´Ù.
WSAEINPROGRESS ºí·°Å· À©¼Ó v1.1 ÀÌ ÇöÀç ÁøÇà ÁßÀ̰ųª, ¼­ºñ½º ÇÁ·Î¹ÙÀÌ´õ°¡ Äݹé ÇÔ¼ö¸¦ ¿©ÀüÈ÷ ó¸®ÇÏ°í ÀÖ½À´Ï´Ù.
WSAEFAULT buf ¸Å°³º¯¼ö°¡ Á¦´ë·Î µÈ ÇüÅ°¡ ¾Æ´Õ´Ï´Ù.
WSAENETRESET ¿¬»êÀÌ ÁøÇàµÇ°í ÀÖ´Â µµÁß Á¢¼ÓÀÌ ²÷°Ü¹ö·È½À´Ï´Ù.
WSAENOBUFS Àü¼ÛÇϱâ À§ÇØ »ç¿ëÇÒ ¼ö ÀÖ´Â ¹öÆÛ °ø°£ÀÌ ¾ø½À´Ï´Ù.
WSAENOTCONN ¼ÒÄÏÀÌ Á¢¼ÓµÈ »óÅ°¡ ¾Æ´Õ´Ï´Ù.
WSAENOTSOCK ±â¼úÀÚ(descriptor)°¡ ¼ÒÄÏ ±â¼úÀÚ°¡ ¾Æ´Õ´Ï´Ù.
WSAEOPNOTSUPP MSG_OOB °¡ ¸í½ÃµÇ¾úÁö¸¸, ¼ÒÄÏÀº SOCK_STREAM °ú °°Àº ÇüÅÂÀÇ ½ºÆ®¸² ÇüÅ°¡ ¾Æ´Õ´Ï´Ù.
WSAESHUTDOWN ¼ÒÄÏÀÌ ¼Ë´Ù¿î µÇ¾ú½À´Ï´Ù.
WSAEWOULDBLOCK ¼ÒÄÏÀÌ ³Íºí·ÏÅ·(ºñµ¿±â)·Î ¸¶Å·µÇ¾î ÀÖ°í, ¼ö½Å ¿¬»êÀÌ ºí·ÏÅ· »óÅÂÀÔ´Ï´Ù.
WSAEMSGSIZE ¼ÒÄÏÀÌ ¸Þ½ÃÁö ÁöÇâÇü(message oriented)ÀÌ°í, ¸Þ½ÃÁöÀÇ Å©±â°¡ Çã¿ëÇÒ ¼ö ÀÖ´Â ÃÖ´ë Å©±â º¸´Ù Å®´Ï´Ù.
WSAEHOSTUNREACH ³×Æ®¿÷ ½Ã½ºÅÛ Àå¾Ö µî¿¡ ÀÇÇؼ­ ¿ø°ÝÈ£½ºÆ®±îÁö µµ´Þ ÇÒ ¼ö ¾ø½À´Ï´Ù.
WSAECONNABORTED °¡»ó ¿¬°á ȸ·Î¸ÁÀÌ Å¸ÀӾƿôÀ̳ª ´Ù¸¥ ½ÇÆÐ ¶§¹®¿¡ ²÷¾îÁ® ¹ö·È½À´Ï´Ù.
WSAECONNRESET °¡»ó ȸ·Î¸ÁÀÌ ¿ø°ÝÁö¿¡¼­ "hard"³ª "abortive" Á¾·á¸¦ ¼öÇàÇؼ­ ¸®¼ÂµÇ¾ú½À´Ï´Ù.
WSAEADDRNOTAVAIL ¿ø°ÝÁö ÁÖ¼Ò°¡ ¿Ã¹Ù¸¦ ÇüÅ°¡ ¾Æ´Õ´Ï´Ù. ¿¹¸¦µé¾î ADDR_ANY¿Í °°Àº ÇüÅ´ À߸øµÈ ÇüÅÂÀÔ´Ï´Ù.
WSAEAFNOSUPPORT ÁöÁ¤µÈ ¾îµå·¹½º ü°è°¡ ÀÌ ¼ÒÄÏ¿¡¼­ »ç¿ëµÉ ¼ö ¾ø½À´Ï´Ù.
WSAEDESTADDRREQ ¸ñÀûÁö ÁÖ¼Ò°¡ ÇÊ¿äÇÕ´Ï´Ù.
WSAENETUNREACH ¿÷°Ý ½Ã½ºÅÛ±îÁö ³×Æ®¿÷ÀÌ µµ´ÞÇÒ ¼ö ¾ø½À´Ï´Ù.
WSAETIMEDOUT Á¢¼ÓÀÌ ³×Æ®¿÷ ½ÇÆгª »ó´ë¹æ ½Ã½ºÅÛÀÇ ÀÀ´ä ½ÇÆзΠÀÎÇÏ¿© µå¶ø µÇ¾î ¹ö·È½À´Ï´Ù.

QuickInfo

Windows NT : »ç¿ë°¡´É
Windows : »ç¿ë°¡´É
Windows CE : ¹öÁ¯ 1.0 ±×¸®°í ±×ÀÌÈÄÀÇ ¹öÁ¯¿¡¼­ »ç¿ë°¡´É
Header :
          Win16/32 : winsock.h
          Win32-II : winsock2.h
Import Library :
          Win16 : winsock.lib
          Win32 : wsock32.lib
          Win32-II : ws2_32.lib

See Also

overview, recv, recvfrom, select, send, socket, WSAAsyncSelect, WSAEventSelect