socket layer
ÃÑ ÆäÀÌÁö ¼ö : 3224

Àüü ÇÔ¼ö/¿ë¾î»çÀü
Facebook Joinc ±×·ì   Joinc QA »çÀÌÆ®
ÇöÀçÀ§Ä¡ : docbook>socket_layer



joinc´Â Firefox¿Í chrome¿¡¼­ Å×½ºÆ® Çß½À´Ï´Ù. IE¿¡¼­´Â Å×À̺íÀÌ ±úÁö°Å³ª À̹ÌÁö°¡ º¸ÀÌÁö ¾ÊÀ» ¼ö ÀÖ½À´Ï´Ù. ƯÈ÷ ±¸±Û DocsÀ̹ÌÁöÀÇ °æ¿ì ¿¢¹Úó¸®µÉ ¼ö ÀÖ½À´Ï´Ù.
HTMLº¯È¯ ¹®¼­
<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook V4.1//EN"> 
<article lang="ko"> 
 
<!--           --> 
<!-- ¹®¼­ Á¤º¸ --> 
<!--           --> 
<articleinfo> 
    <title>Socket</title> 
 
    <author> 
        <surname>À± »ó¹è</surname> 
        <affiliation> 
            <address> 
                <email>yundream@joinc.co.kr</email> 
            </address> 
        </affiliation> 
    </author> 
    <revhistory> 
        <revision> 
            <revnumber>0.9</revnumber> 
            <date>2004³â 8¿ù 19ÀÏ</date> 
            <revremark>ÀÔÃâ·ÂÇÔ¼ö/µµ¸ÞÀÎ À̸§º¯È¯/¹ÙÀÌÆ®¿À´õ °ü·Ã ÇÔ¼ö Ãß°¡</revremark> 
        </revision> 
    </revhistory> 
