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 ¿¡¼­ÀÇ ±¸Çö:

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

See Also

overview, accept, ioctlsocket, setsockopt, socket, WSAAsyncSelect, WSADuplicateSocket