¾È³çÇϼ¼¿©...
 
 ¼ÒÄÏ ÇùÖÀ» Çϴµ¥..
 ÀÏ´Ü ¿¬°áÀº Àß µÆ±¸¿©..
 ¿¬°áµÈ ´ÙÀ½¿¡ ¹Ù·Î FD_WRITEµµ Àß ¹Þ¾Ò½À´Ï´Ù.
 Ã¹¹øÂ° FD_WRITE¿¡¼­´Â ¾Æ¹« Àϵµ ¾ÈÇÏ°í ³Ñ¾î°¡±¸¿ä.
 ±×·±µ¥ ¹®Á¦´Â ´ÙÀ½ FD_WRITE°¡ ¿ÀÁú ¾Ê°í...
 °è¼Ó ŸÀӾƿô¸¸ ³ª¿À´Âµ¥...
 
 ¹«½¼ ¹®Á¦Àϱî¿ä?    

 FD_WRITE¿Í ¸ðµç FD_½Ã¸®Áî´Â
 ´ÙÀ½ À̺¥Æ®¸¦ ¹ß»ýÄÉ ÇÏ´Â ÇÔ¼ö°¡ ÀÖ½À´Ï´Ù.
 Áï,
 FD_READ¿¡ ´ëÇØ¼­´Â Recv°ü·Ã ÇÔ¼ö(recv, recvfrom...)
 µîÀ», FD_WRITE´Â Write°ü·Ã ÇÔ¼ö¸¦ È£ÃâÇØ¾ß ÇÕ´Ï´Ù.
 FD_WRITE°¡ ¹ß»ýÇßÀ»¶§, ¼ÒÄÏ¿¡ µ¥ÀÌŸ¸¦ ½áÁÖ¾î¾ß
 ´ÙÀ½ Event°¡ ¹ß»ýÇÑ´Ù°í ÇÛÇÁ¿¡ ³ª¿À´Â°Å °°³×¿©.
 ¾Æ±Ã..
 Áú¹®¿¡ ´ëÇÑ ´ë´äÀÌ ¸Â´ÂÁö ¸ð¸¦°Ú¾î¿ä.
 ¸¶¼Ò´Â ¿Ö »õ·Î¿î ±â´ÉÀ» Ãß°¡ÇÏ¿© ³» ¸Ó¸®¸¦ ÀÌ·¸°Ô ¾ÆÇÁ°Ô Çұ.
 Á¦ ¹®Á¦µµ ´©°¡ Ç®¾îÁÖ¼¼¿©..

¾È³çÇϼ¼¿ä...
 ¾î¼¸é Àú¶û ¶È°°Àº »ý°¢À» Çϼ̴ÂÁö ±Ã±ÝÇϱº¿ä.... Çæ...-__-;;
  ÀÏ´Ü Àú °°Àº °æ¿ì´Â... ÀÏÁ¤·®ÀÇ ¼ÒÄϵéÀ» ÇÑ ¾²·¹µå¿¡¼­ °ü¸®Çϱ¸¿ä
 ÀÌ·± ¾²·¹µå°¡ ¿©·µ ÀÖ´Â ¹æ½ÄÀ» ¾µ·Á°í ÇÕ´Ï´Ù...
 ¾ÆÁ÷ Å×½ºÆ® ÁßÀÌÁÒ...
 ¼ÒÄÏ¿¡ °ü·ÃµÈ ¸ðµç µ¥ÀÌÅͳª ÇÔ¼ö´Â Ŭ·¡½º·Î ¹­¾î¼­
 ¸®½¼ ¾²·¹µå°¡ ÀÔ·ÂÀ» °¨½Ã... ¿¬°áµÇ¸é µ¿ÀûÀ¸·Î °´Ã¼¸¦ »ý¼ºÇؼ­
 ´ÙÀ½ ¾²·¹µå°¡ °ü¸®ÇÏ´Â ¼ÒÄÏ ¸®½ºÆ®¿¡ ³Ö±¸¿ä..    

½ÇÁ¦ ÀÔÃâ·ÂÀ» ´ã´çÇÏ´Â ÀÌ ¾²·¹µå¿¡¼­´Â ¸®½ºÆ®¸¦ Çϳª¾¿
 ¼øÈ¸Çϸ鼭 ÇØ´ç ¼ÒÄÏ °´Ã¼¿¡ ´ëÇØ waiteventÇØ¼­
 ÀÔ·ÂÀ̳ª Ãâ·Â »çÇ×ÀÌ ÀÖÀ½ ó¸®ÇÏ´Â °ÅÁÒ..
 ¹°·Ð °¢°¢ÀÇ ¼ÒÄÏ °´Ã¼´Â ÀÔÃâ·ÂÀ» À§ÇÑ Å¥¸¦ °®´Â ±¸Á¶ÀÔ´Ï´Ù...
 ÀÌÁ¦ Á¦ Áú¹®Àä...
 ´ÙÀ½ fd_write°¡ ¹ß»ýÇÏ·Á¸é, send() ÇÔ¼ö ºÎ·ù¸¦ ºÒ·¯¾ß µÈ´Ù°í¿ä?
 ¸¸¾à º¸³¾ ÀÚ·á°¡ ¾øÀ½ ¾î¶±ÇÏÁÒ?
 fd_writeÀÇ °æ¿ì º¸³¾ Áغñ°¡ µÇ¾î ÀÖ´Ù´Â °Í»ÓÀε¥..
 º¸³¾ Áغñ´Â µÇ¾úÁö¸¸, º¸³¾ µ¥ÀÌÅͰ¡ ¾ø´Ù¸é, ????  