</articleinfo> 
<!--                                                                 --> 
<!-- ¼½¼Ç ½ÃÀÛ                                                       --> 
<!--                                                                 --> 
<section> 
    <title>Socket ¿¡ ´ëÇÑ ±âº»Áö½Ä</title> 
    <section> 
        <title>Socket Layer</title> 
        <para> 
            Socket Àº À¯´Ð½ºÀÇ ÆÄÀÏ ±â¼úÀÚ¸¦ ÅëÇØ¼­ ´Ù¸¥ ÇÁ·Î±×·¥°£ÀÇ  
            Á¤º¸±³È¯À» °¡´ÉÇϵµ·Ï ÇØÁÖ´Â ¹æ¹ýÀ¸·Î, °°Àº ½Ã½ºÅÛ¿¡ ÀÖ´Â  
            ÇÁ·Î±×·¥µé°£ÀÇ Á¤º¸±³È¯À» À§ÇѸñÀû, ȤÀº ´Ù¸¥ ½Ã½ºÅÛ(³×Æ®¿÷  
            »óÀ¸·Î ¸Ö¸®¶³¾îÁ®ÀÖ´Â) µé°£ÀÇ Á¤º¸±³È¯À» À§ÇÑ ¸ñÀûÀ¸·Î  
            »ç¿ëµÈ´Ù.  
        </para> 
        <para> 
            ±×·±µ¥ ¿Ö Layer ¶ó°í ºÎ¸£´Â°¡ ±× ÀÌÀ¯´Â TCP/IP 4°èÃþÀÇ  
            ÀÀ¿ë°èÃþ(applicaton layer)°ú Àü¼Û°èÃþ(transmission layer) Áß°£¿¡  
            Á¸ÀçÇϱ⠶§¹®ÀÌ´Ù. ¾Æ·¡ÀÇ ±×¸²À» º¸¶ó   
            <figure> 
                <title>¼ÒÄÏ °èÃþ</title> 
                <graphic fileref="http://www.joinc.co.kr/albums/album01/acf.gif"> 
            </figure> 
            À§ÀÇ ±×¸²Àº <ulink url="http://www.joinc.co.kr/modules/moniwiki/wiki.php/article_TCPIP °³·Ð">TCP/IP °³¿ä</ulink>¿¡¼­  
            ÀÌ¹Ì º»ÀûÀÌ ÀÖ´Â ±×¸²ÀÏ °ÍÀÌ´Ù. ±×¶§ÀÇ ±×¸²°ú ´Þ¶óÁø Á¡ÀÌ ÀÖ´Ù¸é,  
            ÀÀ¿ë°èÃþ°ú Àü¼Û°èÃþ¿¡ <emphasis>Socket Layer</emphasis>  
            °¡ Á¸ÀçÇÑ´Ù´Â °ÍÀÌ´Ù. ÀÌ Socket Layer °¡ ÀÀ¿ë°èÃþ°ú  
            Àü¼Û°èÃþ »çÀÌ¿¡ Á¸ÀçÇÏ°Ô µÊÀ¸·Î ¿ì¸® ÇÁ·Î±×·¡¸ÓµéÀº º¹ÀâÇÏ°Ô  
            TCP ¸¦ Á÷Á¢ Á¦¾îÇÒ ÇÊ¿ä¾øÀÌ, Socket Layer ¿¡¼­ Á¦°øÇÏ´Â ´Ù¾çÇÑ  
            ÇÔ¼ö(Socket API)¸¦ ÀÌ¿ëÇØ¼­ °£´ÜÇÏ°Ô ÀÎÅÍ³Ý ³×Æ®¿÷ ÇÁ·Î±×·¡¹Ö  
            ÀÛ¾÷À» ÇÏ°Ô µÇ´Â°ÍÀÌ´Ù.  
        </para> 
        <para> 
            Socket Layer Àº ÀÀ¿ë°èÃþ¿¡¼­ ¹ÞÀº ¸Þ½ÃÁö¸¦ ÇϺΠSocket API ¸¦  
            ÀÌ¿ëÇØ¼­ Àü¼Û°èÃþÀ¸·Î º¸³½´Ù. Àü¼Û°èÃþ¿¡´Â 2°¡Áö ´ëÇ¥ÀûÀÎ ÇÁ·ÎÅäÄÝ 
            ÀÌ Àִµ¥ ¹Ù·Î TCP ¿Í UDP ÀÌ´Ù. ±×·³À¸·Î ¿ì¸® ÇÁ·Î±×·¡¸ÓµéÀº  
            TCP ÇÁ·ÎÅäÄÝÀ» »ç¿ëÇÒ°ÍÀÎÁö UDP ÇÁ·ÎÅäÄÝÀ» »ç¿ëÇÒ°ÍÀÎÁö¸¸  
            °áÁ¤ÇØÁÖ¸éµÈ´Ù. 
        </para> 
    </section> 
    <section> 
        <title>¿Ö Layer ±¸Á¶¸¦ °¡Áö´Â°¡</title> 
        <para> 
            ÀÏ»ó »ýȰ¿¡¼­ ¼ÒÄÏ·¹À̾î¿Í ºñ½ÁÇѰÔ, ÀüÈ­±â¶ó°í  
            º¼¼ö ÀÖÀ»°ÍÀÌ´Ù.  
            ¿ì¸®´Â »ó´ëÆí¿¡¼­ ÀüÈ­¸¦ °É±â À§Çؼ­ »ó´ëÆíÀüÈ­ÀÇ Áö¸®Àû  
            À§Ä¡°¡ ¾îµðÀÎÁö, ¾î¶² ÀüÈ­±¹¿¡¼­ °ü¸®ÇÏ´ÂÁö, ¾ð¾î¸¦ ½ÅÈ£·Î  
            º¯È¯ ½Ã۱â À§Çؼ­ ¾î¶°ÇÑ ÀÛ¾÷À» ÇØ¾ßÇÏ´ÂÁö, ¾î¶»°Ô  
            º¸³»¾ß ÇÏ´ÂÁö ÀüÇô ¾ËÇʿ䰡  
            ¾ø´Ù. ±×³É ¼öÈ­±â µé°í ÀüÈ­ ¹øÈ£¸¸ ´©¸£¸é ±×°É·Î ³¡ÀÌ´Ù.  
            Áï ÀüÈ­±â ¶ó´Â°Ô ÀÖÀ½À¸·Î ±× ³»ºÎ¿¡¼­ ÀϾ´Â ¿©·¯°¡Áö º¹ÀâÇÑ  
            Åë½Å ÇÁ·Î¼¼½º¸¦ ¸ð¸£°íµµ »ó´ëÆí°ú ÀüÈ­ÅëÈ­¸¦ ÇÒ¼ö ÀÖ°Ô µÈ´Ù.  
        </para> 
        <para> 
            Socket Layer ÀÌ Á¸ÀçÇÔÀ¸·Î½á, ¿ì¸®´Â TCP/UDP Çì´õ¸¦ ¾î¶»°Ô  
            ¸¸µé¾î¾ß ÇÏ´ÂÁö, ±¸Á¶°¡ ¾î¶»°Ô µÇ´ÂÁö, ¾î¶»°Ô Ä¿³Î¿¡ Àü´ÞÇØ¾ß  
            ÇÏ´ÂÁö ½Å°æ¾µÇÊ¿ä ¾øÀÌ ³×Æ®¿÷ ÇÁ·Î±×·¥À» ¸¸µé¼ö ÀÖ°Ô µÈ´Ù.  
        </para> 
    </section> 
    <section> 
        <title>Socket</title> 
        <para> 
            "Socket ÀÌ¶ó´¢ ¿ì¸®´Â À§¿¡¼­ Socket Layer¸¦ ÀÌ¹Ì ´Ù·ç¾ú´Âµ¥¿ä ?"  
            ¶ó°í Àǹ®À» °¡Áú¼öµµ ÀÖÀ»°ÍÀÌ´Ù. Socket Layer °ú Socket ´Â  
            ¾ö¿¬È÷ ´Ù¸£´Ù. Socket Layer ´Â °èÃþÀ» ³ªÅ¸³»´Â °ÍÀÌ´Ù.  
            Áï Socket ¸¦ ´Ù·ç±â À§ÇÑ °èÃþÀÌ´Ù. ÀÌ´Â TCP°¡ Àü¼Û°èÃþÀÌ ¾Æ´Ñ°Í°ú  
            ¸¶Âù°¡ÁöÀÌ´Ù. ¿ì¸®´Â Socket Layer ¿¡¼­ Á¦°øÇÏ´Â ´Ù¾çÇÑ API¸¦ ÅëÇØ¼­  
            Socket ¸¦ Á¦¾îÇÏ°Ô µÈ´Ù.  
        </para> 
        <para> 
            ±×·³ Socket À̶õ ¹«¾ùÀΰ¡. ¼ÒÄÏÀ̶õ À¯´Ð½º ÆÄÀÏ Áö½ÃÀÚ ¸¦ ÀÌ¿ëÇÏ¿©  
            ´Ù¸¥ ÇÁ·Î±×·¥°ú Á¤º¸±³È¯À» ÇÏ´Â ¹æ¹ý(ȤÀº µµ±¸) ÀÌ´Ù.  
            ÀϹÝÀûÀ¸·Î À¯´Ð½º »ó¿¡¼­ Á¤º¸±³È¯Àº ÆÄÀÏÁö½ÃÀÚ¸¦ ÅëÇÑ´Ù´Â°É  
            ¾Ë°í ÀÖÀ»°ÍÀÌ´Ù. ¸¶Âù°¡Áö·Î Socket ¸¦ ÀÌ¿ëÇÑ Áö¿ª ȤÀº ³×Æ®¿÷À¸·Î  
            ¿¬°áµÈ ÇÁ·Î±×·¥ °£ÀÇ Á¤º¸±³È¯ ¿ª½Ã ÆÄÀÏÁö½ÃÀÚ¸¦ ÅëÇØ¼­ ÀÌ·ç¾îÁø´Ù. 
        </para> 
        <para> 
            <ulink url="http://www.joinc.co.kr/modules/moniwiki/wiki.php/article_´ÙÁß¿¬°á¼­¹ö_¸¸µÑ±â1">´ÙÁß¿¬°á¼­¹ö ¸¸µé±â(1)</ulink> ÀÇ zipcode_multi.c ¸¦ ÀÌ¿ëÇØ¼­ ¼ÒÄÏÀÌ  
            ¾î¶»°Ô ÀÛµ¿ÇÏ´ÂÁö ¾Ë¾Æº¸µµ·Ï ÇϰڴÙ. ¸ÕÀúÀÇ À§ÀÇ ÇÁ·Î±×·¥À» ÄÄÆÄÀÏ  
            ½Ã۰í ÀÛµ¿À» ½ÃÄѺ¸ÀÚ. ÀÛµ¿À» ½ÃÄ×´Ù¸é ps ·Î zipcode_multi  
            ÇÁ·Î±×·¥ÀÇ pid ¸¦ È®ÀÎÇØº¸°í /proc/pid/fd µð·ºÅ丮·Î À̵¿Çؼ­  
            ¾î¶°ÇÑ ÆÄÀÏ Áö½ÃÀÚ¸¦ °¡Áö°í ÀÖ´ÂÁö È®ÀÎÇØº¸µµ·Ï ÇÏÀÚ.  
            <screen> 
[yundream@localhost test]# ./zipcode_multi 4444 
... 
[yundream@localhost test]# ps -ax | grep zipcode  
 2473 ttyp1    S      0:00 ./zipcode_multi 4444 
            </screen> 
            pid°¡ 2473 À̹ǷΠÀÌ ÇÁ·Î±×·¥ÀÇ /proc/2473/fd ·Î À̵¿Çؼ­ lsÇØº¸¸é  
            ÇÁ·Î±×·¥¿¡¼­ »ç¿ëÇϰíÀÖ´Â ÆÄÀÏÁö½ÃÀڵ鿡 ´ëÇØ¼­ ¾Ë¼ö ÀÖ´Ù. 
            <screen> 
