ÃÑ ÆäÀÌÁö ¼ö : 3224
![]()
|
Facebook Joinc ±×·ì
Joinc QA »çÀÌÆ®
![]()
Tweet
joinc´Â Firefox¿Í chrome¿¡¼ Å×½ºÆ® Çß½À´Ï´Ù. IE¿¡¼´Â Å×À̺íÀÌ ±úÁö°Å³ª À̹ÌÁö°¡ º¸ÀÌÁö ¾ÊÀ» ¼ö ÀÖ½À´Ï´Ù. ƯÈ÷ ±¸±Û DocsÀ̹ÌÁöÀÇ °æ¿ì ¿¢¹Úó¸®µÉ ¼ö ÀÖ½À´Ï´Ù.
1절. ¼Ò°³¿ì¸®´Â ÀÌ¹Ì ÀÌÀü¿¡ Unix Domain Socket¸¦ ÀÌ¿ëÇÑ IPC ¿¡¼ Unix Domain Socket ¿¡ ´ëÇÑ ±âº»ÀûÀÎ ³»¿ëÀ» ´Ù·ç¾ú¾ú´Ù. ±×¶§´Â SOCK_STREAM À» ÀÌ¿ëÇÑ ¿¬°áÁöÇâÀÇ Socket ¸¦ »ç¿ëÇß¾ú´Âµ¥, internet ¼ÒÄϰú ¸¶Âù°¡Áö·Î UDP Ư¼º Socket ¸¦ »ç¿ëÇÒ¼öµµ ÀÖ´Ù. À̹ø ±Û ¿¡¼´Â UDP ¸¦ ÀÌ¿ëÇÑ Unix Domain Socket ¿¡ ´ëÇØ¼ ¾Ë¾Æº¸µµ·Ï ÇϰڴÙ. 2절. Unix Domain Socket (UDP)2.1절. Ư¡internet socket »ó¿¡¼ UDP ¸¦ ´Ù·ê¶§, °ü½ÉÀ» °¡Áö´Â Ư¼ºÀÌ ºñ¿¬°áÁöÇ⼺À̸ç, ±×·±ÀÌÀ¯·Î µ¥ÀÌŸ¸¦ À¯½ÇÇÒ¼öµµ ÀÖÀ¸¸ç, µ¥ÀÌŸÀÇ ¼ø¼°¡ ¹Ù²ð¼ö ÀÖ´Ù. ±×·¯¹Ç·Î Áß¿ä µ¥ÀÌŸ Åë½ÅÀ» À§ÇÑ ÇÁ·ÎÅäÄݷδ UDP °¡ ÀûÇÕÇÏÁö ¾Ê´Ù. ¶ó´Â Á¡ÀÌ µÉ°ÍÀÌ´Ù. ±×·¯³ª Unix Domain ¿µ¿ªÀÇ UDP ´Â internet ¿µ¿ª°ú´Â Ư¼ºÀÌ Á» ´Ù¸£´Ù°í ÇÒ¼ö ÀÖ´Ù. Unix Domain ¿¡¼ÀÇ UDP ´Â ÀÏÁ¾ÀÇ PIPE ¿Í °°Àº ÇüÅ·Π´Ù·ç¾îÁø´Ù. °Ô´Ù°¡ µ¿ÀÏÇÑ °°Àº ½Ã½ºÅÛ ¿µ¿ª¿¡¼ÀÇ µ¥ÀÌŸ ±³È¯À̹ǷΠÆÐŶÀÌ À¯½ÇµÇ°Å³ª, ¼ø¼°¡ µÚ¹Ù²î´Â µîÀÇ ¹®Á¦´Â ÀüÇô ¹ß»ýÇÏÁö ¾ÊÀ»°Å¶ó°í Àå´ãÇÒ¼ö ÀÖ´Ù. 2.2절. ¸Þ½ÃÁö Àü´Þ ¹æ½Äinternet socket ¿¡ Àü´ÞµÇ´Â ÆÐŶµéÀÌ Çì´õ + ¹Ùµð ·Î ÀÌ·ç¾îÁö´Â °Í°ú ¸¶Âù°¡Áö·Î, Domain ¿µ¿ª¿¡¼ÀÇ µ¥ÀÌŸµµ Çì´õ + ¹Ùµð ·Î ÀÌ·ç¾îÁø´Ù. ±×·¯³ª Çì´õÀÇ ±¸¼º¿ä¼Ò´Â ¸Å¿ì ´Ù¸£´Ù. Domain ¿µ¿ª¿¡¼ÀÇ µ¥ÀÌŸ Åë½ÅÀº ¾Ë°ÚÁö¸¸ "ÁöÁ¤µÈ ÆÄÀÏ" À» ÅëÇØ¼ ÀÌ·ç¾îÁö°Ô µÈ´Ù. ÀÌ ÆÄÀÏ·Î µ¥ÀÌŸ¸¦ ¾²°í/Àд ÀÛ¾÷À» Çϸç, À̰ÍÀº ¸¶Ä¡ FIFO ¿Í °°Àº pipe ÇüÅ·ΠÀü´ÞµÈ´Ù. ±×·¯¹Ç·Î Çì´õ¿µ¿ª¿¡´Â ´Ù¸¥ ±âŸÀÇ Á¤º¸°¡ µé¾î°¡´Â°Ô ¾Æ´Ñ Åë½ÅÀ» À§ÇÑ ÆÄÀÏÁ¤º¸ °¡ µé¾î°¡°Ô µÈ´Ù. /usr/include/sys/un.h ÀÇ sockaddr_un ±¸Á¶Ã¼¸¦ º¸¸é È®½ÇÈ÷ ÀÌÇØ°¡ °¡´ÉÇÒ °ÍÀÌ´Ù.
2.3절. ¼¹ö/Ŭ¶óÀÌ¾ðÆ® ±¸¼º¹æ½Äinternet socket À» ÀÌ¿ëÇÑ ¼¹ö/Ŭ¶óÀÌ¾ðÆ® ±¸¼º°ú´Â ´Þ¸® Domain ¿µ¿ª¿¡¼ udp ¸¦ ÀÌ¿ëÇÑ ¼¹ö/Ŭ¶óÀ̾ðÆ®ÀÇ ±¸¼ºÀº ÁÖÀÇÇØ¾ß µÉ ¸î°¡Áö Á¡ÀÌ ÀÖ´Ù. °¡Àå ±âº»ÀûÀÎ ¹®Á¦´Â Domain ¿µ¿ª¿¡¼ÀÇ udp ´Â Internet ¿µ¿ª¿¡¼ÀÇ udp ¿Í´Â ´Þ¸® °æ·Î¸¦ ÁöÁ¤ ÇÒ¼ö ¾ø´Ù´Â ´ÜÁ¡À» °¡Áø´Ù. À̰ÍÀº ´ÙÁßÀÇ Å¬¶óÀÌ¾ðÆ®¸¦ ¹Þ¾ÆµéÀÌ´Â ¼¹öÀÇ °æ¿ì ¹®Á¦°¡ µÉ¼ö ÀÖ´Ù. ´ÙÀ½Àº Internet ¿µ¿ªÀÇ udp ¼¹ö/Ŭ¶óÀÌ¾ðÆ® ¸ðµ¨ÀÇ °æ¿ìÀÌ´Ù.
±×·¯³ª Unix Domain ¿µ¿ªÀÇ udp ¼ÒÄÏÀ̶ó¸é À̾߱Ⱑ ´Þ¶óÁø´Ù. ±âº»ÀûÀ¸·Î °¡Áú¼ö ÀÖ´Â Á¤º¸°¡ "ÆÄÀÏ °æ·Î" »ÓÀ̹ǷΠ´ÙÁßÀÇ Å¬¶óÀÌ ¾ðÆ®·Î ºÎÅÍ ¸Þ½ÃÁö¸¦ ¹Þ¾ÒÀ»¶§ ¾î¶² Ŭ¶óÀÌ¾ðÆ®·Î ºÎÅÍ ¸Þ½ÃÁö°¡ Àü´ÞµÇ¾ú´ÂÁö¸¦ ¾Ë¼ö°¡ ¾ø´Â °ÍÀÌ´Ù. ¹°·Ð À̰ÍÀº µ¥ÀÌŸ ¿µ¿ª¿¡ Ŭ¶óÀÌ¾ðÆ®¸¦ ½Äº°ÇÒ¼ö ÀÖ´Â ¾î¶² Á¤º¸¸¦ º¸³¿À¸·Î½á ÇØ°áÇÒ¼ö ÀÖ±ä ÇϰÚÁö¸¸, ¼³»ç ±×·¸´Ù ÇÏ´õ¶óµµ ¼¹ö´Â ´ÙÁßÀÇ Å¬¶óÀ̾ðÆ®Áß ¿øÇϴ Ŭ¶óÀ̾ðÆ®(client)·Î ¸Þ½ÃÁö¸¦ º¸³¾¹æ¹ýÀÌ ¾ø´Ù. ¸¸¾à ´ÙÁßÀÇ Å¬¶óÀÌ¾ð Æ®°¡ ¶°ÀÖ´Â »óÅ¿¡¼ ¸Þ½ÃÁö¸¦ º¸³½´Ù¸é ´©°¡ ¸ÕÀú ÀÐÀ»Áö ¿¹ÃøÇÒ¼ö°¡ ¾ø°ÔµÈ´Ù. À̹®Á¦¸¦ ÇØ°áÇϱâ À§Çؼ´Â °¢ Ŭ¶óÀÌ¾ðÆ® ¸¶´Ù Åë½ÅÀ» À§ÇÑ °¢°¢ÀÇ ¼ÒÄÏÁöÁ¤ÆÄÀÏ À» »ý¼ºÇÒ¼ö¹Û¿¡ ¾ø´Ù. À̰ÍÀº FIFO ¿¡¼ ¼¹ö/´ÙÁßŬ¶óÀÌ¾ðÆ® ¸¦ ±¸¼ºÇϱâ À§ÇÑ ¹æ¹ý°ú ¸¶Âù°¡ÁöÀÌ´Ù.
¿©±â¿¡¼ ÇѰ¡Áö ±Ã±ÝÇÑÁ¡ÀÌ ¹®µæ »ý±æ°ÍÀÌ´Ù. Domain ¿µ¿ª UDP ¼ÒÄÏ ¿¡¼ÀÇ ´ÙÁßŬ¶óÀÌ¾ðÆ®¸¦ ¹Þ¾ÆµéÀ̱â À§ÇÑ ¼¹öÀÇ Á¦ÀÛÀ» À§Çؼ´Â ±×·³ Ŭ¶óÀ̾ðÆ®ÀÇ ¼ýÀÚ¸¸Å ¼ÒÄÏÆÄÀÏÀ» »ý¼º½ÃÄѾßÇÑ´Ù´Â ¶æÀε¥, ±×·¸´Ù¸é ¼¹ö´Â ¾î¶»°Ô Ŭ¶óÀÌ¾ðÆ®°¡ Á¢±ÙÇÒÁÙ ¾Ë°í Ŭ¶óÀÌ¾ðÆ®¿Í ¼¹ö ¸ðµÎ°¡ ¾Ë¼ö ÀÖ´Â ¼ÒÄÏÆÄÀÏÀ» »ý¼ºÇÒ°ÍÀΰ¡ ? À̹®Á¦ÀÇ ÇØ°á¹æ¹ýÀº ¿©·¯°¡Áö°¡ µÉ°ÍÀÌ´Ù. ¸¶Ä¡ internet ÀÇ TCP ¼ÒÄÏÀÌ ´ÙÁßÀÇ ¿¬°áÀ» ¹Þ¾ÆµéÀ̱â À§Çؼ accept(2) ÇÏ´Â ÇϳªÀÇ endpoint ¼ÒÄÏÀ» µÎ´Â °Íó·³, Domain ¿µ¿ª¿¡¼µµ ÇϳªÀÇ endpoint ÆÄÀÏÀ» µÎ´Â °ÍÀÌ´Ù. ¹°·Ð ÀÌ endpoint ÆÄÀÏÀÇ À̸§Àº ¼¹ö¿Í Ŭ¶óÀÌ¾ðÆ®°£¿¡ ¾à¼ÓÀÌ µÇ¾î ÀÖ¾î¾ß ÇÒ°ÍÀÌ´Ù. ±×·¯¸Õ ¼¹ö´Â ÃÖÃÊ¿¡ endpoint ¸¦ À§ÇÑ ¼ÒÄÏÆÄÀÏÀ» Çϳª »ý¼ºÇϰí À̰ÍÀ» ÅëÇØ¼ Ŭ¶óÀÌ¾ðÆ®°¡ Á¢±ÙÇϸé Àû´çÇÑ À̸§À¸·Î »õ·Î¿î ¼ÒÄÏÆÄÀÏÀ» ¸¸µç´ÙÀ½¿¡ ÀÌ ÆÄÀÏÀ̸§À» Ŭ¶óÀÌ¾ðÆ®¿¡°Ô Àü´ÞÇØ¼ Ŭ¶óÀÌ¾ðÆ®°¡ Àü´Þ¹ÞÀº ÆÄÀÏÀ̸§À¸·Î ¾²±â¸¦ Çϵµ·Ï ÇÏ¸é µÈ´Ù. 2.3.1절. ¿¹»ó°ú´Â ´Þ¸® »ç¿ëÇÏ´Â°Ô Á» ¹ø°Å·Ó±º¿ä ?¿¹»ó°ú´Â ´Þ¸® ´ÙÁßÀÇ Å¬¶óÀÌ¾ðÆ®¸¦ ¹Þ¾ÆµéÀ̵µ·Ï Domain ¿µ¿ª udp ¼ÒÄÏÀ» ±¸¼ºÇÏ´Â°Ô Á» ±î´Ù·Ó´Ù¶ó´Â »ý°¢ÀÌ µé¼öµµ ÀÖÀ» °ÍÀÌ´Ù. ±×·¯³ª ¾îÂ÷ÇÇ ³»ºÎ ½Ã½ºÅÛ¿¡¼ÀÇ Åë½Å¿ëÀ̶ó¸é ´ëºÎºÐÀÇ °æ¿ì ¿©·¯°³ÀÇ Å¬¶óÀÌ¾ðÆ®°¡ ºÙ´Â´Ù°í ÇÏ´õ¶óµµ, ±× Ŭ¶óÀÌ¾ðÆ®°¡ Á¤ÇØÁ® ÀÖ´Â °æ¿ì°¡ ´ëºÎºÐÀÌ´Ù. ±×·¯¹Ç·Î ±×³É °¢ Ŭ¶óÀÌ¾ðÆ® ¸¶´Ù ¾î¶² ÆÄÀÏÀ» Åë½Å¿¡ ¾²¶ó°í ¾Æ¿¹ ÁöÁ¤ÇØÁÖ¸é µÈ´Ù. ±×·¯¸é ´ÜÁö select ³ª poll ¸¸À» µ¹¸²À¸·Î½á, °£´ÜÇÏ°Ô ¼¹ö/Ŭ¶óÀÌ¾ðÆ® ÇÁ·Î±×·¡¹ÖÀÌ °¡´ÉÇÏ´Ù. ¶ÇÇÑ Domain ¿µ¿ª¿¡¼ÀÇ TCP ¼ÒÄϰú´Â ´Þ¸® ´Ù¼Ò º¹ÀâÇÑ ¿¬°á°ú ¿¬°á´ë±â¸¦ À§ÇÑ ÀÛ¾÷ÀÌ Çʿ䰡 ¾øÀ¸¹Ç·Î ÄÚµùÇϱ⵵ °£ÆíÇÏ´Ù´Â ÀåÁ¡µµ °¡Áö°í ÀÖ´Ù. ¶ÇÇÑ ÆÐŶ´ÜÀ§·Î ÁÖ°í ¹ÞÀ½À¸·Î Á÷°üÀûÀ¸·Î ÀÌÇØÇϱ⠽¬¿î Äڵ带 ¸¸µé¼ö ÀÖ´Ù´Â ÀåÁ¡µµ °¡Áø´Ù. 2.4절. ¿¹Á¦ ÄÚµå±×·³ ¿¹Á¦ ÇÁ·Î±×·¥À» ¸¸µé¾î º¸µµ·Ï ÇϰڴÙ. UDP ÇÁ·Î±×·¡¹ÖÀÇ ±âÃÊ ¿¡¼ ´Ù·ç¾ú´ø µ¡¼À ÇÁ·Î±×·¥ÀÎ sum_server.c ¿Í sum_client.c ¸¦ Domain ¿µ¿ª¿¡¼ µ¿ÀÛÇϵµ·Ï º¯°æ½Ãų °ÍÀÌ´Ù. À§ÀÇ ÇÁ·Î±×·¥µéÀ» ÂüÁ¶ÇÏ¸é¼ ÄÚµùÇϵµ·Ï ÇÏÀÚ. ÇÁ·Î±×·¥ÀÚü´Â ÀϹÝÀûÀÎ Internet UDP ¼ÒÄÏ ÇÁ·Î±×·¥°ú °ÅÀÇ µ¿ÀÏÇÔÀ¸·Î ÀÌÇØÇϴµ¥ ÀÌÇØ°¡ ¾øÀ»°ÍÀÌ´Ù. 2.4.1절. ¼¹öÇÁ·Î±×·¥¿¹Á¦ : sum_server.c
2.4.2절. Ŭ¶óÀÌ¾ðÆ® ÇÁ·Î±×·¥¿¹Á¦ : sum_client.c
2.4.3절. Å×½ºÆ®¸ÕÀú ¼¹ö¸¦ ¶ç¿î´ÙÀ½¿¡, Ŭ¶óÀÌ¾ðÆ®¸¦ ÅëÇØ¼ ´õÇÏ°í ½ÍÀº 2°³ÀÇ ¼ýÀÚ¸¦ ÀÎÀÚ¸¦ ÅëÇØ¼ ³Ñ±â¸é µÈ´Ù.
|
|
|||||||
|
EmailÀ» ±âÀÔÇϸé, ´ñ±ÛÀÌ ¸ÞÀÏ·Î Àü´ÞµË´Ï´Ù. |
|