¼­·Î µµ¿òÀÌ µÇ¾úÀ½ ÁÁ°Ú±º¿ä..±×·³ À̸¸.

 ¾È³çÇϼ¼¿ä..
 
 Çغôµ¥.... °¡±ä °¡´Â±º¿ä.
 ±×·± ´ÙÀ½¿¡´Â.... ´Ù½Ã FD_WRITE°¡ ¿ÀÁú ¾Ê±¸¿ä....¿¡±Ã..
 WSAEWOULDBLOCKÀÌ ³ª¼­ ¿¡·¯·Î ³¡³ª¾ß ´Ù½Ã ³ª¿À´Â °Å °°Àºµ¥..
 ¾î¶»°Ô ÇØ¾ß ³¯±î¿ä?? -_____________________-;;   

 ¾È³çÇϼ¼¿ä..
 Àúµµ ºñ½ÁÇÑ ¹æÇâÀ¸·Î »ý°¢À» ÇÏ´Ù°¡..
 È¿À²ÀÌ ¶³¾îÁú°Å °°¾Æ¼­ ¿ì¹°ÂÞ¹° Çϰí ÀÖ½À´Ï´Ù.
 ÀÏ´Ü FD_WRITE ¿¡ ´ëÇÑ ÀúÀÇ »ý°¢À» ¸»¾¸ µå¸®ÁÒ.
 FD_WRITEÀÇ À̺¥Æ®°¡ ¹ß»ýÇÏ·Á¸é EventSelect¸¦ ÇØ¾ßÇϱ¸¿ä.
 ÀÌ°Ç µ¥ÀÌŸ¸¦ º¸³»·Á°í ÇÒ¶§ ¼³Á¤ÇÏ°Ô µÇ´Â °ÅÁÒ.
 ¼ÒÄÏÀ̶õ ¾ç ³¡´ÜÀÌ Á¸ÀçÇÏ¿© »ó´ë¹æÀÌ Recv¸¦ ÇÏ¿©¾ß
 °è¼ÓÇÏ¿© Send¸¦ ÇÒ¼ö ÀÖ½À´Ï´Ù. ¹öÆÛÇѰ趫ÀÌÁÒ.
 ¼ÒÄϹöÆÛ´Â Á¤»óÀûÀÎÀÌ»ó(»ó´ë¹æÀÌ Á¤»óÀ̶ó¸é °è¼Ó
 µ¥ÀÌŸ¸¦ ÀаÚÁÒ?)FD_WRITE °¡ °è¼Ó ¹ß»ýÇϰÚÁÒ.
 ÀÌ·± Ư¼º¶§¹®¿¡, ÇϳªÀÇ ¼ÒÄÏ¿¡ ´ëÇØ¼­
 FD_READ¿Í FD_CLOSE´Â Ç×»ó ¼³Á¤µÇ¾î ÀÖ¾î¾ß Çϰí,
 FD_WRITE´Â º¸³¾ µ¥ÀÌŸ°¡ ÀÖÀ»¶§¸¸ Çѹø¼³Á¤Çϴ°̴ϴÙ.
 °á·ÐÀûÀ¸·Î,
 FD_WRITE¸¦ ´õ ¹Þ°í ½Í´Ù¸é,

 WSASelectEvent¸¦ FD_WRITE·Î ¼³Á¤ÇÏ¿©¾ß Çϰí,
 ´õº¸³¾ µ¥ÀÌŸ°¡ ¾ø´Ù¸é ±âº»¼³Á¤(FD_READ, FD_CLOSE)À¸·Î
 Çسõ¾Æ¾ß ÇÏÁÒ.
 
 ÀÌÁ¦ ±Ã±ÝÇÑÁ¡À» ¹°¾îº¼²²¿ä.
 Àú´Â ¿©Å²¯ WSAAsyncSelect¸¦ »ç¿ëÇÏ¿© ¸Þ¼¼Áö 󸮸¦ ÇØ
 ¿Ô½À´Ï´Ù. ±×·¯´Ù ¸ÖƼ ¾²·¹µå¸¦ °í·ÁÇÏ¿© ¶óÀ̺귯¸®¸¦
 À籸¼ºÇÏ·Á ÇÏ¿© WSAEventSelect±¸Á¶·Î ¹Ù²Ù·Á´Â Áß¿¡..
 WSAEventSelect´Â (¾Æ±Ã,, À§¿¡ WSASelectEvent´Â Ʋ¸°°Å³×¿©)
 À̺¥Æ® ¹ß»ý½Ã ¾î´À ¼ÒÄÏ¿¡¼­ ¹ß»ýÇÑ À̺¥Æ®ÀÎÁö ¾Ë¼ö ¾ø´Ù´Â
 ¹®Á¦°¡ »ý±ä°Ì´Ï´Ù.
 Áï ¸®½¼¼ÒÄÏ¿¡¼­ 1000°³ÀÇ Child terminal¼ÒÄÏÀ» »ý¼ºÇÏ¿©
 °ü¸® ÇÏ´Â °æ¿ìÀÇ Select½Ã FD_READ? ¹ß»ýÇÑ´Ù¸é
 1000°³ÀÇ ¼ÒÄÏÀ» ÀüºÎ EnumNetworkEventÇÏ¿© Á¶»çÇØ¾ß ÇÏÀݾƿ©?
 ¾î¶² ¾Ö°¡ À̺¥Æ®¸¦ ¹ß»ý½ÃÄ×´ÂÁö¿¡ ´ëÇØ¼­¿ä.     