[yundream@localhost test]# ls -al /proc/2473/fd 
ÇÕ°è 0 
dr-x------    2 root     root            0  5¿ù 28 16:07 . 
dr-xr-xr-x    3 root     root            0  5¿ù 28 16:07 .. 
lrwx------    1 root     root           64  5¿ù 28 16:14 0 -> /dev/ttyp1 
lrwx------    1 root     root           64  5¿ù 28 16:14 1 -> /dev/ttyp1 
lrwx------    1 root     root           64  5¿ù 28 16:14 2 -> /dev/ttyp1 
lr-x------    1 root     root           64  5¿ù 28 16:14 3 -> /home/mycvs/test/zipcode.txt 
lrwx------    1 root     root           64  5¿ù 28 16:14 4 -> socket:[171434] 
            </screen> 
            0, 1, 2 ´Â °¢°¢ Ç¥ÁØÀÔ·Â, Ç¥ÁØÃâ·Â, Ç¥ÁØ¿¡·¯¸¦ °¡¸®Å°´Â ÆÄÀÏÁö½ÃÀÚ  
            ¶ó´Â°ÍÀº ÀÌ¹Ì ¾Ë°í ÀÖÀ»°ÍÀÌ´Ù. 3 Àº ÇÁ·Î±×·¥ÀÌ ¿¬ ÆÄÀÏÀ» °¡¸®Å²´Ù.  
            ¸¶Áö¸· 4°¡ ¹Ù·Î socket Åë½ÅÀ» À§ÇØ ¸¸µé¾îÁø ÆÄÀÏ Áö½ÃÀÚÀÌ´Ù.  
            ´Ù¸¥ °ÍµéÀÌ Å͹̳ÎÀ̳ª ÆÄÀÏÀ» °¡¸®Å°´Â°Í°ú´Â ´Þ¸® socket ¸¦ °¡¸® 
            ۰í ÀÖÀ½À» ¾Ë¼ö ÀÖ´Ù.  
        </para> 
        <para> 
            ¿©±â¿¡ »õ·Î¿î Ŭ¶óÀÌ¾ðÆ®°¡ Á¢±ÙÀ»Çϸé (telnet À̳ª Àü¿ëŬ¶óÀÌ¾ðÆ® 
            ¸¦ ÀÌ¿ëÇØ¼­) ´ÙÀ½°ú °°Àº ÆÄÀÏ Áö½ÃÀÚ°¡ Çϳª Ãß°¡ µÉ°ÍÀÌ´Ù.  
            <screen> 
lrwx------    1 root     root           64  5¿ù 28 16:14 5 -> socket:[171435] 
            </screen> 
        </para> 
    </section> 
    <section> 
        <title>socket API</title> 
        <para> 
            À̹ø¿¡´Â socket ·¹À̾¼­ Á¦°øÇÏ´Â ¼ÒÄÏ °ü·Ã ÇÔ¼öµéÀ» ¼³¸íÇϵµ·Ï ÇϰڴÙ.  
        </para> 
        <section> 
            <title>¼ÒÄÏ »ý¼º ¹× ¿¬°á</title> 
            <section> 
                <title>socket(2) ÇÔ¼ö</title> 
                <para> 
                    ÀÌ·¯ÇÑ ¼ÒÄÏ Àº socket(2) ÇÔ¼ö¸¦ ÀÌ¿ëÇØ¼­ ¸¸µé¾îÁø´Ù.  
                    ÃÖÃÊ socket ÇÔ¼ö¸¦ ÀÌ¿ëÇØ¼­ ¼ÒÄÏÀ» »ý¼ºÇϸé Ä¿³ÎÀº Åë½ÅÀ» À§ÇÑ  
                    Á¾Á¡(end point,Áï Åë½Å¿¬°á»óȲÀ» üũÇÏ´Â)À» »ý¼ºÇϰí,  
                    ¿©±â¿¡ ´ëÇÑ  
                    ÆÄÀÏ Áö½ÃÀÚ¸¦ µÇµ¹·ÁÁØ´Ù. ÇÁ·Î±×·¥Àº socket ÇÔ¼ö¸¦ ÀÌ¿ëÇØ¼­  
                    »ý¼ºÇÑ ÆÄÀÏ Áö½ÃÀÚ¿¡ »õ·Î¿î ¿¬°áÀÌ  
                    µé¾î¿À´Â Áö¸¦ È®ÀÎÇÏ°Ô µÈ´Ù.    
                </para> 
                <para> 
                    À§¿¡ ÀÖ´Â TCP/IP 4°èÃþÀ» º¸¸é Socket Layer ¾Æ·¡¿¡´Â ÃÖ¼ÒÇÑ 2°³  
                    ÀÌ»óÀÇ »ç¿ë°¡´ÉÇÑ µ¥ÀÌŸ ±×·¥ÀÇ Å¸ÀÔÀÌ ÀÖÀ½À» ¾Ë¼ö ÀÖ´Ù.  
                    ÀÌ·¯ÇÑ µ¥ÀÌŸ ±×·¥ÀÇ Å¸ÀÔ¿¡´Â TCP, UDP, RAW µîÀÌ ÀÖ´Ù.  
                    TCP ¼ÒÄÏ, UDP ¼ÒÄÏ, RAW ¼ÒÄÏÀ̶ó°í ºÎ¸£±âµµ ÇÑ´Ù.  
                    ¶ÇÇÑ ´Ù¾çÇÑ ¼ÒÄÏ ÁÖ¼ÒÆÐ¹Ð¸®(±º)¸¦ Á¦°øÇÑ´Ù.   
                    <table> 
                        <title>¼ÒÄÏÁÖ¼Ò ÆÐ¹Ð¸®</title> 
                        <tgroup cols=2> 
                        <tbody> 
                            <row> 
                                <entry>UNIX</entry> 
                                <entry>À¯´Ð½º µµ¸ÞÀÎ ¼ÒÄÏ, IPC ¿ëÀ¸·Î ¸¹ÀÌ »ç¿ëÇÑ´Ù.</entry> 
                            </row> 
                            <row> 
                                <entry>INET</entry> 
                                <entry>TCP/IP ÇÁ·ÎÅäÄÝÀ» ÀÌ¿ëÇÑ ÀÎÅͳÝÁÖ¼Ò ÆÐ¹Ð¸®, º¸ÅëÀÇ ³×Æ®¿÷ÇÁ·Î±×·¡¹Ö½Ã ÁÖ·Î »ç¿ë</entry> 
                            </row> 
                            <row> 
                                <entry>IPX</entry> 
                                <entry>³ëº§ÀÇ IPX ÇÁ·ÎÅäÄÝ, °ÔÀÓÀ» ÁÁ¾ÆÇÑ´Ù¸é ¸¹ÀÌ µé¾îºÃÀ½Á÷ÇÑ</entry> 
                            </row> 
                            <row> 
                                <entry>AX25</entry> 
                                <entry>¾Æ¸¶Ãß¾î ¶óµð¿À X.25</entry> 
                            </row> 
                            <row> 
                                <entry>X25</entry> 
                                <entry>X.25 ÇÁ·ÎÅäÄÝ</entry> 
                            </row> 
                        </tbody> 
                        </tgroup> 
                    </table> 
                </para> 
                <para> 
                    ±×·¯¹Ç·Î socket ÇÔ¼ö´Â À§ÀÇ ¼ÒÄÏ ÁÖ¼Ò ÆÐ¹Ð¸®¿Í ¼ÒÄÏ Å¸ÀÔ  
                    ÁöÁ¤ÀÌ °¡´ÉÇØ¾ß ÇÑ´Ù.  
                    <screen> 
