[ CnUnix ] in KIDS ±Û ¾´ ÀÌ(By): lei (¾Æ¾ß³ª¹Ì) ³¯ Â¥ (Date): 2002³â 8¿ù 30ÀÏ ±Ý¿äÀÏ ¿ÀÀü 12½Ã 47ºÐ 34ÃÊ Á¦ ¸ñ(Title): bindµÈ port Ç®±â(?) Á¦°¡ °£´ÜÇÑ TCP server¸¦ Çϳª ®´Âµ¥ ¹®Á¦ À־ ±×·±Áö ÀÚ²Ù ¸ØÃ߱⵵ ÇÏ°í Áױ⵵ ÇÕ´Ï´Ù. ±×·¡¼­ ctrl-c·Î Á¾·á¸¦ ½ÃÅ°°ï Çϴµ¥ ±×·¸°Ô ÇÏ¸é ³ªÁß¿¡ ÇÁ·Î±×·¥À» ´Ù½Ã ½ÇÇà½ÃÅ°¸é portÀÌ¹Ì »ç¿ëÁßÀÌ¶ó¼­ bindÇÒ¼ö¾ø´Ù ÀÌ·¸°Ô ³ª¿À°Åµç¿ä... ±×°Ô ÇÑ 30ºÐÁ¤µµ Áö³ª¸é Æ÷Æ®°¡ ÇØÁ¦µÇ´Â°Í °°Àº µ¥ ±×µ¿¾È ¾Æ¹«Àϵµ ÇÒ¼ö°¡ ¾ø¾î¼­ ºÒÆíÇÕ´Ï´Ù. ¾î¶»°Ô bindµÈ Æ÷Æ®¸¦ ÇØÁ¦½Ãų±î¿ä? [ CnUnix ] in KIDS ±Û ¾´ ÀÌ(By): testors (testors) ³¯ Â¥ (Date): 2002³â 8¿ù 30ÀÏ ±Ý¿äÀÏ ¿ÀÀü 09½Ã 43ºÐ 44ÃÊ Á¦ ¸ñ(Title): Re: bindµÈ port Ç®±â(?) setsockopt() SO_REUSEADDR enables local address reuse SO_REUSEPORT enables duplicate address and port bindings [ CnUnix ] in KIDS ±Û ¾´ ÀÌ(By): terzeron (microkid) ³¯ Â¥ (Date): 2002³â 8¿ù 30ÀÏ ±Ý¿äÀÏ ¿ÀÀü 10½Ã 34ºÐ 04ÃÊ Á¦ ¸ñ(Title): Re: bindµÈ port Ç®±â(?) ÀÌ·ÐÀûÀ¸·Î´Â ±×·± ¿É¼ÇÀ» ¾²¸é µÇ´Âµ¥, °£´ÜÇÑ TCP ¾ÖÇø®ÄÉÀ̼ÇÀ̶ó¸é Àß ¾È µÉ °Ì´Ï´Ù. 2ºÐ µ¿¾È ±â´Ù¸®½Ã¸é port¿¡ ´ëÇؼ­ ÇØ´ç ÇÁ·Î¼¼½º°¡ bind¸¦ Ç®°Ô µÇ¹Ç·Î 2ºÐ ÈÄ¿¡´Â ´Ù½Ã ±× port¸¦ »ç¿ëÇÏ½Ç ¼ö ÀÖ½À´Ï´Ù. TIME_WAIT »óÅ¿¡¼­ ±â´Ù¸®´Â °Í °°´õ±º¿ä. À§ÀÇ reuse ¿É¼ÇµéÀ» »ç¿ëÇϽ÷Á¸é ´ÜÀÏ ÇÁ·Î¼¼½º ±¸Á¶·Î µÇ¾î ÀÖ´Â ÇÁ·Î±×·¥À» ´ÙÁß ÇÁ·Î¼¼½º³ª ´ÙÁß ¾²·¹µå ±¸Á¶·Î ¹Ù²Ù½Ã°í Æ÷Æ®¸¦ °øÀ¯ÇÒ ¼ö ÀÖµµ·Ï Æ÷Æ® Ç®(pool)À» ¸¸µé¾î³õ°í ¾²½Ã¸é µÉ °Ì´Ï´Ù. ¸®½º´× ¼­¹ö¿Í Ä¿³Ø¼Ç °¢°¢À» ´ã´çÇÏ´Â ¼­¹ö¸¦ fork·Î ºÐ¸®ÇÏ°í ¸®½º´× ¼­¹ö¸¦ Á׿´´Ù°¡ ´Ù½Ã ¶ç¿ì¸é µË´Ï´Ù. (Á×¾ú´Ù°¡ ´Ù½Ã °°Àº Æ÷Æ®¿¡ bindÇÏ·Á¸é bind Àü¿¡ reuse ¿É¼ÇÀ» ÁöÁ¤ÇØ¾ß ÇÕ´Ï´Ù) ÀÚ¼¼ÇÑ ³»¿ëÀº ½ºÆ¼ºì½º ÁöµµÀÚ µ¿ÁöÀÇ Àú¼­ÀÇ SO_REUSEADDR ºÎºÐÀ» Âü°íÇÏ½Ã¸é µË´Ï´Ù. ÇÁ·Î±×·¥ÀÌ ÈξÀ º¹ÀâÇØÁö±â´Â ÇÏ°ÚÁö¸¸ Æ÷Æ® Á¡À¯¿¡ ÀÇÇÑ ¹®Á¦´Â ÇÇÇÏ½Ç ¼ö ÀÖÀ» °Ì´Ï´Ù. °£´ÜÇÑ ÇÁ·Î±×·¥À̶ó¸é ±»ÀÌ ÀÌ·¸°Ô±îÁö´Â ¾ÈÇϼŵµ µÉ °Í °°Àºµ¥¿ä... Solaris¿Í BSD¿¡¼­´Â 2ºÐ Á¤µµ¸¸ ³ÀµÎ¸é Æ÷Æ®¸¦ ¾µ ¼ö ÀÖ°Ô µÇ´õ±º¿ä. PS. »ý°¢Çغ¸´Ï ´ÙÁß ¾²·¹µå´Â Àß ¾È µÇ°Ú³×¿ä.