¹°·Ð ¾²·¹µåÀÇ ¼ö°¡ ¼ÒÄϼö¿Í °°´Ù¸é ¹®Á¦ ¾øÁö¸¸.
 ¾²·¹µå Çϳª´ç ¼ÒÄÏ 20°³ Á¤µµ¿¡ ´ëÀÀ½ÃÄѵµ ¸¶Âù°¡Áö·Î
 ÃÖ´ë 20¹øÀÇ EnumNetworkEventÀÇ È£ÃâÀº ºÒ°¡ÇÏ´Ù´Â ¾ê±âÁÒ.
                                          ÇÇ
 ÀÌ°Ç  ¸Þ¼¼Áö ¹æ½Ä¿¡ ºñÇØ ³Ê¹« ºÒÇÕ¸®ÇÑ ¹æ¹ýÀ̶ó°í »ý°¢ÀÌ
 µé¾î¼­¿ä.
 ±ò²ûÇÑ ¼ÒÄÏ2¹æ½ÄÀÇ ¸ÖƼ¾²·¹µå Ŭ·¡½º¸¦ »ý¼ºÇÏ·Á´Ù
 ¿À¹öÇìµå°¡ »ý°¢º¸´Ù Å©±º¿ä.
 ÃÖÀÎÈ£´ÔÀº ¾î¶»°Ô ÇØ°áÇÏ·Á´Â »ý°¢À̽ÅÁö ±Ã±ÝÇÕ´Ï´Ù.
 ±×·³ Á¶¾ð ºÎŹÇÕ´Ï´Ù.

 ¾È³çÇϼ¼¿ä....
 
 ¸ÕÀú Á¦°¡ »ý°¢ÇÏ´Â ¹æ¹ý¿¡ ´ëÇØ ¼³¸íÀ» µå¸®ÁÒ.
 
 Èì.. Á¦°¡ »ý°¢ÇÏ´Â ¹æ¹ýÀº...
 
 WSAEventSelect(s1, event1, FD_~~~~~);
 WSAEventSelect(s2, event2, FD_~~~~~);
 
 ~~
 WSAEventSelect(sn, eventn, FD_~~~~~);
 
 À§ÀÇ ¹®ÀåÀÌ °¡´ÉÇÏ´Ù´Â °¡Á¤ÀÌ µÇ¾î¾ß ÇÕ´Ï´Ù.
 
 WSAEventSelect()ÀÇ °æ¿ì ÇÑ ¼ÒÄÏ¿¡ ´ëÇØ µÎ°³ÀÇ À̺¥Æ®·Î

 ´Ù¸¥ ³×Æ®¿öÅ© À̺¥Æ®¸¦ °¨½ÃÇÏ´Â °ÍÀÌ ºÒ°¡´ÉÇÕ´Ï´Ù.
 ÇÏÁö¸¸, ´Ù¸¥ ¼ÒÄÏÀÎ °æ¿ì´Â ´ç¿¬È÷~(?) »ó°ü¾ø´Ù°í »ý°¢....
 ¾ÆÁ÷ Å×½ºÆ®¸¦ ÇØº¸Áö ¸øÇß¼­ ¹¹¶ó ¸»¾¸ µå¸± ¼ö´Â ¾øÁö¸¸..
 
 ±×·³ º»°ÝÀûÀ¸·Î ¼³¸íÀ» µå¸®ÁÒ.
 Á¦°¡ »ý°¢ÇÏ´Â °ÍÀº ÇϳªÀÇ ¸®½¼ ¾²·¹µå¿Í ´Ù¼öÀÇ ÀÛ¾÷ ó¸®
 ¾²·¹µå·Î ±¸¼ºµË´Ï´Ù.
 
 ¸®½¼ ¾²·¹µå¿¡¼­´Â ¿¬°áÀÌ Çã¿ëµÇ¾úÀ» ¶§, ¼ÒÄÏ °´Ã¼¸¦ µ¿ÀûÀ¸·Î
 »ý¼ºÇÕ´Ï´Ù. ¼ÒÄÏ °´Ã¼¿¡´Â ¼ÒÄϵð½ºÅ©¸³ÅÍ, À̺¥Æ®ÇÚµé, ¼Û½Å Å¥, ¼ö½Å Å¥,
 ±âŸ ¸â¹ö º¯¼ö¿Í WSAWaitMultipleEventSelect()ÇÔ¼ö¸¦ È£ÃâÇÏ´Â ¸â¹ö ÇÔ¼ö¿Í
 ±âŸ ¸â¹ö ÇÔ¼öµéÀ» °®½À´Ï´Ù.
 °´Ã¼¸¦ »ý¼ºÇϸé, °¢ ÀÛ¾÷ ¾²·¹µå Áß¿¡ Çϳª¸¦ ¼±ÅÃÇÏ°Ô µÇ°í, ÀÌ ÀÛ¾÷ ¾²·¹µå°¡
 °ü¸®ÇÏ´Â ¼ÒÄÏ Å¬·¡½º Æ÷ÀÎÅÍ ¸®½ºÆ®¿¡ ¼ÒÄÏ °´Ã¼ÀÇ Æ÷ÀÎÅ͸¦ Ãß°¡ÇÕ´Ï´Ù.
 ÀÌ·¸°Ô ¸®½¼ ¾²·¹µåÀÇ ÀÛ¾÷Àº ³¡À̱¸¿ä..

 ÀÌÁ¦ °¢ ÀÛ¾÷ ½º·¹µå¸¦ º¸¸é..
 ¸®½ºÆ®¸¦ ¼øÈ¸Çϸ鼭 ó¸®ÇÏ°Ô µÇ¾îÀÖ½À´Ï´Ù.
 ¸®½ºÆ®ÀÇ Çìµå³ëµåºÎÅÍ µÚÁ®¼­ ÇØ´ç ³ëµåÀÇ ¼ÒÄÏ °´Ã¼ Æ÷ÀÎÅ͸¦ ã¾Æ,
 ¼ÒÄÏ °´Ã¼ÀÇ WaitEvent ÇÔ¼ö¸¦ ºÎ¸¨´Ï´Ù. ¿©±â¿¡¼­ ¸ðµç ¼ÒÄÏ ÀÛ¾÷ÀÌ
 ÀÌ·ç¾î Áý´Ï´Ù. ¼Û½ÅÇÒ °ÍÀÌ ÀÖÀ¸¸é, ¼Û½Å Å¥¿¡¸¸ ³Ö¾îÁÖ¸é, fd_write°¡ ¹ß»ýÇßÀ» ¶§
 ,
 ¼Û½Å Å¥¸¦ µÚÁ®¼­ º¸³¾ ¸Þ½ÃÁö°¡ Á¸ÀçÇÏ¸é ¼Û½ÅÇϰí, ¹ÞÀº ¸Þ½ÃÁö´Â ¼ö½Å Å¥¿¡ ³Ö¾î
 ÁÖ°í
 À©µµ¿ì¿¡ À©µµ¸Þ½ÃÁö¸¦ º¸³»¸é, ¸ÞÀξîÇø®ÄÉÀÌ¼Ç ¾²·¹µå°¡ Àоî¿À´Â ¹æ¹ýÀÌÁÒ.
 
 Áï, ÇϳªÀÇ WSAEventSelect() ÇÔ¼ö´Â ÇϳªÀÇ ¼ÒÄϰú¸¸ ¸ÅÄ¡µÇ´Â °ÍÀÌÁÒ.
 ÀÌÁ¦ °£´ÜÈ÷ Á¦ ¼³¸íÀ» ¸¶Ãƴµ¥¿ä...  

 ÀÌÁ¦ ´Ù½Ã Á¦°¡ Áú¹®ÇÒ Â÷·Ê±º¿ä... ^^;
 Áö±Ý ¹®Á¦°¡ µÇ´Â °ÍÀÌ.... Ŭ¶óÀ̾ðÆ®ÀÇ °æ¿ì, ¿¬°áÀÌ µÊ°ú µ¿½Ã¿¡
 fd_write°¡ ¹ß»ýÇÏ´Â µ¥, Áö±ÝÀ¸·Î¼­´Â ¼Û½Å Å¥¿¡ º¸³¾ ¸Þ½ÃÁö°¡ ¾øÀ¸¹Ç·Î,
 ¾Æ¹«·± 󸮵µ ¾ÈÇÏ°í ³Ñ¾î°©´Ï´Ù. ±×·± ´ÙÀ½ ¼Û½Å Å¥¿¡ ¸Þ½ÃÁö¸¦ ³Ö¾î Á൵,
 fd_write°¡ ¹ß»ýÇÏÁö ¾Ê±â ¶§¹®¿¡ ¼Û½ÅÀÌ ¾ÈµÈ´Ù´Â °ÍÀÌÁÒ...-__-;;
 ¸»¾¸µè°í, ¸Þ½ÃÁö°¡ ¾ø¾îµµ WSASend¸¦ È£ÃâÇØ¼­ 0¹ÙÀÌÆ®¸¦ ¼Û½ÅÇߴµ¥µµ,
 ¹ß»ýÇÏÁö ¾Ê´õ±º¿ä...-_-''
 ¸¸¾à, WSAEventSelect·Î fd_write¸¦ »°´Ù°¡ ´Ù½Ã ³ÖÀ¸¸é, fd_write°¡ ¹ß»ýÇÒ ±î¿ä?
 Èì....
 
 ¶Ç ¸ð¸£´Â °ÍÀÌ ÀÖÀ½ Áú¹®ÇϰڽÀ´Ï´Ù...
 ±×·³ ¼ö°íÇϼ¼¿ä..   

 ÀÏ´Ü ´äº¯ºÎÅÍ..
 ¾î¶² ¼ÒÄÏ¿¡ µ¥ÀÌŸ¸¦ º¸³»·Á ÇÒ¶§ Å¥¿¡´Ù°¡ µ¥ÀÌŸ¸¦ ³Ö´Â´Ù°í
 ÇßÁÒ.. À̶§ ±× ¼ÒÄÏ¿¡ WSAEventSelect(sx, eventx, FD_WRITE);
 ·Î ¼³Á¤À» µ¿½Ã¿¡ ÇØÁÝ´Ï´Ù.
 ±×·³.. À̺¥Æ®°¡ ¹ß»ýÇϸ鼭 FD_WRITE°¡ ¹ß»ýÇÏÁÒ.
 Áï ÇϳªÀÇ WSAEventSelect()¿¡ ´ëÇØ ÇѹøÀÇ FD_WRITE°¡ ¹ß»ýÇÕ´Ï´Ù.
 Àúµµ À̺¥Æ®¿¡ ´ëÇØ¼­´Â ½Ãµµ Çϰí ÀÖ´ÂÁßÀ̶ó..
 ÇÏÁö¸¸ ÀÎÈ£´ÔÀÇ °èȹ¿¡¼­ ÀÌ·¸°Ô ÇÑ´Ù¸é µÉ°Å °°³×¿©.
 
 Áú¹® ÀÔ´Ï´Ù.
 Àúµµ ÇöÀç ÀÎÈ£´ÔÀÇ »ý°¢´ë·Î ±âȹÇÏ·Á°í Çß½À´Ï´Ù.
 ¹®Á¦Á¡ÀÌ ÀÖ´õ±º¿ä.
 ÇϳªÀÇ ¾²·¹µå´Â º¹¼ö °³ÀÇ À̺¥Æ®¸¦ µ¿½Ã¿¡ ±â´Ù¸±¼ö ÀÖ½À´Ï´Ù.
 ÇöÀç ´ÙÅ¥¸ÕÆ®¿¡ ³ª¿Â ÇѰè·Î´Â 64°³·Î ¼³Á¤µÇ¾î ÀÖ½À´Ï´Ù.
 Áï ÇöÀç win32¿¡¼­ APIÀÇ ÃÖ´ë 64°³ÀÇ À̺¥Æ®¸¦ ±â´Ù¸±¼ö ÀÖ½À´Ï´Ù

 (WaitForMultipleObjects()ÂüÁ¶.. WSAWaitFor... Àº Win32 API¸¦
 Wrapping½ÃŲ°É °Åµç¿ä.)
 ±×·¸´Ù¸é ¾²·¹µå´ç 64°³ÀÇ À̺¥Æ®°³, 180°³ÀÇ ÇÁ·Î¼¼½º´ç ¾²·¹µå
 ÇѰ踦 °í·Á ÇÑ´Ù¸é... ¼­¹öÀÇ Åë½Å¶óÀ̺귯¸®·Î ³Ê¹« ¸¹Àº ¸®¼Ò½º
 ¸¦ »ç¿ëÇÑ´Ù´Â °è»êÀÔ´Ï´Ù.
 Á¦ »ý°¢¿¡´Â 10000°³ ÀÌ»óÀÇ Á¢¼ÓÀ» ¹Þ´Â ¼­¹ö·Î(ÀÌ·ÐÀûÀθé)
 ¼³°èµÇ¾î¾ß Çϰí, ±×·¯·Á¸Õ ¼ÒÄÏ Åë½Å ¸ðµâ¿¡¼­¸¸ ³Ê¹« ¸¹Àº ¾²·¹µå¸¦
 »ç¿ëÇϴ±º¿ä.. Ȥ½Ã ÀÌ·¯ÇÑ ¹®Á¦¸¦ °í·ÁÇß´ÂÁö ±Ã±ÝÇϰí..
 ´Ù¸¥ ÇØ°áÃ¥ÀÌ ¾ø³ª ÇØ¼­¿ä..
 ÇÁ·Î¼¼½º´ç 180°³ÀÇ ¾²·¹µå¹Û¿¡ »ý¼ºÇÒ¼ö ¾ø´Ù´Â°Ç
 AfxBeginThread()ÇÔ¼ö¸¦ ·çÇÁ¸¦ µ¹·Á¼­ »ý¼ºÇØ ºÃ½À´Ï´Ù.
 À̰Ϳ¡ ´ëÇÑ ÇØ°áÃ¥À¸·Î
 WSAEventSelect(s1, event1, FD_READ);
 WSAEventSelect(s2, event1, FD_READ);
 ...                                 