int socket(int domain, int type, int protocol); 
                    </screen> 
                    ù¹øÂ° ¾Æ±Ô¸ÕÆ®°¡ ¼ÒÄÏÁÖ¼Ò ÆÐ¹Ð¸® ÁöÁ¤À» À§Çؼ­ »ç¿ëµÇ¸ç,  
                    µÎ¹øÂ° ¾Æ±Ô¸ÕÆ®°¡ ¼ÒÄÏ Å¸ÀÔÁöÁ¤À» À§Çؼ­ »ç¿ëµÈ´Ù.  
                    ¼ÒÄÏÁÖ¼Ò ÆÐ¹Ð¸®´Â ÁÖ·Î INET(AF_INET), UNIX(AF_UNIX) °¡  
                    »ç¿ëµÇ¸ç, ¼ÒÄÏŸÀÔÀº TCP(SOCK_STREAM), UDP(SOCK_DGRAM),  
                    RAW(SOCK_RAW) °¡ »ç¿ëµÈ´Ù.  
                </para> 
                <para> 
                    Áï ÀÎÅÍ³Ý ÇÁ·ÎÅäÄÝÀ» ÀÌ¿ëÇÏ´Â TCP ¼ÒÄÏÀ» ¸¸µé±â ¿øÇÑ´Ù¸é 
                    socket(AF_INET, SOCK_STREAM, 0) °ú °°ÀÌ »ç¿ëÇÏ¸é µÈ´Ù.  
                </para> 
                <para> 
                    socket ÇÔ¼ö°¡ ¼º°øÀûÀ¸·Î ¼öÇàµÇ¸é, »ç¿ë°¡´ÉÇÑ ¼ÒÄÏÀ» °¡¸£Å°´Â ÆÄÀÏ Áö½ÃÀÚ¸¦  
                    µÇµ¹·ÁÁÖ¸ç, ÀÌ ÆÄÀÏÁö½ÃÀÚ´Â endpoint(¿¬°á È®ÀÎ Åë·Î)  
                    ·Î½á »ç¿ëµÈ´Ù.  
                </para> 
            </section> 
            <section> 
                <title>bind(2) ÇÔ¼ö</title> 
                <para> 
                    socket ÇÔ¼ö¸¦ ÀÌ¿ëÇØ¼­ ¸¸µé¾îÁø ¼ÒÄÏ¿¡ À̸§À» ºÎ¿©ÇÑ´Ù.  
                </para> 
                <para> 
                    ¶ó°í ¹ø¿ªµÈ man ÆäÀÌÁöȤÀº °ü·ÃµÈ ¹ø¿ª¼­¿¡¼­ ¼³¸íÀ» Ç졒  
                    ÀÖÁö¸¸, ¼ÒÄÏ¿¡ Ư¼ºÀ» ºÎ¿©(¼ÒÄϰú Ư¼ºÀ» ¹­´Â´Ù(bind))ÇÑ´Ù  
                    ¶ó´Â°Ô Á»´õ Àû´çÇÑ ¼³¸íÀÌ ¾Æ´Ò±î ½Í´Ù.  
                    <screen> 
int bind(int  sockfd, struct sockaddr *my_addr, socklen_t addrlen); 
                    </screen>     
                    ÀÎÀÚ·Î ÁÖ¾îÁø sockfd ¿¡´ëÇØ¼­ sockaddr À» ÀÌ¿ëÇØ¼­ Ư¼ºÀ» ¹­¾îÁØ´Ù.  
                    bind ÇÔ¼ö¸¦ ÅëÇØ¼­ ¿ì¸®´Â sockfd °¡ »ç¿ëÇÒ Æ÷Æ®¹øÈ£(port), ±×¸®°í ¿¬°áÀ» ¹Þ¾ÆµéÀÏ  
                    IP ÁÖ¼Ò Æ¯¼ºµîÀ» ¹­¾îÁÙ¼ö ÀÖ´Ù. IP ÁÖ¼Ò´Â IPv4, IPv6 µîÀÌ »ç¿ëµÉ¼ö ÀÖÀ»°ÍÀÌ´Ù.   
                </para> 
                <para> 
                    bind ÇÔ¼ö´Â º¸Åë ¼­¹ö¿¡¼­ »ç¿ëµÈ´Ù. ±× ÀÌÀ¯´Â ´ëºÎºÐÀÇ ¼­ºñ½º(HTTP, FTP..)µéÀÌ  
                    ÁöÁ¤µÈ Æ÷Æ®¹øÈ£¸¦ ÅëÇØ¼­ ¼­ºñ½º µÇ±â ¶§¹®ÀÌ´Ù. ¹Ý¸é Ŭ¶óÀ̾ðÆ®ÀÇ °æ¿ì  
                    Ä¿³Î¿¡¼­ ÇÒ´çÇÑ ÀÓÀÇÀÇ Æ÷Æ®¹øÈ£¸¦ ÀÌ¿ëÇØ¼­ ¼­¹ö¿Í ¿¬°áÇϱ⠶§¹®¿¡ bind ¸¦ »ç¿ëÇÒ  
                    Çʿ䰡 ¾ø´Ù.      
                </para> 
            </section> 
            <section> 
                <title>connect(2) ÇÔ¼ö</title> 
                <para>     
                    <screen> 
int connect(int sockfd, const struct sockaddr *serv_addr, socklen_t addrlen); 
                    </screen> 
                    À̰ÍÀº Ŭ¶óÀ̾ðÆ®Ãø ¿¡¼­ »ç¿ëµÇ¸ç, struct sockaddr ±¸Á¶Ã¼¿¡ ¼¼ÆÃµÈ ³»¿ë´ë·Î  
                    ¼­¹öÃø¿¡ ¿¬°áÇÑ´Ù. sockaddr ±¸Á¶Ã¼¿¡´Â ¿¬°áµÉ ¼­¹ö¿¡ ´ëÇÑ Á¤º¸µé, Áï ÁÖ¼Ò  
                    ÆÐ¹Ð¸® IP ¹øÈ£¿Í PORT ¹øÈ£ µîÀÌ µé¾î°¡ ÀÖÀ¸¸ç, connect ÇÔ¼ö´Â sockaddr Á¤º¸¸¦ ÀÌ¿ëÇØ¼­  
                    ¼­¹öÃø¿¡ ¿¬°áÀ» ÇÏ¸ç ¼­¹ö¿ÍÀÇ Åë½ÅÀ» À§ÇÑ endpoint ¿Í sockfd ¸¦ ¿¬°á½ÃŲ´Ù.  
                    sockfd ´Â socket ÇÔ¼ö¸¦ ÀÌ¿ëÇØ¼­ ¸¸µé¾îÁø ¼ÒÄÏ ÁöÁ¤ ¹øÈ£ÀÌ´Ù.  
                </para>     
            </section> 
            <section> 
                <title>listen(2) ÇÔ¼ö</title> 
                <para> 
                    <screen> 
