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