...
 µîÀ¸·Î ¿©·¯ ¼ÒÄÏÀÌ ÇϳªÀÇ À̺¥Æ®¸¦ °øÀ¯ÇÏ´Â °Ì´Ï´Ù.
 ±×·¯¸é ¼ÒÄÏ¿©·¯°³¸¦ ¾²·¹µå Çϳª°¡ °ü¸® ÇÒ¼ö ÀÖ°Ú´õ±º¿ä.
 ±Ùµ¥ À̺¥Æ®°¡ ¹ß»ýÇÏ¸é ¾î´À ¼ÒÄÏ¿¡¼­ ¹ß»ýÇß´ÂÁö´Â ¸ð¸£°Ú´õ±º¿ä.
 ¼ÒÄÏÀ» ¼ø¼­´ë·Î °Ë»öÇÏ´Â ¹æ¹ý ¿Ü¿¡´Â¿ä.
 
 ´äº¯ ±â´Ù¸±²²¿ä..  

 ÀÎÈ£´ÔÀÇ ¾ÆÀ̵ð¾î´Â Á¦°¡ °í·ÁÇÏÁö ¸øÇÑ ºÎºÐÀä..
 ÁÁÀº ÇØ°áÃ¥ÀΰŠ°°½À´Ï´Ù.
 Looping¹æ½Ä¿¡ ÀÇÇÑ ÀÏÁ¾ÀÇ polling°³³äÀε¥..
 ±×·¸´Ù¸é Á¦°¡ »ý°¢ÇÑ ¹®Á¦¸¦ ÇØ°áÇÒ¼ö ÀÖ´Â ¹æ¹ýÀä..
 ÇÏÁö¸¸ 2°¡Áö ¿À¹öÇìµå°¡ ÀÖ°Ú±º¿ä.
 1¹øÂ°·Î ¼ÒÄÏÀ» ƯÁ¤½Ã°£ °£°ÝÀ¸·Î pollingÇϱ⠶§¹®¿¡
 ÀÏÀÌ ¾øÀ» °æ¿ì Á×¾î ÀÖ¾î¾ß ÇÒ Thread°¡ °è¼ÓÀûÀ¸·Î »ì¾Æ
 ³ª°Ô µË´Ï´Ù. Event°¡ ¹ß»ýÇÏÁö ¾Ê¾Æµµ ¸»ÀÌÁÒ.
 À̰ÍÀº WaitForMultipleevents()ÀÇ ½Ã°£À» ª°Ô ÇÒ¼ö·Ï
 Å©°Ô µÎµå·¯Áö´Â ¿À¹öÇìµåÀÔ´Ï´Ù.
 2¹øÂ°·Î ¸¶Âù°¡Áö °³³ä¶§¹®¿¡ ¾î¶² ¼ÒÄÏ¿¡ ÀÐÀ» µ¥ÀÌŸ°¡
 ÀÖ°Ô µÉ°æ¿ì, Looping¼ÒÄÏÀÌ ¸¹¾ÆÁö¸é µ¥ÀÌŸ°¡ ¹ß»ýÇÏ´Â
 ¼ø°£ Àд °ÍÀÌ ¾Æ´Ï¶ó PollingŸÀֶ̹§ Àоî¿À¹Ç·Î
 µÚ´Ê°Ô ¼ÒÄÏ¿¡¼­ µ¥ÀÌŸ¸¦ Àоî¿À°Ô µÇ´Â°Ì´Ï´Ù.
 WaitForMultipleEvent()ÀÇ ½Ã°£À» ±æ°Ô ÇÒ¼ö·Ï

 µÎµå·¯ Áö´Â ¿À¹öÇìµå ÀÌÁÒ..
 À̹®Á¦´Â 100¹Ð¸®¼¼ÄÁµåÀÇ Delay¸¸ ¹ß»ýÇÏ´õ¶óµµ
 ¼ÒÄÏÀÇ ¼º´É¿¡´Â Å« ¿µÇâÀ» ¹ÌĨ´Ï´Ù.
 ¼ÒÄÏ ¹öÆÛ°¡ 4096ÀÏ °æ¿ì, ÃÊ´ç 40K ÀÌ»óÀÇ ¼º´ÉÀº Àý´ë·Î
 ¾È³ª¿À´Ï±î¿ä.. Áï »ó´ë¹æ ¼ÒÄÏ ¹öŶ¿¡¼­ µ¥ÀÌŸ¸¦ º¸³»·Á
 Çصµ ¼­¹öÀÇ ÀÌ·¯ÇÑ ·çÇΰ³³ä¶§¹®¿¡ »ý±ä Read Delay´Â
 »ó´ë¹æ ¼ÒÄϹöŶ¿¡¼­´Â WouldBlockÀÇ Error¸¦ ³»°í
 ´õÀÌ»ó Send¸¦ ÇÒ¼ö ¾ø°Ô ¸¸µé°Åµç¿ä.
 
 µÎ¹øÂ° ¹®Á¦Á¡Àº ¶óÀ̺귯¸®·Î¼­´Â Ä¡¸íÀûÀÎ °áÇÔÀÌ µÉ°Å
 °°½À´Ï´Ù.
 °á±¹ Event Driven¿¡ À§¹èµÇ´Â Æú¸µ ¹æ½ÄÀº ¿©·¯ °áÇÔÀÌ
 »ý±é´Ï´Ù..
 
 ÃÖ´ëÇÑÀÇ ¿À¹öÇìµåÃà¼Ò´Â

 WaitForMultipleEvents()ÇÔ¼ö¿¡¼­ Event¿ÀºêÁ§Æ®°¹¼ö¸¦
 ÃÖ´ë·Î Å©°Ô ÇÏ´Â ¹æ¹ý¹Û¿¡´Â ¾ø½À´Ï´Ù..
 Áï 10°³ÀÌ»ó ¹­¾î¼­ ¿©·¯ ¿ÀºêÁ§Æ®¸¦ µ¿½Ã¿¡ ±â´Ù¸®´Â..
 
 Èì.. ÀúÀÇ ÁïÈïÀûÀÎ-Ȥ½Ã Á¦°¡ »ý°¢Ä¡ ¸øÇÑ ´Ù¸¥ ÇØ°áÃ¥ÀÌ
 ÀÖÀ»¼ö ÀÖÀ¸´Ï±î¿ä-»ý°¢ À̾ú½À´Ï´Ù.

 FD_READ´Â Àоî¾ß ÇÒ µ¥ÀÌÅͰ¡ ¼ö½ÅµÉ¶§¸¶´Ù Å뺸µÇÁö¸¸ FD_WRITE´Â ±×·¸Áö
 ¾Ê½À´Ï´Ù.
 
 À̰ŠÀü¿¡µµ ÁÖÀÇÇ϶ó°í ±Û ¾´ ÀûÀÌ ÀÖ´Â°Í °°Àºµ¥... FD_WRITE ¸Þ½ÃÁö°¡ Å뺸µÇ´Â
 ½ÃÁ¡Àº ¼ÒÄÏÀÌ Ã³À½ ¸¸µé¾îÁ®¼­ ¼Û½ÅÀÌ °¡´ÉÇØ Áø ½ÃÁ¡¿¡ Çѹø, ±×¸®°í ¸Þ½ÃÁö Àü¼Û
 µµÁß ºí·ÏÅ·ÀÌ °É·Á ¼Û½ÅÀÌ ÁߴܵǾúÀ» °æ¿ì, Àá½ÃÈÄ ¼ÒÄÏÀÇ ºí·ÏÅ·ÀÌ Ç®·Á ¸Þ½ÃÁö
 Àü¼ÛÀÌ °¡´ÉÇØ Áú¶§ Çѹø Å뺸µË´Ï´Ù.
 
 ÀÌ°Í À߸ø ÀÌÇØÇϽðí ÇÁ·Î±×·¥ ÇϽøé Àß Àü¼ÛµÇ´Ù °©ÀÚ±â Àü¼ÛÀÌ ¾ÈµÇ´Â µî
 ÀÌ»óÇÑ Çö»óÀÌ ¹ß»ýÇÒ °Ì´Ï´Ù. »ç½Ç ºí·ÏÅ· »óȲÀ̶ó´Â °ÍÀº LANȯ°æ ¾Æ·¡¿¡¼­
 Å×½ºÆ® ÇÒ ¶§¿¡´Â °ÅÀÇ ¹ß»ýÇÏÁö ¾Ê±â ¶§¹®¿¡ ³ªÁß¿¡ ½ÇÁ¦·Î ¼­ºñ½º ÇÒ¶§ À̹®Á¦°¡
 ¹ß»ýÇÏ¿© ³¶ÆÐ¸¦ º¸´Â °æ¿ì°¡ ÀÖÀ» ¼ö ÀÖ½À´Ï´Ù.   

 ¾Æ.. Á¦°¡ À߸ø»ç¿ëÇÏ°í  ÀÖ¾ú±º¿ä.
 ±×·¡µµ º°¹®Á¦ ¾øÀÌ »ç¿ëÇ߰ŵç¿ä.
 º¸³»·Á°í ÇÒ¶§¸¶´Ù Àç ¼³Á¤À» ÇØ¼­ »ç¿ëÇßÀ¸´Ï ¹®Á¦°¡
 ¾ø¾ú±º¿ä.. °í¸¿½À´Ï´Ù..
 ¼öÁ¤ÇÏ·Á¸é »ý°¢Á» ÇØºÁ¾ß °Ú±º¿ä.. Çã