int listen(int sockfd, int backlog); 
                    </screen> 
                    ¼­¹öÃø¿¡¼­ »ç¿ëµÇ¸ç socket ÇÔ¼ö¸¦ ÀÌ¿ëÇØ¼­ ¸¸µé¾îÁø sockfd ¿¡ ´ëÇØ¼­, µé¾î ¿À´Â  
                    ¿¬°áÀ» ±â´Ù¸°´Ù. backlog ´Â ¾ÆÁ÷ ¿ÏÀüÈ÷ ¿¬°áµÇÁö ¾ÊÀº ¿¬°áµéÀÌ ´ë±âÇÒ queue ÀÇ  
                    ±æÀ̸¦ ¸í½ÃÇϱâ À§Çؼ­ »ç¿ëµÈ´Ù.  
                </para> 
            </section> 
            <section> 
                <title>accept(2) ÇÔ¼ö</title> 
                <para> 
                    <screen> 
int accept(int s,  struct  sockaddr  *addr,  socklen_t *addrlen);  
                    </screen> 
                    listen À» ÅëÇØ¼­ ¸¸µé¾îÁø ¹Ì¿¬°áÀÇ ´ë±â¿­¿¡¼­ °¡Àå ¾Õ¿¡ ÀÖ´Â ¿¬°áÀÇ ³»¿ëÀ» °¡Á®¿Í¼­  
                    »õ·Î¿î ¿¬°á ¼ÒÄÏÀ» ¸¸µé¾îÁØ´Ù. »õ·Î¸¸µé¾îÁø ¿¬°á¼ÒÄÏÀº ÆÄÀÏ Áö½ÃÀÚ¸¦ ÇÒ´çÇÏ¿©¼­  
                    ¸®ÅÏÇØÁÖ°Ô µÇ¸ç, ¿ì¸®´Â ¸®ÅÏµÈ ÆÄÀÏ Áö½ÃÀÚ¸¦ ÀÌ¿ëÇØ¼­ »õ·Î¸¸µé¾îÁø ¼ÒÄϰú Åë½ÅÀ»  
                    ÇÒ¼ö ÀÖ°Ô µÈ´Ù.   
                </para> 
            </section> 
        </section> 
        <section> 
            <title>ÀÔÃâ·Â ÇÔ¼ö</title>     
            <para> 
                À¯´Ð½º¿¡¼­ ¼ÒÄÏÀº ÆÄÀϰú µ¿ÀÏÇÏ°Ô Ãë±Þ µÇ±â ¶§¹®¿¡ read(), write()¿Í°°Àº ½Ã½ºÅÛ  
                ÇÔ¼ö¸¦ ÀÌ¿ëÇØµµ ´ëºÎºÐÀÇ ÀÔÃâ·ÂÀ» ´Ù·ê ¼ö ÀÖ´Ù. ±×·¯³ª ÀÌµé ½Ã½ºÅÛ ÇÔ¼öµéÀº  
                ³×Æ®¿öÅ©ÀÇ Æ¯¼ºÀ» °í·ÁÇÏÁö ¾Ê°í ¸¸µé¾ú±â ¶§¹®¿¡ ³×Æ®¿öÅ© Á¤º¸¸¦ ÇÊ¿ä·Î ÇÏ´Â ÀÛ¾÷À»  
                Çϱ⿡´Â Àû´çÇÏÁö ¾ÊÀº Á¡ÀÌ ÀÖ´Ù. 
            </para> 
            <para> 
                ¿¹¸¦µé¾î UDP¸¦ ÀÌ¿ëÇØ¼­ Åë½ÅÀ» ÇÒ°æ¿ì Àбâ´Â ¹®Á¦¾øÁö¸¸ ¾²±â¿¡´Â ¹®Á¦°¡ »ý±æ ¼ö ÀÖ´Ù.  
                UDP´Â ¿¬°á ¼ÒÄÏÀ» ¸¸µéÁö ¾Ê±â ¶§¹®¿¡ ¾µ¶§ ¿¬°áµÈ È£½ºÆ®ÀÇ Á¤º¸¸¦ ¾Ë ¼ö°¡ ¾ø±â ¶§¹®¿¡  
                write()ÇÔ¼ö·Î´Â µ¥ÀÌÅ͸¦ Àü¼ÛÇÒ ¼ö ¾ø°Ô µÈ´Ù. ÀÌ·²°æ¿ì¿¡´Â ¼ÒÄÏ API¸¦ »ç¿ëÇØ¼­ Åë½ÅÀ» 
                ÇØÁÖ¾î¾ß ÇÑ´Ù. 
            </para> 
            <section> 
                <title>ÀÔ·ÂÇÔ¼ö - recvfrom/recvmsg</title> 
                <para> 
                    ¼ÒÄÏÀ¸·Î ºÎÅÍ µ¥ÀÌÅ͸¦ ¹Þ±â À§Çؼ­ »ç¿ëÇÑ´Ù.  
                    <screen>     
#include <sys/types.h> 
#include <sys/socket.h> 
 
ssize_t  recvfrom(int s, void *buf, size_t len, int flags, struct sock- 
addr *from, socklen_t *fromlen); 
 
ssize_t recvmsg(int s, struct msghdr *msg, int flags); 
                    </screen>     
                    ¼ÒÄÏ ÁöÁ¤ÀÚ <emphasis>s</emphasis>·Î ºÎÅÍ µ¥ÀÌÅ͸¦ Àд ÀÏÀ» ÇÑ´Ù. µÑ´Ù  
                    ¿¬°áÁöÇâ ¼ÒÄϰú ºñ¿¬°áÁöÇâ ¼ÒÄÏ ¸ðµÎ¿¡ »ç¿ëÇÒ ¼ö ÀÖ´Ù. º¸Åë recvfrom()ÇÔ¼ö°¡  
                    »ç¿ëÇϱ⿡ Á÷°üÀûÀÎ °ü°è·Î ½±°Ô »ç¿ëÇÒ ¼ö ÀÕ´Ù. ¼ÒÄÏÀ¸·Î ºÎÅÍ <emphasis>len</emphasis> 
                    ¸¸Å­ µ¥ÀÌÅ͸¦ Àоî¿Í¼­ <emphasis>buf</emphasis>¿¡ ÀúÀåÇÑ´Ù.  
                    ¶ÇÇÑ 5¹øÂ° ÀÎÀÚÀÎ <emphasis>from</emphasis>¸¦ ÅëÇØ¼­ µ¥ÀÌÅ͸¦ º¸³½ È£½ºÆ®ÀÇ  
                    ÀÎÅÍ³Ý Á¤º¸¸¦ ¾ò¾î ¿Ã ¼ö ÀÖ´Ù. ±×·¯¹Ç·Î ºñ¿¬°á ÁöÇâ ¼ÒÄÏÀ» »ç¿ëÇÏ´õ¶óµµ  
                    ÀÌ ÀÎÅÍ³Ý Á¤º¸¸¦ ÅëÇØ¼­ µ¥ÀÌÅ͸¦ ¼ö½ÅÇÒ ¸ñÀûÁö È£½ºÆ®¸¦ °áÁ¤ÇÒ ¼ö ÀÖ°Ô µÈ´Ù.  
                    <emphasis>fromlen</emphasis>´Â sockaddr ±¸Á¶Ã¼ÀÇ ±æÀÌ´Ù.    
                    ³ª¸ÓÁö ÀÚ¼¼ÇÑ ³»¿ëÀº recvform(2)ÀÇ ¸ÇÆäÀÌÁö¸¦ Âü°íÇϱ⠹ٶõ´Ù. 
                </para> 
            </section> 
            <section> 
                <title>Ãâ·ÂÇÔ¼ö - sendto/sendmsg</title> 
                <para> 
                    ¼ÒÄÏÀ¸·Î µ¥ÀÌÅ͸¦ º¸³»±â À§Çؼ­ »ç¿ëÇÑ´Ù.  
                    <screen> 
