closesocket
closesocket ÇÔ¼ö´Â À©µµ¿ìÁî ¼ÒÄÏ ½Ã½ºÅÛ¿¡ ÇÒ´çµÈ socket°ú °ü·ÃµÈ ¸®¼Ò½º¸¦ ÇØÁ¦ ÇÏ´Â ÇÔ¼öÀÔ´Ï´Ù.
int closesocket (
SOCKET s
);
Parameters
s
[ÀÔ·Â] ´ÝÀ» ¼ÒÄÏÀÇ ±â¼úÀÚ(descriptor)
Remarks
ÇÁ·Î±×·¥ÀÌ ¼ÒÄÏÀ» ´õ ÀÌ»ó »ç¿ëÇÏÁö ¾ÊÀ» °æ¿ì closesocket ÇÔ¼ö¸¦ È£ÃâÇÏ¿© ¼ÒÄÏ ±â¼úÀÚ¿Í °ü·ÃµÈ ÀÚ¿øÀ» ¹Ý³³ ÇÒ ¼ö ÀÖ½À´Ï´Ù. closesocket ÇÔ¼ö°¡ ¹ÝȯµÈ ÈÄ¿¡ ¼ÒÄÏ ±â¼úÀÚ´Â ´õ ÀÌ»ó À¯È¿ÇÏÁö ¾Ê°Ô µË´Ï´Ù. Áï, ´ÝÇôÁø ¼ÒÄÏ ±â¼úÀÚ¿¡ ´ëÇØ ¼ÒÄÏ ÇÔ¼ö°¡ È£ÃâµÉ °æ¿ì ¿¡·¯°¡ ¹ß»ý ÇÒ °ÍÀÔ´Ï´Ù.
ºñµ¿±âÀûÀ¸·Î Àü¼Û/¼ö½Å ¿¬»êÀ» ÇÏ´Â ÇÔ¼ö (¿À¹ö·¦ ¼ÒÄÏ¿¡ »ç¿ëµÇ´Â WSASend/WSASendTo/WSARecv/WSARecvFrom)µéÀº closesocket ÇÔ¼ö¿¡ ÀÇÇØ¼ Ãë¼ÒµË´Ï´Ù. ÀÌ·¯ÇÑ ¿À¹ö·¦ ¿¬»êÀ» ÇÏ´Â °ÍµéÀº WSA_OPERATION_ABORTED ¶ó´Â ¿¡·¯»óÅ·Π½ÇÆÐÇÏ°Ô µÇ´Â °ÅÁÒ.
¾îÇø®ÄÉÀ̼ǿ¡¼ socket ÇÔ¼ö·Î À©µµ¿ìÁî ¼ÒÄÏÀ» ¾ò¾ú´Ù¸é, ¹Ýµå½Ã closesocket ÇÔ¼ö¸¦ È£Ãâ ÇØ¼ ÇÒ´ç µÇ¾ú´ø ¼ÒÄÏ ¸®¼Ò½º¸¦ ¹Ýȯ ÇØ¾ß ÇÕ´Ï´Ù.
closesocket ÇÔ¼öÀÇ Ã¼°è(ÇÔ¼ö°¡ ¹Ù·Î ¸®ÅÏµÇ´Â³Ä ¸¶´À³Ä)´Â SO_LINGER °ú, SO_DONTLINGER ¿Í °°Àº ¼ÒÄÏ ¿É¼Ç¿¡ ÀÇÇØ¼ ¿µÇâÀ» ¹Þ½À´Ï´Ù. ¾Æ·¡ÀÇ Ç¥´Â ÀÌ·¯ÇÑ °ÍµéÀ» ¿ä¾àÇÑ °ÍÀÔ´Ï´Ù. ¼ÒÄÏ ¿É¼Ç¿¡ ´ëÇØ ´õ ÀÚ¼¼È÷ ¾Ë°í ½ÍÀ¸¸é, getsockopt ºÎºÐ°ú setsockopt ºÎºÐÀ» Âü°í ÇÏ½Ã¸é µË´Ï´Ù.
¿É¼Ç | ŸÀӾƿô°£°Ý | ´ÝÈûÀ¯Çü | ´ÝÈû´ë±â |
---|---|---|---|
SO_DONTLINGER | »ó°ü¾øÀ½(À̷лó) | ¿ì¾Æ(graceful)ÇÑ ´ÝÈû | ´ë±âÇÏÁö ¾ÊÀ½ |
SO_LINGER | 0 | °æÁ÷µÈ(Hard) ´ÝÈû | ´ë±âÇÏÁö ¾ÊÀ½ |
SO_LINGER | 0 ÀÌ¾Æ´Ô | ¿ì¾Æ(graceful)ÇÑ ´ÝÈû | ´ë±â ÇÔ |
¸¸¾à SO_LINGER °¡ ŸÀӾƿô °£°ÝÀ» 0À¸·Î ¼ÂÆÃÇÑ´Ù¸é (Áï, LINGER ±¸Á¶Ã¼ÀÇ l_onoff ¸â¹ö°¡ 0ÀÌ ¾Æ´Ï°í, l_linger °¡ 0Àΰæ¿ì), closesocket ÇÔ¼ö´Â ¾ÆÁ÷ º¸³»ÁöÁö ¾ÊÀº µ¥ÀÌÅͰ¡ Å¥¿¡ ³²¾ÆÀÖ´õ¶óµµ ºí·ÏÅ· »óÅ·ΠºüÁöÁö ¾Ê½À´Ï´Ù. ÀÌ·¯ÇÑ °ÍÀº "°æÁ÷µÈ(hard)" ¶Ç´Â "ÁߴܵÈ(abortive)" ´ÝÈû(close) ¶ó°í ÇÕ´Ï´Ù. ÀÌ·¯ÇÑ °æ¿ì ¼ÒÄÏÀÇ °¡»ó ȸ·Î¸ÁÀÌ Áï½Ã ¸®¼Â µÇ¹Ç·Î Àü¼ÛµÇÁö ¾ÊÀº µ¥ÀÌÅÍ´Â ¼Õ½ÇµÇ°Ô µË´Ï´Ù. ¿¬°áÀÇ ¿ø°Ý Á¾´Ü¿¡¼ recv ÇÔ¼ö°¡ ½ÃµµµÉ °æ¿ì WSAECONNRESET ¿¡·¯¸¦ ¹ÝȯÇÕ´Ï´Ù.
¸¸¾à SO_LINGER °¡ ºí·ÏÅ·(µ¿±â) ¼ÒÄÏ¿¡¼ ŸÀӾƿô °£°ÝÀ» 0 ÀÌ ¾Æ´Ñ °ªÀ¸·Î ¼ÂÆÃÇÑ´Ù¸é, closesocket ÇÔ¼ö´Â ŸÀӾƿô µÇ´Â½Ã°£µ¿¾È ³²¾ÆÀÖ´Â µ¥ÀÌÅ͸¦ º¸³¾ ¶§ ±îÁö ¼ÒÄÏÀº ºí·ÏÅ· »óŰ¡ µË´Ï´Ù. ÀÌ·¯ÇÑ È£ÃâÀ» ¿ì¾ÆÇÑ ´ÜÀý(graceful disconnect) À̶ó°í ÇÕ´Ï´Ù. ¸¸¾à ¸ðµç µ¥ÀÌÅ͸¦ º¸³»±â Àü¿¡ ŸÀӾƿô ½Ã°£À» ¸ðµÎ´Ù ¼ÒºñÇÑ´Ù¸é, À©µµ¿ìÁî ¼ÒÄÏÀº closesocket ÇÔ¼ö°¡ ¸®ÅÏÇϱâÀü¿¡ Á¢¼ÓÀ» Á¾·áÇÏ°Ô µË´Ï´Ù.ºñµ¿±â(³Íºí·°Å·) ¼ÒÄÏ¿¡¼ 0ÀÌ ¾Æ´Ñ ŸÀӾƿô °£°ÝÀ» °¡Áø SO_LINGER¸¦ ¼³Á¤ÇÏ´Â °ÍÀº ÁÁÀº ¹æ½ÄÀÌ ¾Æ´Õ´Ï´Ù. ÀÌ·¯ÇÑ °æ¿ì¿¡ closesocket ÇÔ¼ö´Â ´ÝÈû ¿¬»êÀÌ Áï½Ã ¿Ï·áµÉ ¼ö ¾ø´Ù¸é, ¿¡·¯¿Í ÇÔ²² WSAEWOULDBLOCK ¿¡·¯Äڵ带 ¹ß»ýÇÒ °ÍÀÔ´Ï´Ù. closesocket ÇÔ¼ö°¡ WSAEWOULDBLOCK ¿¡·¯Äڵ带 ³»¸é¼ ½ÇÆÐÇÒ °æ¿ì ¼ÒÄÏ ÇÚµéÀº ¿©ÀüÈ÷ ¿Ã¹Ù¸¦ ÇÚµéÀ̵ǰí Á¢¼ÓÇØÁ¦´Â ¿Ïº®ÇÏ°Ô ÀÌ·ç¾îÁöÁö ¾Ê½À´Ï´Ù. ¾îÇø®ÄÉÀ̼ÇÀº ¼ÒÄÏÀ» ´Ý±âÀ§Çؼ ´Ù½Ã closesocketÀ» È£ÃâÇØ¾ß¸¸ ÇÕ´Ï´Ù. ¸¸¾à SO_DONTLINGER °¡ LINGER ±¸Á¶Ã¼ÀÇ ¸â¹öÁß l_onoff ¸â¹ö¸¦ 0À¸·Î ¼ÂÆÃÇÏ¿© ½ºÆ®¸² ¼ÒÄÏ¿¡ ¼ÂÆÃ µÇ¾ú´Ù¸é, ÇÔ¼ö´Â ¹Ù·Î ¸®Åϵǰí, ¼ÒÄÏÀÌ ºí·ÏÅ· ÀÌ°Ç ¾Æ´Ï°Ç °£¿¡ WSAEWOULDBLOCK ¿¡·¯Äڵ带 ¹ß»ýÇÏÁö ¾Ê½À´Ï´Ù. ÇÏÁö¸¸, ±âº»ÀûÀÌ ¼ÒÄÏÀÌ ´ÝÈ÷±â Àü¿¡ Àü¼ÛÀ» À§Çؼ Å¥¿¡ ÀúÀåµÈ µ¥ÀÌÅÍ´Â º¸³»Á³À» °ÍÀÔ´Ï´Ù.(Âü~ ¹«Ã¥ÀÓÇÑ ¸»ÀÌÁ® ¤Ð¤Ð) ÀÌ·¯ÇÑ ¹æ½Ä ¶ÇÇÑ ¿ì¾ÆÇÑ ´ÜÀý(graceful disconnect)À̶ó°í ÇÕ´Ï´Ù. ÀÌ·¯ÇÑ ¹æ½ÄÀº °¡Àå ±âº»ÀûÀÎ µ¿ÀÛÀÌÁÒ, SO_DONTLINGER ´Â ±âº»Ä¡·Î ¼ÂÆÃ µÇ¾î ÀÖ½À´Ï´Ù.
Note : Á¢¼Ó»óÅ¿¡¼ µ¥ÀÌÅͰ¡ º¸³»Á³´ÂÁö ¼ö½ÅµÇ¾ú´ÂÁö È®ÀÎ ÇÏ·Á¸é, ¾îÇø®ÄÉÀ̼ÇÀº closesocketÇÔ¼ö¸¦ È£ÃâÇϱâÀü¿¡ shutdown ÇÔ¼ö¸¦ È£ÃâÇØ¾ß ÇÕ´Ï´Ù. (´õ¸¹Àº Á¤º¸¸¦ ¾ò°íÀÚ ÇÑ´Ù¸é, Graceful shutdown, linger option and socket closure ¿ä±â¸¦ Âü°íÇϼ¼¿ä)
closesocket ÇÔ¼öÀÇ µ¿ÀÛ¿¡ ´ëÇØ¼ ¿ä¾à ÇØ º¸¾Ò½À´Ï´Ù.
- ºí·ÏÅ·(µ¿±â) ¼ÒÄÏ¿¡¼ ŸÀӾƿô ½Ã°£µ¿¾È Å¥¿¡ ³²¾ÆÀÖ´Â µ¥ÀÌÅ͸¦ º¸³¾ ¶§ ±îÁö ºí·ÏÅ· »óŰ¡ µË´Ï´Ù.
- ³Íºí·ÏÅ·(ºñµ¿±â) ¼ÒÄÏ¿¡¼ ½ÇÆÐ¶ó´Â ½ÅÈ£¿Í ÇÔ²² ¹Ù·Î ¸®ÅÏÇÕ´Ï´Ù.
Windows CE: Windows CE ÇÁ·Î±×·¡¹Ö ¿¡¼´Â WSAEINTR ¿¡·¯Äڵ带 Áö¿øµÇÁö ¾Ê½À´Ï´Ù.
IrSocket ¿¡¼ÀÇ ±¸Çö:
IrDA ´Â ¿ì¾ÆÇÑ ´ÝÈû(graceful close)¸¦ Á¦°øÇÏÁö ¾ÊÀ½¿¡µµ ºÒ±¸Çϰí, IrSocketÀº Å¥°¡ ´Ù û¼ÒµÉ ¶§ ±îÁö ¼ÒÄÏÀÇ ´ÝÈûÀ» ¹Ì·ì´Ï´Ù. µû¶ó¼ ¾îÇø®ÄÉÀ̼ǿ¡¼´Â µ¥ÀÌÅ͸¦ Àü¼ÛÇÒ ¼ö ÀÖ°í, FD_CLOSE ¸Þ½ÃÁö¸¦ ¼ö½Å¹Þ±â Àü±îÁö ¹Ù·Î ¼ÒÄÏ ÇÔ¼ö¸¦ È£Ãâ ÇÒ ¼ö ÀÖ½À´Ï´Ù.
Return Values
¿¡·¯°¡ ¾øÀ» °æ¿ì closesocket ÇÔ¼ö´Â 0À» ¸®ÅÏÇÕ´Ï´Ù. ¿¡·¯°¡ ¹ß»ý ÇßÀ» °æ¿ì SOCKET_ERROR ¿¡·¯Äڵ带 ¸®ÅÏÇÕ´Ï´Ù. ±×¸®°í WSAGetLastError ÇÔ¼ö¸¦ È£ÃâÇØ¼ ƯÁ¤ÇÑ ¿¡·¯Äڵ带 ¹ÞÀ» ¼ö ÀÖ½À´Ï´Ù.
Error Codes
WSANOTINITIALISED | ÀÌ ÇÔ¼ö¸¦ »ç¿ëÇϱâ Àü¿¡ ¼º°øÀûÀÎ WSAStartup ÇÔ¼öÀÇ È£ÃâÀÌ ¾ø¾ú½À´Ï´Ù. |
WSAENETDOWN | ³×Æ®¿÷ ¼ºê ½Ã½ºÅÛ¿¡ ¿¡·¯°¡ ¹ß»ýÇß½À´Ï´Ù. |
WSAENOTSOCK | ±â¼úÀÚ(descriptor)°¡ ¼ÒÄÏ ±â¼úÀÚ°¡ ¾Æ´Õ´Ï´Ù. |
WSAEINPROGRESS | ºí·°Å· À©¼Ó v1.1 ÀÌ ÇöÀç ÁøÇà ÁßÀ̰ųª, ¼ºñ½º ÇÁ·Î¹ÙÀÌ´õ°¡ Äݹé ÇÔ¼ö¸¦ ¿©ÀüÈ÷ ó¸®Çϰí ÀÖ½À´Ï´Ù. |
WSAEINTR | ºí·°Å· À©¼Ó v1.1 ÀÌ WSACancelBlockingCall ÇÔ¼ö¿¡¼ Ãë¼ÒµÇ¾ú½À´Ï´Ù |
WSAEWOULDBLOCK | ºñµ¿±â ¼ÒÄÏÀ̰í, SO_LINGER °¡ 0ÀÌ ¾Æ´Ñ ŸÀӾƿô °£°ÝÀ¸·Î ¼ÂÆÃµÇ¾î ÀÖ´Â °æ¿ì |
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
overview, accept, ioctlsocket, setsockopt, socket, WSAAsyncSelect, WSADuplicateSocket