¾È³çÇϼ¼¿ä...
 
 À½.. ¿ä½Ä´Ô ´äº¯ Àß Àоú½À´Ï´Ù.
 Àúµµ »ç½Ç ±×·¯ÇÑ ¿À¹öÇìµå¿¡ ´ëÇØ °ÆÁ¤À» Çß½À´Ï´Ù.
 ±×¸®°í, waittimeÀ» Àß Á¶ÀýÇÏ¸é »ó´çÈ÷ °¡´É¼ºÀÌ ÀÖÀ¸¸®¶ó »ý°¢Çߴµ¥..
 Èì.. µÎ¹øÂ° ¿À¹öÇìµåÀÇ ¹®Á¦¸¦ »ý°¢ÇÏÁö ¸øÇß±º¿ä..
 ¸®½ºÆ®¿¡ ¼ÒÄÏÀÌ ¸¹Àº °æ¿ì, À̺¥Æ® ¹ß»ýÈÄ, Æú¸µµÇ´Â ½ÃÁ¡±îÁö...
 ´ë±â ½Ã°£ÀÌ ±æ¹Ç·Î.... »ó´ëÆíÀÇ wouldblock....
 ÇãÇã... ³­°¨Çϳ׿ä..
 ±×·¸´ã, À̺¥Æ®µå¸®ºì ¹æ½ÄÀ¸·Î ÇϱⰡ ³­°¨ÇØÁö´Âµ¥....-_-;;
 À©µµ¿ì¿¡ ¸Þ½ÃÁö¸¦ º¸³»´Â ¹æ½Äº¸´Ù ºü¸£¸®¶õ ¿¹»ó¶§¹®¿¡
 ÀÌ ¹æ½ÄÀ» °í·ÁÇÏ°Ô µÇ¾ú´Âµ¥, ¹®Á¦°¡ ¸¹±º¿ä...
 Èì³Ä.. ¹º°¡ ¹æ¹ýÀÌ ÀÖÀ»¹ýµµ Çѵ¥..
 ÀÌ·± ¹®Á¦¸¦ ÇØ°áÇÒ ¹æ¹ýÀÌ ¾ø´Ù¸é, À̺¥Æ®µå¸®ºì ¹æ½ÄÀÇ Çʿ伺ÀÌ
 °ÅÀÇ ¾ø±º¿ä... ¿¡±¸.. ¹¹ µ¥¸ó ÇÁ·Î±×·¥À» ¸¸µé °ÍµÎ ¾Æ´Ï±¸.

 ¿ä½Ä´Ô °°ÀÌ °í¹Î Á» ÇØº¸ÁÒ... ^^;
 °¡´ÉÇϸé ÀÌ ¹æ¹ýÀ» °í¼öÇÏ°í ½Í±ä ÇÏÁö¸¸..
 ¾ÈµÈ´Ù¸é... °á±¹.... ±¸Á¶ ÀÚü¸¦ ¹Ù²Ù¸é..
 ¾Ö¸ÅÇÏ´Ù ¾Ö¸ÅÇØ.... ±×·³ ¼ö°íÇϼ¼¿ä..      