#include <sys/types.h> 
#include <sys/socket.h> 
 
ssize_t  sendto(int  s,  const  void *buf, size_t len, int flags, const 
struct sockaddr *to, socklen_t tolen); 
ssize_t sendmsg(int s, const struct msghdr *msg, int flags); 
                    </screen> 
                    ¿ª½Ã Á÷°üÀûÀÎ sendto¸¦ ³Î¸® »ç¿ëÇÑ´Ù. ¼ÒÄÏ ÁöÁ¤ÀÚ <emphasis>s</emphasis>¿¡  
                    <emphasis>len</emphasis>Å©±â¸¸Å­ <emphasis>buf</emphasis>ÀÇ ³»¿ëÀ» º¸³½´Ù.  
                    <emphasis>to</emphasis>¸¦ ÀÌ¿ëÇØ¼­ µ¥ÀÌÅ͸¦ ¹ÞÀ» È£½ºÆ®¸¦ ¸í½ÃÇÒ ¼ö ÀÖ´Ù.  
                    sendto()¿Í recvfrom()ÇÔ¼öÀÇ »ç¿ë¿¹´Â   
                    <ulink url="http://www.joinc.co.kr/modules/moniwiki/wiki.php/article_UDP_¼ÒÄÏ_ÇÁ·Î±×·¡¹Ö">UDP ¼ÒÄÏ ÇÁ·Î±×·¡¹Ö</ulink> 
                    À» Âü°íÇϱ⠹ٶõ´Ù. 
                </para> 
            </section> 
        </section> 
        <section> 
            <title>ÀÎÅÍ³Ý ÁÖ¼Òº¯È¯</title> 
            <para> 
                ÀÎÅÍ³Ý ÁÖ¼Ò ÀÚü°¡ Àΰ£ÀÌ ÀÎÁöÇϱ⠾î·Á¿î ¼ö·Î µÇ¾î ÀÖ´Ù º¸´Ï À̰ÍÀ»  
                °ü¸®Çϱ⠽±µµ·Ï Á¡¹ÚÀÌ 3ÇüÁ¦ ½ºÅ¸ÀÏÀÇ ÀÎÅÍ³Ý ÁÖ¼Òü°è¸¦ ¸¸µé¾î¼­  
                °ü¸®ÇÏ°í ¿©±â¿¡ ¶Ç µµ¸ÞÀÎ À̸§À» Á༭ ½±°Ô ±â¾ïÇÒ ¼ö ÀÖµµ·Ï Çϰí ÀÖ´Ù.  
                ÇÁ·Î±×·¡¸Ó³ª »ç¿ëÀÚ´Â º¸Åë µµ¸ÞÀÎ À̸§À̳ª Á¡¹ÚÀÌ 3ÇüÁ¦ ½ºÅ¸ÀÏÀÇ ÀÎÅÍ³Ý 
                ÁÖ¼Ò¸¦ »ç¿ëÇÏ°Ô µÇ´Âµ¥, ½ÇÁ¦ ³×Æ®¿öÅ© ÇÁ·Î±×·¥¿¡¼­´Â 32bit ÁÖ¼Ò ÇüÅ·Π
                º¯È¯ ½ÃÄÑÁà¾ßÇÒ Çʿ䰡 ÀÖ´Ù.  
            </para> 
            <para> 
                ¿©±â¿¡¼­´Â À̵é ÁÖ¼Ò°£ º¯È¯°ú °ü·ÃµÈ ÇÔ¼ö¸¦ ¼Ò°³ÇÑ´Ù.     
            </para> 
        </section> 
        <section> 
            <title>ÀÎÅÍ³Ý ÁÖ¼Ò <-> 32bit ÁÖ¼Ò</title> 
            <para> 
                inet_addr(3), inet_aton(3), inet_network(3), inet_ntoa(3) ÀÇ ÇÔ¼ö¸¦ ÀÌ¿ëÇØ¼­  
                ÀÎÅÍ³Ý ÁÖ¼Ò¿Í 32bit ÁÖ¼Ò°£ º¯È¯À» ÇÒ ¼ö ÀÖ´Ù. inet_addr(3)°ú inet_network(3)ÇÔ¼ö´Â  
                Á¡¹ÚÀÌ 3ÇüÀç ½ºÅ¸ÀÏ ÀÎÅÍ³Ý ÁÖ¼Ò·Î ºÎÅÍ 32bit ÁÖ¼Ò¸¦ ¾ò±â À§Çؼ­, inet_aton(3)°ú  
                inet_ntoa(3)±× ¹Ý´ëÀÇ º¯È¯ °ªÀ» ¾ò±â À§Çؼ­ »ç¿ëÇÑ´Ù. ÀÚ¼¼ÇÑ ³»¿ëÀº man ÆäÀÌÁö¸¦  
                Âü°íÇϱ⠹ٶõ´Ù(±×³É ÇÔ¼ö ¸µÅ©¸¦ Ŭ¸¯ÇÏ¸é µÈ´Ù). 
            </para> 
        </section> 
        <section> 
            <title>µµ¸ÞÀÎ À̸§ -> 32bit ÁÖ¼Ò</title>     
            <para> 
                Á¡¹ÚÀÌ 3ÇüÁ¦ ½ºÅ¸ÀÏÀÇ ÀÎÅÍ³Ý ÁÖ¼Ò´Â È®½ÇÈ÷ °ü¸®Çϱâ ÁÁ°í ¿Ü¿ì±â¿¡ Á»´õ  
                ÆíÇϱä ÇÏÁö¸¸ ¼ýÀÚ·Î µÇ¾î ÀÖ´Ù´Â °Í ¶§¹®¿¡ ÀÎÅÍ³Ý ¼­ºñ½º¸¦ À§ÇÑ È£½ºÆ® ÁÖ¼Ò·Î 
                »ç¿ëÇϱ⿣ Àû´çÇÏÁö ¾Ê´Ù. ±×·¡¼­ ÀÎÅÍ³Ý ÁÖ¼Ò¿¡ À̸§À» ÁÖ´Â ¼­ºñ½º°¡ ¸¸µé¾îÁö°Ô  
                µÇ¾ú´Âµ¥ µµ¸ÞÀÎ ¼­ºñ½ºÀÌ´Ù. µµ¸ÞÀÎ ¼­ºñ½º´Â µµ¸ÞÀÎ À̸§¿¡ ´ëÇÑ ÀÎÅÍ³Ý ÁÖ¼Ò¸¦  
                µÇµ¹·Á ÁÖ´Â ÀÏÀ» ÇÑ´Ù. ÀÚ¼¼ÇÑ ³»¿ëÀº 
                <ulink url="http://www.joinc.co.kr/modules/moniwiki/wiki.php/article_ÀÎÅͳÝ_ÁÖ¼Ò_º¯È¯">ÀÎÅÍ³Ý ÁÖ¼Ò º¯È¯</ulink>¹®¼­¸¦ Âü°íÇϱ⠹ٶõ´Ù. 
            </para> 
            <section> 
                <title>gethostbyname/gethostbyaddr</title> 
                <para> 
                    µµ¸ÞÀÎ À̸§¿¡¼­ ÀÎÅÍ³Ý ÁÖ¼Ò¸¦ ¾ò¾î¿À´Â ÀÏÀ» ÇÑ´Ù. ÀÚ¼¼ÇÑ ³»¿ëÀº 
                    gethostbyname(3)°ú getbyaddr(3)ÀÇ ¸ÇÆäÀÌÁö¸¦ Âü°í Çϱâ¹Ù¶õ´Ù. 
                </para> 
            </section> 
        </section> 
        <section> 
            <title>³×Æ®¿öÅ© ¹ÙÀÌÆ® ¿À´õ</title>     
            <para> 
                ³×Æ®¿öÅ© Åë½ÅÀ» ÇÏ´Ùº¸¸é CPUÀÇ ¹ÙÀÌÆ® ¿À´õ°¡ ´Ù¸¥ ÀÌÀ¯·Î À̸¦ Ç¥ÁØ ¹ÙÀÌÆ® ¿À´õÀÎ 
                ³×Æ®¿öÅ© ¹ÙÀÌÆ® ¿À´õ·Î º¯È¯Çؼ­ º¸³»°í, ¹Þ¾ÆµéÀÎ µ¥ÀÌÅʹ ȣ½ºÆ®ÀÇ ¹ÙÀÌÆ® ¿À´õ¿¡  
                ¸Â°Ô ´Ù½Ã º¯°æ½ÃÄÑÁÖ´Â ÀÛ¾÷ÀÌ ÇÊ¿äÇÏ´Ù. ÀÌ·¯ÇÑ ÀÛ¾÷À» À§Çؼ­ ¼ÒÄÏÀº ¸î °³ÀÇ  
                ÇÔ¼öµéÀ» Á¦°øÇÑ´Ù. ¹ÙÀÌÆ® ¿À´õ¿¡ ´ëÇÑ ÀÚ¼¼ÇÑ ³»¿ëÀº  
                <ulink url="http://www.joinc.co.kr/modules/moniwiki/wiki.php/article_endian¿¡_´ëÇØ¼­">endian¿¡ ´ëÇØ¼­ 
                </ulink>¸¦ Âü°íÇϱ⠹ٶõ´Ù. 
            </para> 
            <section> 
                <title>È£½ºÆ® ¹ÙÀÌÆ® ¿À´õ -> ³×Æ®¿öÅ© ¹ÙÀÌÆ® ¿À´õ</title> 
                <para> 
                    htonl(3), htons(3) ÇÔ¼ö¸¦ »ç¿ëÇÑ´Ù. ÀüÀÚ´Â 4byte µ¥ÀÌÅÍ, ÈÄÀÚ´Â 2byte µ¥ÀÌÅ͸¦  
                    ³×Æ®¿öÅ© ¹ÙÀÌÆ® ¿À´õ¸¦ µû¸£µµ·Ï º¯È¯ÇÑ´Ù. 
                </para> 
            </section> 
            <section> 
                <title>³×Æ®¿öÅ© ¹ÙÀÌÆ® ¿À´õ -> È£½ºÆ® ¹ÙÀÌÆ® ¿À´õ</title> 
                <para> 
                    ntohl(3), ntohs(3) ÇÔ¼ö¸¦ »ç¿ëÇÑ´Ù. ÀüÀÚ´Â 4byteµ¥ÀÌÅÍ, ÈÄÀÚ´Â 2byteµ¥ÀÌÅ͸¦  
                    È£½ºÆ® ¹ÙÀÌÆ® ¿À´õ¸¦ µû¸£µµ·Ï º¯È¯ÇÑ´Ù. 
                </para> 
            </section> 
            <section> 
                <title>¿£µð¾È °Ë»ç ÇÔ¼ö</title> 
                <para> 
                    ÀÌ°Ç º¸³Ê½º´Ù. ÇöÀç CPUÀÇ ¹ÙÀÌÆ® ¿À´õ ¹æ½ÄÀ» ¾Ë·Á ÁÖ´Â °£´ÜÇÑ ÇÔ¼ö´Ù.  
                    <screen> 
