CAsyncSocket::IOCtl
BOOL IOCtl ( ±ä lCommand, DWORD * lpArgument );
¹Ýȯ °ª
ÀÌ ÇÔ¼ö´Â ¼º°ø ÇÏ´Â °æ¿ì 0ÀÌ ¾Æ´Ñ ±×·¸Áö ¾ÊÀ¸¸é 0, ±×¸®°í ƯÁ¤ ¿À·ù Äڵ带 »ç¿ë ÇÏ´Â GetLastError¸¦ È£Ãâ ÇÏ ¿© °Ë»öÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌ ¸â¹ö ÇÔ¼ö¿¡ ´ÙÀ½°ú °°Àº ¿À·ù°¡ Àû¿ë:
-
WSANOTINITIALISEDnbsp;??¼º°øÀûÀÎ AfxSocketInit ´ÂÀÌ API¸¦ »ç¿ë Çϱâ Àü¿¡ ÀÌ·ç¾îÁ®¾ß ÇÕ´Ï´Ù(&N).
-
WSAENETDOWNnbsp;??Windows ¼ÒÄÏ ±¸ÇöÀÌ ³×Æ®¿öÅ© ÇÏÀ§ ½Ã½ºÅÛ ½ÇÆÐ °¨Áö(&N)¡£
-
WSAEINVALnbsp;lCommand Àº À¯È¿ÇÑ ¸í·É ¶Ç´Â lpArgument ´Â lCommand¿¡ ´ë ÇÑ Çã¿ë °¡´ÉÇÑ ¸Å°³ º¯¼ö ¶Ç´Â ¸í·ÉÀ» Á¦°ø ÇÏ´Â ¼ÒÄÏÀÇ Á¾·ù¿¡ ÇØ´ç µÇÁö ¾Ê½À´Ï´Ù(&N).
-
WSAEINPROGRESSnbsp;??ºí·ÎÅ· Windows ¼ÒÄÏ ÀÛ¾÷ÀÌ ÁøÇà ÁßÀÔ´Ï´Ù(&N).
-
WSAENOTSOCKnbsp;??¼³¸íÀÚ´Â ¼ÒÄÏ(&N)¡£
¸Å°³ º¯¼ö
lCommand
¼ÒÄÏ¿¡¼ ¼öÇà Çϵµ·Ï ¸í·É¡£
lpArgument
LCommand ¿¡ ´ë ÇÑ ¸Å°³ º¯¼ö¿¡ ´ë ÇÑ Æ÷ÀÎÅÍ¡£
ÁÖÀÇ
¼ÒÄÏ ¸ðµå¸¦ Á¦¾î ÇÏ·Á¸éÀÌ ¸â¹ö ÇÔ¼ö¸¦ È£Ãâ ÇÕ´Ï´Ù. ÀÌ ·çƾÀº ¾î¶² »óÅ¿¡ ¾î¶² ¼ÒÄÏ¿¡ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. ¼ÒÄÏ, ÇÁ·ÎÅäÄÝ ¹× Åë½Å ÇÏÀ§ ½Ã½ºÅÛÀÇ µ¶¸³°ú °ü·Ã µÈ ÀÛµ¿ ¸Å°³ º¯¼ö¸¦ °Ë»ö Çϰųª »ç¿ë µË´Ï´Ù. ´ÙÀ½°ú °°Àº ¸í·ÉÀÌ Áö¿ø µË´Ï´Ù.:
-
FIONBIOnbsp;??ºñºí·ÎÅ· ¸ðµå socket¿¡ »ç¿ë Çϰųª. LpArgument ¸Å°³ º¯¼ö´Â 0ÀÌ ¾Æ´Ñ °æ¿ì¿¡ ºñºí·ÎÅ· ¸ðµå´Â Ȱ¼ºÈ ÇÏ °í ºñȰ¼ºÈÇÒ °æ¿ì 0 DWORD¿¡ Á¡. AsyncSelect ¼ÒÄÏ¿¡ ³»·È´Ù IOCtl À» »ç¿ë ÇÏ ¿© ¼ÒÄÏ ºí·ÎÅ· ¸ðµå¸¦ ´Ù½Ã ¼³Á¤ ÇÏ·Á°í WSAEINVAL¿Í ÇÔ²² ½ÇÆÐ ÇÕ´Ï´Ù. ¼ÒÄÏ ºí·ÎÅ· ¸ðµå·Î ´Ù½Ã ¼³Á¤ ÇÏ °í WSAEINVAL ¿À·ù ¹æÁö, ÀÀ¿ë ÇÁ·Î±×·¥ ¸ÕÀú ÇÑ AsyncSelect È£Ãâ AsyncSelect 0, lEvent ¸Å°³ º¯¼ö¸¦ »ç¿ë ÇÏ ¿© ÇØÁ¦ ´ÙÀ½ IOCtl È£Ãâ(&N)¡£
-
FIONREADnbsp;??ÀÐÀ» ¼ö ÀÖ´Â ¹ÙÀÌÆ®ÀÇ ÃÖ´ë ¼ö¸¦ °áÁ¤ÀÌ ¼ÒÄÏ¿¡¼ ÇϳªÀÇ ¼ö½Å È£Ãâ ÇÕ´Ï´Ù. LpArgument ¸Å°³ º¯¼ö ÁöÁ¡¿¡ DWORD IOCtl °á°ú ÀúÀå ÇÕ´Ï´Ù. ÀÌ ¼ÒÄÏ SOCK_STREAMÀ¯ÇüÀÇ °æ¿ì FIONREAD ´ÜÀÏ ¼ö½Å;¿¡¼ ÀÐÀ» ¼ö ÀÖ´Â µ¥ÀÌÅÍÀÇ ÃÑ·®À» ¹Ýȯ À̰ÍÀº ÀϹÝÀûÀ¸·Î µ¿ÀÏÇÑ ¼ÒÄÏ¿¡¼ ´ë±â ÁßÀÎ µ¥ÀÌÅÍÀÇ ÃÑ ±Ý¾×ÀÔ´Ï´Ù. ÀÌ ¼ÒÄÏ SOCK_DGRAMÀ¯ÇüÀÇ °æ¿ì FIONREAD ¼ÒÄÏ¿¡¼ ´ë±â ÁßÀΠù ¹øÂ° µ¥ÀÌÅÍ ±×·¥ Å©±â ¹Ýȯ(&N)¡£
-
SIOCATMARKnbsp;??¸ðµç-¹êµå µ¥ÀÌÅÍ Àб⠿©ºÎ¸¦ °áÁ¤ ÇÕ´Ï´Ù. ÀÌ À¯Çü-¹êµå µ¥ÀÌÅÍ (SO_OOBINLINE)¿¡ ¼± ¼ö½Å ±¸¼º SOCK_STREAM ¼ÒÄÏ¿¡¸¸ Àû¿ë µË´Ï´Ù. -¹êµå µ¥ÀÌÅͰ¡ ÀÐÀ» ¼ö ÀÖµµ·Ï ´ë±â ÇÏ´Â °æ¿ì ÀÛ¾÷ÀÌ 0ÀÌ ¾Æ´Ñ ¹Ýȯ ÇÕ´Ï´Ù. ±×·¸Áö ¾ÊÀ¸¸é 0À» ¹Ýȯ ÇÏ °í ¼ö½Å ¶Ç´Â ReceiveFrom ¼ÒÄÏ¿¡¼ ¼öÇàÀ» ÀϺΠ¶Ç´Â ÀüºÎÀÇ ¾Õ¿¡ "¸¶Å©"; µ¥ÀÌÅÍ °Ë»ö ÀÀ¿ë ÇÁ·Î±×·¥ µ¥ÀÌÅͰ¡ ³²¾Æ ÀÖ´ÂÁö ¿©ºÎ¸¦ È®ÀÎ ÇÏ·Á¸é SIOCATMARK ÀÛ¾÷À» »ç¿ë ÇØ¾ß ÇÕ´Ï´Ù. ¾î¶² ÀÏ¹Ý µ¥ÀÌÅÍ "±ä±Þ" (¹êµå) µ¥ÀÌÅÍ ¾Õ ÀÌ¸é ¼ø¼·Î ¹ÞÀº °ÍÀÔ´Ï´Ù. (Note ¼ö½Å ¶Ç´Â ReceiveFrom ´Â µ¿ÀÏÇÑ È£Ãâ¿¡¼-¹êµå¿Í Á¤»óÀûÀÎ µ¥ÀÌÅÍ È¥ÇÕ Àý´ë °ÍÀÔ´Ï´Ù.) DWORD IOCtl °á°ú ÀúÀå¿¡¼ lpArgument ¸Å°³ º¯¼ö Æ÷ÀÎÆ®(&N)¡£
ÀÌ ÇÔ¼ö´Â ioctl() ¹öŬ¸® ¼ÒÄÏ¿¡ »ç¿ë µÇ´Â ÇÏÀ§ ÁýÇÕ. ƯÈ÷, °Å±â¿¡ FIOASYNC, SIOCATMARK ´Â Áö¿ø µÇ´Â ¼ÒÄÏ ¼öÁØÀÇ ¸í·É ¾øÀ½ ¸í·É¡£
CAsyncSocket °³¿ä |nbsp; Ŭ·¡½º ¸â¹ö (ko) | °èÃþ ±¸Á¶ Â÷Æ®(&N)
Âü°í Ç׸ñnbsp;CAsyncSocket::AsyncSelect, CAsyncSocket::Create, CAsyncSocket::GetSockOpt, CAsyncSocket::SetSockOpt(&N)