¾Æ±î ±ôºýÇß¾ú´Âµ¥¿ä..
 
 ¾Æ·¡ ±ÛÀÇ ¼ÒÄÏ ¹öÆÛ°¡ 4096À̶ó´Â °ÍÀº...
 ³×Æ®¿öÅ© Ä«µåÀÇ ¹öÆÛ¸¦ ¸»¾¸ÇϽŠ°Ç°¡¿ä?
 ¾Æ´Ï¸é ÇÁ·Î±×·¥»ó¿¡¼­ ÀâÀº ¹öÆÛ »çÀÌÁ ¸»¾¸ÇϽô °Ç°¡¿ä?
 ÈÄÀÚÂÊÀÎ °Å °°Àºµ¥...
 ±×¸®°í 40kÀÇ ¼º´ÉÀ̶ó´Â °Íµµ...
 ¼­¹öÂÊÀÔ´Ï±î ¾Æ´Ï¸é Ŭ¶óÀ̾ðÆ®ÂÊÀԴϱî?
 ±Ã±ÝÇϱº¿ä... ^^;

 ¾È³çÇϼ¼¿ä..
 
 »ý°¢À» ÇØ ºÃ´Âµ¥....
 °á±¹Àº, ÇÑ ¾²·¹µå¿¡¼­ ó¸®ÇÒ ÃÖ´ë Ŭ¶óÀÌ¾ðÆ® ¼ö¸¦ Á¤ÇÑ µÚ,
 (¿¹¸¦ µé¸é, 320¸í... ÀÌ·¸°Ô¿ä..)
 64°³¾¿ÀÇ À̺¥Æ®¸¦ °®´Â À̺¥Æ® Ç®(event pool)À» ¸¸µé¾î¼­ ÇÏ´Â ¼ö°¡
 ÃÖ¼±ÀÏ °Å °°½À´Ï´Ù.
 À§ÀÇ ¿¹ÀÇ °æ¿ì´Â 5°³ÀÇ À̺¥Æ® Ç®À» °®°ÚÁÒ.
 ¾²·¹µå¿¡¼­´Â Çѹø¿¡ ÇÑ À̺¥Æ® Ç®¾¿ waiteventÇϰí..
 ´ÙÀ½ À̺¥Æ® Ç®·Î ³Ñ¾î°¡°í....
 64°³ ÀÌ»óÀ» ÇÒ ¼ö ¾ø´Ù¸é, ´Þ¸® ¹æ¹ýÀÌ ¾øÁö ¾ÊÀ»±î¿ä?
 64°³ÀÇ Å¬¶óÀÌ¾ðÆ® ¹Ì¸¸À̸é Á¤»óÀûÀÎ ¼Óµµ°¡ ³ª°Ú°í..
 ÀÌ °æ¿ì´Â Ŭ¶óÀÌ¾ðÆ® ¼ö°¡ ¸¹À¸¸é ´À·ÁÁö°Ú±º¿ä.
 ±×·¡µµ ÀüÀÇ Á¦ »ý°¢Ã³·³ 320¸íÀ» ¼øÂ÷ÀûÀ¸·Î ±â´Ù¸®´Â °Íº¸´Ù¾ß ³´°ÚÁÒ.
 °á±¹ 5¹øÀÇ WAITEVENT¸¦ ÇØ¾ß µÇ´Â °Å±º¿ä.  