int endian(void) 
{ 
    int i = 0x00000001; 
    if ( ((char *)&i)[0] ) 
        return LITTLE_ENDIAN; 
    else 
        return BIG_ENDIAN; 
} 
                    </screen> 
                </para> 
            </section> 
        </section> 
        <section> 
            <title>¼ÒÄÏ ¿É¼Ç</title> 
            <section> 
                <title>¼ÒÄÏ ¿É¼Ç ¼³Á¤ - setsockopt(2)</title> 
                <para> 
                </para> 
            </section> 
            <section> 
                <title>¼ÒÄÏ ¿É¼Ç °¡Á®¿À±â - getsockopt(2)</title> 
                <para> 
                </para> 
            </section> 
        </section> 
    </section> 
</section> 
<section> 
    <title>¼ÒÄÏ ÇÁ·Î±×·¡¹Ö ÀϹÝ</title> 
    <section> 
        <title>¼­¹öÃø socket »ý¼º ¼ø¼­</title> 
        <para> 
            ´ÙÀ½Àº ¼­¹öÃøÀÇ ¼ÒÄÏ »ý¼º ¼ø¼­¸¦ ³ª¿­ÇÑ °ÍÀÌ´Ù. 
            <orderedlist> 
                <listitem> 
                      <para> 
                    ¼­¹öÃøÀÇ ¼ÒÄÏ »ý¼º¼ø¼­´Â ÃÖÃÊ <emphasis>socket</emphasis>  
                    ÇÔ¼ö¸¦ ÀÌ¿ëÇØ¼­ endpoint ¼ÒÄÏ, Áï Ŭ¶óÀ̾ðÆ®ÀÇ  
                    ¿¬°áÀ» µè±â À§ÇÑ ¼ÒÄÏÀ» »ý¼ºÇÏ°Ô µÈ´Ù.  
                    ÀÌ ¼ÒÄÏÀº ¼­¹ö°¡ Á¾·áµÉ¶§±îÁö ³²¾ÆÀÖ°Ô µÈ´Ù.  
                      </para> 
                    </listitem> 
                    <listitem> 
                    <para> 
                    <emphasis>bind</emphasis> ÇÔ¼ö¸¦ È£ÃâÇÏ¿© ¼ÒÄÏÆ¯¼ºÀ» ¹­¾îÁØ´Ù. ÀÌ ÇÔ¼ö¸¦ ÀÌ¿ëÇÏ¿©  
                    port ¹øÈ£¸¦ ÁöÁ¤ÇØÁÖ¸ç, ¹Þ¾ÆµéÀÏ IPÁÖ¼Ò¿¡ ´ëÇÑ ¼³Á¤À» ÇÑ´Ù.  
                    </para> 
                    </listitem> 
                    <listitem> 
                    <para>     
                    <emphasis>listen</emphasis> ÇÔ¼ö¸¦ ÀÌ¿ëÇÏ¿© µè±â  
                    ¼ÒÄÏ(socket ÇÔ¼ö¸¦ ÅëÇØ¼­ ¸¸µé¾îÁø)  
                    ¿¡ ¿¬°áÀÌ ÀÖ´ÂÁö ±â´Ù¸°´Ù. ¸¸¾à ¿¬°áÀÌ ÀÖ´Ù¸é, ¿¬°á ´ë±â¿­(queue)¿¡ ½×¾Æ³õ´Â´Ù.   
                    </para>     
                    </listitem> 
                    <listitem> 
                    <para> 
                    <emphasis>accept</emphasis> ÇÔ¼ö¸¦ ÀÌ¿ëÇÏ¿© ¿¬°á ´ë±â¿­¿¡ ´ë±âÁßÀÎ ¿¬°áÀÌ ÀÖ´Ù¸é  
                    ÇØ´ç ¿¬°á¿¡ ´ëÇÏ¿© »õ·Î¿î ¼ÒÄÏÀ» ¸¸µé°í ¸¸µé¾îÁø ¼ÒÄÏ¿¡ ´ëÇÑ ÆÄÀÏ Áö½ÃÀÚ¸¦  
                    µÇµ¹·ÁÁØ´Ù. ÀÌ ¼ÒÄÏÀº Àбâ/¾²±â·Î ¸¸µé¾îÁø´Ù. ¸¸¾à ¿¬°á ´ë±â¿­¿¡ ´ë±âÁßÀÎ ¿¬°áÀÌ  
                    ¾ø´Ù¸é (±âº»ÀûÀ¸·Î) ÇØ´ç ¿µ¿ª¿¡¼­ ºÀ¼â(block)µÈ´Ù.   
                    </para>     
                    </listitem> 
                    <listitem> 
                    <para>     
                    <emphasis>read, write</emphasis> µîÀÇ ÇÔ¼ö¸¦ ÀÌ¿ëÇØ¼­ Åë½ÅÀ» ÇÑ´Ù.  
                    </para>     
                    </listitem> 
            </orderedlist> 
        </para> 
    </section> 
    <section> 
        <title>Ŭ¶óÀÌ¾ðÆ® Ãø socket »ý¼º¼ø¼­</title> 
        <para> 
            ´ÙÀ½Àº Ŭ¶óÀ̾ðÆ®ÃøÀÇ ¼ÒÄÏ »ý¼º ¼ø¼­¸¦ ³ª¿­ÇÑ °ÍÀÌ´Ù. ¼­¹öÃø¿¡ ºñÇÏ¿©¼­  
            ÈνŠ°£´ÜÇÏ°Ô ÀÌ·ç¾îÁüÀ» ¾Ë¼ö ÀÖ´Ù.  
            <orderedlist> 
                <listitem> 
                      <para> 
                    ÃÖÃÊ <emphasis>socket</emphasis> ¸¦ ÀÌ¿ëÇÏ¿© endpoint ¼ÒÄÏÀ» »ý¼ºÇÑ´Ù.  
                    Ŭ¶óÀÌ¾ðÆ® À̹ǷΠÀ̰ÍÀº µè±â ¼ÒÄÏÀÌ ¾Æ´Ï°í, ¿¬°á ¼ÒÄÏÀÌ µÉ°ÍÀÌ´Ù.  
                    (À̸§¸¸ ´Ù¸¦»Ó »ç½Ç µè±â ¼ÒÄϰú ¿¬°á ¼ÒÄÏÀÇ ±¸ºÐÀº ¾ø´Ù)   
                      </para> 
                </listitem> 
                <listitem> 
                    <para> 
                    <emphasis>connect</emphasis> ¸¦ ÀÌ¿ëÇÏ¿© ¼­¹ö¿¡ ¿¬°áÇÑ´Ù.  
                      </para> 
                </listitem> 
                <listitem> 
                    <para> 
                    <emphasis>read, write</emphasis> µîÀÇ ÇÔ¼ö¸¦ ÀÌ¿ëÇØ¼­ ¼­¹ö¿Í Åë½ÅÇÑ´Ù.   
                      </para> 
                </listitem> 
            </orderedlist> 
        </para> 
    </section> 
</section> 
<section> 
    <title>°á·Ð</title> 
    <para> 
        ÀÌ»ó Socket Layer ÀÇ °³³ä°ú Socket Layer ¿¡¼­ Á¦°øÇÏ´Â Socket API ¿¡ ´ëÇÑ °£´ÜÈ÷  
        ¾Ë¾Æ º¸¾Ò´Ù. ¿©±â¿¡ ÀÖ´Â API µéÀº °¡Àå ±âº»ÀûÀÎ(Åë½ÅÀ» À§Çؼ­ ÇÊ¿äÇÑ) ÇÔ¼öµéÀÌ´Ù.  
        ³ª¸ÓÁö Á»´õ ¼¼¹ÐÇÑ ÇÔ¼öµé¿¡ ´ëÇØ¼­´Â Unix NetWork Programming µîÀÇ ¼­ÀûÀ» Âü°íÇϱ⠹ٶõ´Ù. 
    </para> 
    <para> 
        ¿©±â¿¡ ÀÖ´Â ¼ÒÄÏ API µéÀÇ »ç¿ë¿¹´Â ÀÌ »çÀÌÆ®¿¡¼­ ÃæºÐÈ÷ ã¾Æº¼¼ö ÀÖÀ»°ÍÀÌ´Ù.  
    </para> 
</section> 
</article> 
 
EmailÀ» ±âÀÔÇϸé, ´ñ±ÛÀÌ ¸ÞÀÏ·Î Àü´ÞµË´Ï´Ù.