±×·¸´ã Ãß°¡·Î, À̺¥Æ® Ç®ÀÇ À̺¥Æ®¸¦ ¼±ÅÃÇØ ÁÖ´Â ÀÛ¾÷°ú,
 À̺¥Æ®°¡ ¹ß»ýÇßÀ» °æ¿ì, ÇØ´ç ¼ÒÄÏÀ» ã¾ÆÁÖ´Â ¹æ¹ýÀÌ ÇÊ¿äÇϱº¿ä...-_-;
 
 
 Èì.. ±×¸®°í Çϳª Áú¹®À» Çϰڴµ¥¿ä..
 ¾îÂ¥ÇÇ ÀÌ ºÎºÐÀ» ·çÇÁ·Î µ¹¸®´Ï±î ½º·¹µå°¡ °è¼Ó ÀÛ¾÷ÇÏ´Â °ÍÀÌ ¾Æ´Õ´Ï±î?
 waitÇÏ´Â µ¿¾È µé¾î¿Â À̺¥Æ®°¡ ¾ø´Ù¸é sleepÇÏ´Â °Ç°¡¿ä?
 ÀϺη¯ Sleep(sleeptime) ÇØ ÁÙ ÇÊ¿ä´Â ¾ø°ÚÁö¿ä?
 
 
 »ý°¢Çϸé ÇÒ ¼ö·Ï »ý°¢ÀÌ ²¿ÀÌ´Â ±º¿ä.
 
 
 Á¦ »ý°¢¿¡ ´ëÇØ ¸»¾¸ÇØ ÁÖ¼¼¿ä,.,   

 ÀÎÈ£´ÔÀÌ ¸»¾¸ÇϽйæ¹ý´ë·Î ÇÑ´Ù°í ÇßÀ»°æ¿ì
 ÃÖ´ë 5°³ÀÇ event pool¿¡ ´ëÇØ Æú¸µÀ» ÇØÁÖ¾î¾ß
 ÇÏ°í ±×·²°æ¿ì WaitForMultipleEvents(s1, event1, time);
 ¿¡¼­ time°ªÀÌ Áß¿äÇÑ ÆÄ¶ó¹ÌÅÍ·Î ÀÛ¿ëÇÕ´Ï´Ù.
 ¿©±â¼­ time°ªÀº À̺¥Æ®°¡ ¹ß»ýÇϱâ Àü±îÁö ¾ó¸¶¸¸Å­ ¾²·¹µå
 ¸¦ Sleep½Ãų¼ö Àֳĸ¦ ¼³Á¤ÇÏ´Â °ÍÀ̴ϸ¸Å­..
 ÀÌ °ªÀ» ÀÛ°Ô Çϸé ÀÚÁÖ ¾²·¹µå°¡ ±ú¾î³ª¼­
 CPU timeÀ» Àâ¾Æ¸Ô°Ô µË´Ï´Ù. 1¹øÂ° ¿À¹öÇìµåÀÌÁÒ.
 ±×·¸´Ù±¸ ÀÌ °ªÀ» Å©°Ô Çϸé..
 time * 5 ¸¸Å­ÀÇ ½Ã°£À» ¼ÒÄÏ¿¡¼­ µ¥ÀÌŸ¸¦ ÀÐÁö ¸øÇÏ
 ´Â °æ¿ì°¡ »ý±â´Â °ÅÁÒ. 2¹øÂ°ÀÇ ¿À¹öÇìµåÀÔ´Ï´Ù.
 
 ¹öÆÛÅ©±â°¡ 4096À̶ó°í ÇÑ°Ç ¿¹¸¦ µé¾î¼­À̰ŵç¿ä.
 ¼ýÀÚ¿¡´ëÇØ Á¤È®È÷ ±â¾ïÀ» ¸øÇؼ­ ´ëÃæ ÀûÀº°Ì´Ï´Ù.
 ¾î·µç Á¶Á¤À» ÀßÇÏ¼Å¾ß ÇÒ°Å °°½À´Ï´Ù. ¹öÆÛ°¡ ÇÑÁ¤µÈ°Ç  

 »ç½ÇÀ̴ϱñ¿ä.
 
 Á¦°¡ »ý°¢ÇÏ´Â °Å¿¡ ¹®Á¦Á¡ÀÌ ÀÖÀ»¼ö ÀÖÀ¸´Ï
 °¨¾ÈÇϽñ¸¿ä.. µµÅ¥¸ÕÆ®¸¦ ¿Ïº®È÷ ÀÐ°í ÆÄ¾ÇÇÑ°Ô ¾Æ´Ï¶ó
 °³ÀÎÀûÀÎ °æÇè¿¡¼­ ºÐ¼®ÇѰÍÀÌ´Ï ¸¸Å­ÀÌ¿ä..
 
 ±×·³ µµ¿òÀÌ µÇ¼Ì±â¸¦..
 ¾Æ±Ã Àú´Â ¸Þ¼¼Áö ¹æ½ÄÀ¸·Î µ¹¾Æ¼­¾ß °Ú¾î¿©..
 ´ë½Å ¸ÞÀξ²·¹µå¿¡ ¿µÇâÀ» ¾È¹Þ´Â ¹æ¾ÈÀ» »ý°¢ÇØ ºÁ¾ß °Ú½À´Ï´Ù.
 Àб⠾²±â¸¸À» Àü´ãÇÏ´Â ¾²·¹µå¸¦ ¸¸µå´Â ¹æ¾ÈÀÌÁÒ.. ¸Þ¼¼Áö¹æ½ÄÀ¸·Î..
 ±×·³..  

 Èì... ¾È³çÇϼ¼¿ä.
 
 ¿ä½Ä´ÔÀÌ ¸Þ½ÃÁö ¹æ½ÄÀ¸·Î µ¹¾Æ¼±´Ù´Ï...¾Æ½±³×¿ä..
 ÂÁ... ÇÏÁö¸¸, Àü ±×´ë·Î À̺¥Æ®¹æ½ÄÀ¸·Î °¥±î ÇÕ´Ï´Ù.
 ¾îÂ¥ÇÇ ¸Þ½ÃÁöÅ¥¿¡¼­ ³»¿ëÀ» Àоî¿Í¼­ ¸Þ½ÃÁö¸¦ ó¸®ÇÏ´Â
 ¿À¹öÇìµå³ª 5¹øÀÇ Æú¸µÀ» ÇÏ´Â °æ¿ì³ª ºñ½ÁÇϸ®¶ó »ý°¢µË´Ï´Ù.
 ÀÌ´Â ¾Æ¹«Æ° Á¦ °³ÀÎÀûÀÎ »ý°¢À̰í¿ä.
 
 Èì... 4096¹ÙÀÌÆ®ÀÇ ¹öÆÛ¶ó...
 Àú´Â ÃÖ´ë 10kÀÇ ¹öÆÛ¸¦ Àâ¾ÆµÎ·Á°í Çϴµ¥..
 ÃÖ´ë ¸Þ¼¼Áö°¡ 10k¸¦ ³ÑÁö ¾ÊÀ¸´Ï±î¿ä.
 ±×¸®°í 4096¹ÙÀÌÆ®ÀÇ ¹öÆÛ¸¦ °¡Áø °æ¿ì, ÃÊ´ç 40k ÀÌ»óÀÇ ¼Óµµ°¡
 ¾È³ª¿Â´Ù°í Çϼ̴µ¥..
 ÃÊ´ç 40k¶ó¸é, E1±ÞÀÏÅÙµ¥..
 ÀÌ Á¤µµ ¼Óµµ¸é ±¦ÂúÀº °Å ¾Æ´Ñ°¡¿ä? ^^:  

 ÇÏ¿©°£ ŸÀÓÀ» Àß Á¶Á¤Çؼ­ ÃÖ´ëÀÇ È¿À²À» ³»µµ·Ï ³ë·ÂÇØ º¸ÁÒ.
 ±×·³ À̸¸.
         

 ¸Þ½ÃÁö Âɰ³Áü°ú ÇÕħ¿¡ °üÇÑ ³»¿ëÀº ¾Æ·¡ ±âÇö´Ô ¸»¾¸ ±×´ë·ÎÀÔ´Ï´Ù.
 ±×¸®°í µ¿½Ã¼ö½ÅÀÌ ¾ÈµÈ´Ù´Â °Í... Ŭ¶óÀÌ¾ðÆ® 1°³´ç ¼ÒÄÏÀÌ Å¬¶óÀÌ¾ðÆ® ¼ÒÄÏ 1°³,
 ¼­¹öÃø ¼ÒÄÏ 1°³°¡ ÇÒ´çµÈ´Ù¸é µ¿½Ã¼ö½ÅÀ̶ó´Â °³³äÀÌ ¾øÀ»°Í °°Àºµ¥¿ä... ¾îÂ÷ÇÇ
 Å¬¶óÀÌ¾ðÆ®¸¶´Ù µ¶¸³µÈ ¼ÒÄÏÀ» »ç¿ëÇϴϱî¿ä... Á¦ »ý°¢¿¡´Â send() µµÁß¿¡ ºí·ÏÅ·
 ÀÌ °É·Á¼­ º¸³¾ µ¥ÀÌÅ͸¦ ¸øº¸³»¾úÀ» °æ¿ì Àü¼Û ¸Þ½ÃÁö Å¥¿¡ ³ÖÀº ÈÄ, FD_WRITE°¡
 ¼ö½ÅµÇ¾úÀ»¶§ Àü¼Û ¸Þ½ÃÁö Å¥¿¡ ³²¾ÆÀÖ´Â µ¥ÀÌÅ͸¦ ¸ÕÀú º¸³»°í ±×´ÙÀ½ µ¥ÀÌÅ͸¦
 º¸³»¾ß Çϴµ¥ ÀÌ Ã³¸®¸¦ Á¦´ë·Î ÇÏÁö ¾Ê¾Æ µ¥ÀÌÅͰ¡ À¯½ÇµÇ´Â °Í ¾Æ´Ò±î ÇÕ´Ï´Ù.
 ex)                                               

°ÔÀÓÀº °è¼Ó ÁøÇàµÇ°í, À̺¥Æ®´Â °è¼Ó ¹ß»ýÇϹǷΠ¸Þ½ÃÁö¸¦ Àü¼ÛÇØ¾ß ÇÏ´Â ½ÃÁ¡Àº
 °è¼ÓÀûÀ¸·Î ¹ß»ýÇÕ´Ï´Ù. ±×·¯³ª ³×Æ®¿÷ »çÁ¤À̶ó´Â °ÍÀÌ Ç×»ó ¸Þ½ÃÁö¸¦ Àü¼ÛÇÒ ¼ö
 ÀÖ´Â °ÍÀÌ ¾Æ´Ï¹Ç·Î... óÀ½¿¡´Â Á¤»óÀûÀ¸·Î ÇÁ·Î¼¼½ÌÀ» Çϸ鼭 ¸Þ½ÃÁö¸¦
 Àü¼ÛÇÕ´Ï´Ù. ±×·¯´Ù ¼ÒÄÏÀÌ ºí·ÏÅ·ÀÌ °É¸³´Ï´Ù. ÀÌÁ¨ ´õÀÌ»ó ¸Þ½ÃÁö¸¦ º¸³¾ ¼ö ¾ø½À
 ´Ï´Ù. ±×·¯³ª ³×Æ®¿÷ÀÌ ºí·ÏµÇ¾ú´Ù°í °ÔÀÓ ÁøÇ൵ ¸ØÃâ ¼ø ¾øÀ¸¹Ç·Î °ÔÀÓÀº °è¼Ó
 ÁøÇàµÇ°í ¸Þ½ÃÁö¸¦ º¸³¾ °æ¿ìµµ °è¼Ó ¹ß»ýÇÏÁÒ. ÀÌ·²¶§ º¸³»¾ß ÇÒ ¸Þ½ÃÁö´Â
 ¼ø¼­´ë·Î Àü¼Û ¸Þ½ÃÁö Å¥¿¡ ÀúÀåµÇ¾î¾ß ÇÕ´Ï´Ù. ¸¸¾à Àü¼Û ¸Þ½ÃÁö Å¥¿¡ Á¶±ÝÀ̶óµµ

º¸³¾ µ¥ÀÌÅͰ¡ ³²¾ÆÀÖ´Ù¸é ¼ÒÄÏÀÌ ºí·ÏÅ· »óȲÀÌ ¾Æ´Ï´õ¶óµµ Àü¼Û ¸Þ½ÃÁö Å¥¿¡ ³Ö¾î
 ¾ß ÇÕ´Ï´Ù(ÀÌÁ¡ÀÌ Áß¿ä) ±×·¯´Ù°¡ FD_WRITE°¡ ¿À¸é Àü¼Û ¸Þ½ÃÁö Å¥¿¡ ÀÖ´Â µ¥ÀÌÅ͸¦
 ¼ø¼­´ë·Î Àü¼ÛÇÕ´Ï´Ù. ±×·±µ¥ Å¥¿¡ µ¥ÀÌÅͰ¡ ³Ê¹« ¸¹ÀÌ ¹Ð·Á ÀÖ´Ù¸é Å¥ÀÇ µ¥ÀÌÅ͸¦
 º¸³»´Ù°¡ ¶Ç ºí·ÏÅ·ÀÌ °É¸± ¼ö ÀÖ°ÚÁÒ. ±×·³ º¸³»´Ù ³²Àº µ¥ÀÌÅ͸¦ ¶Ç ¼ø¼­¿¡ ¸Â°Ô
 º¸Á¸ÇØ ³õ¾Æ¾ß ÇÕ´Ï´Ù. ´ë·« ÀÌ·± ½ÄÀÇ ÀÛµ¿±¸Á¶°¡ ¿ÂÀüÈ÷ ±¸Çö µÈ´Ù¸é ¼ÒÄÏÀÇ
 ¿¬°á, Àü¼Û, ºí·ÏÅ· »óȲ¿¡ ´ëÇÑ ´ëó´Â ´Ù µÇ´Â °ÍÀÌ¶ó º¼ ¼ö ÀÖ½À´Ï´Ù.
 ÇѰ¡Áö ´õ Å¥°¡ °¡µæÂ÷¸é ±× ¼ÒÄÏÀº ´õÀÌ»ó º¹±¸°¡ ºÒ°¡´ÉÇϹǷΠÁ¢¼ÓÀ» ²÷¾î¾ß
 °ÚÁÒ.    

ÀÌ °úÁ¤À» Ŭ·¡½º·Î ±¸ÇöÇÏ¿© »ç¿ëÇÏ´Â °ÍÀÌ °¡Àå ÆíÇÑ°Í °°´õ±º¿ä.

¾È³çÇϼ¼¿ä?
 
 °©Àڱ⠸ӱ׿¡ °ü½ÉÀÌ »ý°Ü¼­
 winsockÀ» °¡Áö°í µ¹·Áº¸´Ï
 ¼­¹ö³ª Ŭ¶óÀÌ¾ðÆ®³ª Å« ¾î·Á¿òÀº ¾ø³×¿ä.
 
 ±Ùµ¥ ¹Ø¿¡ ±¤Çö´Ô(¸Â³ª?) ¼³¸íÀ» º¸´Ï FD_WRITE°¡
 °è¼Ó È£ÃâµÇÁö ¾Ê°í ƯÁ¤ÇÑ ¶§¸¸ È£ÃâÀÌ
 µÈ´Ù°í Çϼż­  Çغ¸´Ï Á¤¸» ±×·¸´õ±º¿ä.
 
 send()¸¦ °è¼ÓÇÏ´Ù°¡ ºí·°Å·(¸Â´Â¿ë¾ð°¡?) ÀÌ
 »ý±ä°É ¾î¶»°Ô ¾Ë¼ö ÀÖ³ª¿ä?
 
 FD_WRITE°¡ Ŭ¶óÀÌ¾ðÆ®°¡ ÄÁ³ØÆ®µÇ°í ÇѹøÈ£ÃâµÈÈÄ
 ¾²±â °¡´ÉÇÔÀ» ¾Ë°í °è¼Ó º¸³»´Ù°¡ ºí·°Å·ÀÌ   

°É¸®¸é ¾²±â ±ÝÁöÇØ¼­ send()¸¦ ¾ÈÇÒ·Á°í Çϴµ¥
 ºí·°Å·ÀÌ ¾ðÁ¦ °É·È´Ù´Â°É ¾Ë¼ö°¡ ¾ø³×¿ä.
 ·£À» »ç¿ëÇÏ´Ï ºí·°Å· °É¸±ÀÏÀÌ º°·Î ¾ø´Â°Å °°¾Æ¼­..
 
 ÀÏ¹Ý °ÔÀÓ¸¸ ¸¸µé´Ù À©µµ¸Þ½ÃÁö¿¡ ÀÇÁ¸ÇÏ´Â ÇÁ·Î±×·¥À»
 ±¸ÇöÇÏÀÚ´Ï ¾à°£ Çò°¥¸®´Â ±º¿©.
 
 send()º¸³»´Ù ºí·°Å·°É¸°°Å ¾Ë¼ö Àִ¹æ¹ýÀ»
 ¾Ë·ÁÁÖ¼¼¿ä.
 ±×·³ °¨»ç..  

 send()¸¦ Çϸé send()ÇÔ¼ö¿¡¼­ ½ÇÁ¦·Î º¸³½ ¹ÙÀÌÆ® ¼ö¿Í ¸¸¾à ¿¡·¯°¡ ¹ß»ýÇß´Ù¸é
 SOCKET_ERROR°¡ ¸®Åϵ˴ϴÙ. ¿¡·¯ÀÇ Á¾·ù¸¦ ¾Ë·Á¸é WSAgetLastError() ¸¦ ½ÇÇàÇØ¼­
 ¿¡·¯°ªÀ» ¾ò¾î¿À¸ç ÀÌ °ªÀÌ BLOCKÀÌ¸é ºí·ÏÅ·À¸·Î ÀÎÇØ Àü¼ÛÀÌ Áß°£¿¡ ÁߴܵǾúÀ½À»
 ÀǹÌÇÏ´Â °ÍÀÌ°í ´Ù¸¥ ¿¡·¯¶ó¸é ´ëºÎºÐÀÇ °æ¿ì ¼ÒÄÏÀ» ²÷¾î¹ö·Á¾ß ÇÕ´Ï´Ù.
 Áï ¼ÒÄÏ¿¡·¯¶ó°í ÇØµµ ºí·ÏÅ· ¿¡·¯¶ó¸é ¼ÒÄÏÀ» ²÷À» ÇÊ¿ä ¾øÀÌ ´ÙÀ½ FD_WRITE°¡
 ¼ö½ÅµÉ¶§±îÁö Àü¼ÛÀ» ±â´Ù¸®¸é µÇ´Â °Ì´Ï´Ù.
 ÇÔ¼öÀÇ ½ºÆç¸µ°ú ¸®ÅϰªÀº ÇïÇÁ¸¦ ã¾Æº¸¼¼¿ä Á¦°¡ ¾´°ÍÀº Á¤È®ÇÏÁö°¡ ¾Ê¾Æ¿ä.