introduction to network programming jie wang department of

65

Upload: vuthuy

Post on 14-Feb-2017

223 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Introduction to Network Programming Jie Wang Department of

����������� ��������� ��� � ����� ����� � �������� "! ! �#�$�

%'&)(+*-,/.102�(435,7698;:�(#.<8�=/>�?@=':�3BAC8;(46EDGF#&H(I.JFK(

LNM$,7OPORQS=UT�(#VWV

X�Y[ZK\^]`_aZ

b�cUd�egfahidkjUlUmnj7foegd�foprqscItue1vUf;qsd�tuewqsf�jUmnf9x#tiyUd{z}|KlUtu~���tuv�qsmnf#yIlU~�qgtufav�qgf�enqglUyUd�v�qge�fav��{mntiqgtuvU�vUd�q���famn�+zojUjIhutu~�z;qstifavUe�lUegtivU�����I��enf#~��;d�q��}�J���H�SjUjUhuti~�z;qgtufav��Jmgfa�amgzo����vKqgd�m�pHzo~�d�������lIq��afol�@z9�"zohuenf��UvUy�t�q�c`zovUyI��z;e@z+mnd�p d�mnd�vU~�d�fav¡�{mgt�qstivU�+~�hitud�v�q�¢�egd�mnxod�m£jUmgfa�omszo�£e������I��egf4~��od�q�}�J�£mgd�egtuyId�eEfav�qgfaj�fop�qscIdNb�¤k�5¥;�¦�§jUmnfoqsf4~�fah�eglItiqsd;�¨b�cUtueEvIfoqsd���zoeElUend�y©zoeEzªeglUjUjIhud�¢�£d�v�q«p famR¬g­I®a�°¯K±a²@¤�fa�£jUlIqsd�m��#d�~�lUmntiq��4³R~�falUmgend��kq�z;lU�ac�q�z;q}´}µ�z;ege�¶·f9��d�huhGtuv+�4jUmgtivU�E¸o¹o¹�¸#�º5fal£zomnd�d�vU~�falUmsz;�ad�y�qsf�~�fovUeglUh�qBfoqscId�mJ»¼f#fa�Ke�� do�°�U�i½¼¾°¤�fa�@­�²#½K¤��#­a¿I½�À��B­a¹;ÁÂ�Gp fam1�£famgd�yUd�qszotuhie��

�«huh4qscUd{dÄÃUz;�@jUhid�eJ�at�xad�v£tiv�qscUtieJvUfoqgd�c`z�xad�»7d�d�v�qsd�e�qsd�y@lUvIyUd�m��#lUv`Å��£±#�Æ¿}lUegtivU��qscUdSÇ�È«´¤�~�fa�£jUtuhid�m5»����£do½IzovUyElUvUyId�m�¤�fa�£j`zo|£bGmnl`¿o¯�´SÈS�^ÉÊ�HzohujUcUz�´«È��^É���»��R�£d�zovIyE»K��­I®a�°¯K±a²enqglUyUd�vKqgektuv�qscId�end��£d�e�qsd�m�fop<�4jUmgtivU��¸;¹a¹�¸#�1¤�fa�@jItuhutivU�}~�fa�@�@zovUy£hutivUd�eBz;mgd�yUtiË7d�mnd�v�q5»7d�q���d�d�v�#lUv`Å��@zovUyE¤�fo�@j`z;|ÌbGmnl`¿o¯�´«ÈS�^É��#b�cId«yUt�Ë/d�mgd�vI~�d�tueBcUtu�ocUhuti�ac�qsd�y�� fav�j`z;�ad}¸;¿���½4zovUy@jUhud�zoegdj`z���~�hifaegd�zPqgqsd�v�qstufov��{cId�v��ofalÍ~�fa�£jUtuhid«qscId�egd�jUmnfa�amsz;�@e��

b�cUtueEvUf;qsd+tue�lUj7yUz;qsd�yÎp mnfa� qgtu�£d�qsfÏqgtu�£do�Ð�«yUyItiqstifav`zoh�d�Ã#d�mg~�tiegdÑjUmgfo»Uhud��@eR�@z���z;huegf»¼dNzoyUyId�y'�Ò����d�hu~�fo�@d�~�fa�£�@d�v�qse@zovUy�enlU�a�ad�enqstifavUe�½{zovUy��Ì~�zov�»¼d�mgd�zo~�cUd�y�»K��d�¢^��z;tuh{z;qÓBÔ�Õ[ÖK×CØ�Ù�ÚÜÛ�Ý�ÞßÚ°à�áUÛ �

®

Page 2: Introduction to Network Programming Jie Wang Department of

âÊã@äRåCæ�äRåJç

è é�êHë Z#ì¼í�î�ï/ZKY9ð7ZKY£X�Y[ñròrY[]`óÏó ë ìwò�]`ìwô�õ@ï'ö ï'ñ'_P÷rZ�í£ø�ì7í�Z4Y[\^]U_aZ ù®a�i® ���I�$egf4~��od�qseú������������������������������������������������������������������� ¯®a�߸ ¤�hutid�v�qn¢^egd�m�xad�m�jImgfa�amgzo�ûj`z;mszoyUti�a� ��������������������������������������������� ±

ü ý ï ë óªþ ê Z é ñ¼ÿwì7í ë ìwò¡ï'ZKY9ð¼ZKY �¸#�i® �#d�q�lUj ������������������������������������������������������������������������� ±¸#�߸ bGd�enqSj7fomnq������������������������������������������������������������������������ ¿¸#��� �Jmgfoqgf#~�fah'd�v�qgmgtud�eÎ��������������������������������������������������������������� ¿¸#�Ư �#d�m�x4tu~�d�j¼famnqge ����������������������������������������������������������������� �¸#�ß± �#f4~��od�q«zoyUyImgd�enegtivU� ������������������������������������������������������������� ­¸#� ¿ ÈSlU��»7d�mge�zovUyÍvUd�q���famn�4tivU���Îz�enhuti�ac�q{yUtu�amnd�enegtufovÍ������������������������������� ®9¹¸#�ß² ÈSd�q���famn�Ey`z;qszo»`zoend�hitu»Umgzomn�@~�z;huhue������������������������������������������������ ®a®¸#��� �#d�qnqstivU��lUjÍqgcUd�egf4~��od�q«e�qsmglI~�qslImgd ��������������������������������������������� ®a®¸#� ­ ��tuvIyUtuvU��z�egd�mnxod�m��°e�egf4~��od�qSqsf£zÌegd�mnx4tu~�d ��������������������������������������� ®[¸¸#�i®�¹��#d�qnqstivU�ÌqscUd�»`zo~��Khifa� ����������������������������������������������������������� ®��¸#�i®o®Ïb�cUd���zotivRhuf4faj������������������������������������������������������������������ ®�¯¸#�i®9¸�b�cUd ÙnàPÕ[á ½ ÙnàPÕ[á�� ½rzovUy ÙnàPÕ[áUÝ«Ù�Ö jImgf4~�d�yIlUmgd¨����������������������������������� ®�¯¸#�i® ��b�cUd�~�hufoegtuvI�ÌjUmgf4~�d�yUlUmgd ������������������������������������������������������� ®[±¸#�i®�¯��CÃId�mg~�tuegd�jUmnfa»Uhud��@e�������������������������������������������������������������� ®[±

� ý ï ë óªþ ê Z é ñ¼ÿwì7í ë ìwò é�ê)ë Z4ì7í è ��I�i® �#d�q�lUj ������������������������������������������������������������������������� ®[±�I�߸ ¶·f#fa�KtivU�ÌlUj�z£yUfo��zotivRv`zo�£d ������������������������������������������������� ®[²�I��� ÈSlU�£d�mntu~�zoyIyUmgd�egegd�e ����������������������������������������������������������� ®9­�I�Ư ¤�favUvUd�~�q ����������������������������������������������������������������������� ®9­�I�ß± b�cUd���zotivRhuf4faj������������������������������������������������������������������ ¸o¹�I� ¿ b�cUd�� à�Ø�� ½�� à�Ø���� � �#Ý ½rzovIy�� à�Ø���Ý«Ù�Ö jUmnf#~�d�yUlImgd�e@��������������������������������� ¸o¹

ù ���<Z é ñ¼óúþ ê Z�í9Z é ñ¼ÿwì7í ë ìwò¡ï'ZKY9ð¼ZKY9î é�ê)ë Z4ì7í é ñ·ô<Z ü·è¯U�i® b�cUd�egd�m�xad�mÏ��������������������������������������������������������������������� ¸#®¯U�߸ b�cUd�~�hutid�v�qÊ��������������������������������������������������������������������� ¸��¯U��� �4qsmnd�zo�§egd�m�x4tu~�d�zovUy���lIhiqstijUhud�� à�Ø�� ~�zohuhieN��������������������������������������� ¸o¿¯U�Ư ¤�fa�£jUtuhituvU�Ìz;vUy�mglUvUvItuvU��jUmnf#~�d�ege ��������������������������������������������� ¸o¿

� �<Y[]`óªZ ��ñrYP÷¡ñr\!� é X é�êHë Z4ì7í�]`ìwôÒï/Z4Y9ð¼ZKYRX�YPñròrY[]`ó#" ü%$±#�i® ´SentuvU��egf4~��od�q«~�zohuhie�tuvÍzÌjUmgfo�amszo� ��������������������������������������������� ¸a²±#�߸ b�cUd�b�¤k��~�hitud�v�q�p mgzo�@d���fomg����������������������������������������������������� ¸a²±#��� b�cUd�b�¤k��egd�mnxad�mSp mgzo�@d���fomg� ������������������������������������������������� ¸o­

¸

Page 3: Introduction to Network Programming Jie Wang Department of

& ï'ñ·_[÷rZ�í ý X�ø£ï%'("�í�Z#ó é ] êHê " ü*)¿I�i® Ù+�4Ø-,sà� ������������������������������������������������������������������������� ¸o­¿I�߸ Ø��IÕ�Õ[à�Ø� ������������������������������������������������������������������������� �a¹¿I��� Ó �/. ¦à ��������������������������������������������������������������������������� �a¹¿I�Ư � à�ÔPá ��������������������������������������������������������������������������� �I®¿I�ß± Ø;Þ �aÙnà ��������������������������������������������������������������������������� �I®¿I� ¿ 0. Õ[á ��������������������������������������������������������������������������� ��¸¿I�ß² Þ . Ù1¦àPÕ ��������������������������������������������������������������������������� ��¸¿I��� ÔPØ�Ø�à�2� ������������������������������������������������������������������������� ��¿I� ­ � à�Ø�� ����������������������������������������������������������������������������� ��¿I�i®�¹3� à�Ø���ÝSÙnÖ ����������������������������������������������������������������������� �o¯¿I�i®o®4� à�Ø���� � �#Ý ����������������������������������������������������������������������� �o¯¿I�i®9¸ ÙnàPÕ[á ��������������������������������������������������������������������������� ��±¿I�i® � ÙnàPÕ[áUÝ«Ù�Ö ����������������������������������������������������������������������� ��±¿I�i®�¯ ÙnàPÕ[á�� ������������������������������������������������������������������������� �a¿¿I�i®9± Ù�5�Û�¦á6��Ó�Õ ����������������������������������������������������������������������� �a¿¿I�i®�¿ Öaà�72oà�à � ÕPÔ�Ý«à ������������������������������������������������������������������� ��²

$ é ñ¼ìw_�ÿwY[Y[Z4ì7íEï'ZKY9ð¼ZKY�X�YPñròrY[]`ó#" �%$²#�i® �8� � , �©zÌ~�favI~�lUmnmgd�vI~��Í�@d�~�c`zovUtieg� ��������������������������������������������� ��²#�߸ µ�zoe�qsd�m�zovIy�enhÂz�xad�jUmnf#~�d�egend�eSfopCend�m�xad�mSjUmgfo�amszo�£eû����������������������������� ¯�¹

9 ���<ZÑï/Z#_añ¼ìwô�:<;·]`óúþ ê Z>=?:}_-�<ñ ë ì<òA@ÍZ�í���ñrYP÷ é ñ¼óÏó�ÿwì ë _a]Ií ë ñ¼ìB" ù è�I�i® b�cUd à �C� àED . EFHG jUmgf4~�d�yUlUmnd������������������������������������������������������� ¯U®�I�߸ �Czoenegt�xad�egf4~��od�q������������������������������������������������������������������ ¯6��I��� b�cUd 2PÔPÙ�Ù . �[à�IKJMLNFHG jImgf4~�d�yIlUmgd ������������������������������������������������� ¯K±�I�Ư b�cUd�egd�m�xad�mSjUmnfa�amgzo� ����������������������������������������������������������� ¯K±�I�ß± �«~�qstixod�egf4~��od�q ����������������������������������������������������������������� ¯�­�I� ¿ b�cUd Ø��IÕ�Õ[à�Ø��IKJMLNFHG jUmnf#~�d�yUlUmndR������������������������������������������������� ±#®�I�ß² b�cUd�~�hutid�v�q�jUmnfa�amgzo� ����������������������������������������������������������� ±a¸�I��� O Ô ,sà�P¼Þ à ����������������������������������������������������������������������� ±��

) ���<ZQ��� ë Y;ôR:<;·]`óªþ ê Z*=TS ë "�í ë ìwò+íU�<Z é ñ¼ì7í9Z4ì7í�"�ñ¼\{]Ñö ë Y[Z4_oí9ñrY�'"ñ¼ì�]�VRZ4óúñ`í9ZW�ñ>"�í �*�­I�i® b�cUd�egd�m�xad�mSjUmnfa�amgzo� ����������������������������������������������������������� ±a±­I�߸ b�cUd�~�hutid�v�q�jUmnfa�amgzo� ����������������������������������������������������������� ±��­I��� O Ô ,sà�P¼Þ à ����������������������������������������������������������������������� ¿a¹

è X�ý þGþJZ4ìwô ë ;Y=�íU�<Z Ý«Ô ,�à[Z í ëHê)ë íE' &·è®9¹I��®Ï�$egtu�£jUhid}d�ÃIzo�£jUhud¡������������������������������������������������������������� ¿I®®9¹I� ¸��$�@famnd�zoyIx;zovU~�d�yÍd�ÃIzo�£jUhud ��������������������������������������������������� ¿�¸

Page 4: Introduction to Network Programming Jie Wang Department of

\ â^] _�æ�äRåB`(aEæ?bMc£æ?b debJã�f[bYgih h _�äQf g�äkj lmaon aEãqpsr�æSå t<äo`å1æ?bYug�p�æ

b�cUdªegf4~��od�q��}�J�+� �«jUjIhutu~�z;qstifavÎ�Jmgfa�omszo� ��v�qsd�mnpHzo~�d9�EjUmgf9x4tuyId�e�z�e��#e�qsd�� d�v�x#timgfavI�@d�vKqÍp fam�{mgt�qstivU�RvUd�q���famn�NzojIjUhuti~�z;qgtufavÍjUmgfo�amszo�£e����^q}tueSqgfR»¼d�lUegd�y�favNqsfaj+f;pJqscUd�b�¤k�5¥;�¦�ÒjUmgfoqgf#~�fahenqszo~��r�k�4f#~��;d�qS�}�J��tie�fop qsd�v�mnd�p d�mnmgd�yÍqgf�zoe�enf#~��;d�q«tuv�qsd�mnpHzo~�do�

b�cUdwv�xzyC{�|~}��C��{�����{��BjUmnfa�amgzo�@�£tuvI��tie�qscId}�@foenq�~�fa�@�£fav£q��#j¼d�fop<vUd�q���fomg�Rz;jUjUhuti~�z;qgtufavIe��C���{��E��{���tie�zNjUmnfa�amgzo� qgc`z;qÌjImgf9x4tuyUd�eÌegd�m�x4tu~�dÑ� egd�mnxad�e�lUj"mgd�egfalUmn~�d�e���qsfNqgcUdR~�hitud�vKq�jUmgfa�omszo�Í��`fam�tuvIenq�z;vU~�d;½rzÌ�Uhud�egd�mnxod�m«�@zo�;d�e��`hud�e�z9x;zotihÂzo»Ihudo½#zovUyÍz�yUtuenjUhÂz���egd�m�xad�mS�@zo�od�e�z�»Itiqs�@zojUj¼d�yyUtiegjUhuz9�"�)zovIyª�;d��4»7fazomgyªzovUyÑ�@folUegd��}z9x;zotihÂzo»Ihud�qgf�~�hutid�v�q�jUmnfa�amgzo�@e�����v�xzyC{�|~}1tue�zEjUmnfa�amgzo�qscUz;q}z;~�~�d�egend�e«qgcUd�end�mnd�egfolUmg~�d�e}»���~�fovUvUd�~�qstivU�@qgf�z�egd�mnxad�m«jUmnfa�amgzo���5b�cUd�egd�mnxad�m}jUmnfa�amsz;�ûtuezoh��kz��4eStiv�mglUvUvItuvU�£tuvEqscId�»`z;~��4�omgfalUvIy�fav�qscUd�egd�mnxod�m�egtiqgd@�HtW�°do��½rz�~�fa�£jUlIqgd�m�qsc`zPq�qgcUd�egd�m�xad�mjUmnfa�amsz;�ûtue�dÄÃId�~�lIqgd�yr�Ä�

���+� ���!� �����*��������^q�tue�v`z;qglUmsz;h1qsf�x#tid���zÍenf#~��;d�q�tuv�qsd�mnpHzo~�d@z;e�zovÑ��¥aÅ d�v�x4tumgfovU�@d�v�q�p fam�vId�q���famg�ÑzojUjIhutu~�z;qstifavjUmnfa�amsz;�@e�½[xod�m�����lU~�c�tiv�qscUdBesz;�@d1��z���zoe·��dBx4tud��Ïz{�UhudJtuv�qgd�mnpHz;~�d5zoewzov���¥aÅ�d�vKx4timgfavU�£d�v�q<p famenqszovUy#¢�zohufovUd�~�fa�£jUlIqgd�m�zojUjUhitu~�z;qstifavUe��M�ÎcItuhud�z;v���¥aÅÐd�v�x4tumgfovU�@d�v�qSjImgf9x4tuyUd�e«z�egd�q«fopGen�4e�qsd��~�z;huhueRp fomE~�mgd�z;qstivU��zovUyÎ�£f#yUt�p �4tuvU�ú�Uhud�e�tivÒz"e�q�zovUy4¢¦zohifavUd+~�fo�@jUl#qsd�m�½�zovÎegf4~��od�q�tiv�qsd�m�pHzo~�djUmnf[x4tiyUd�e�zRegd�q�fop5en�4enqgd�� ~�zohuhie«p fam}~�mgd�z;qstivU�EzE~�fa�£��lUvItu~�zPqstufov�~�c`zovIvUd�hJ»¼d�q���d�d�vÑqgcUdÌ~�hitud�v�qzovUy�qscIdÌegd�m�xad�m�tiv�z�~�fa�£jUlIqsd�m�vUd�q���famn�Np fam�tuvUjIlIq�zovUyÑfalIqgjUlIq����Sd�vU~�d;½<��d£~�zov+qscItuvU��fopkzegf4~��od�q�zoe{zÌ�`hid�tuv�vUd�q���famn�E~�fa�£��lUvUti~�z;qgtufav/�

�#f#~��;d�qge1zomnd�~�mgd�zPqsd�y�lUegtivU�}z{en�4e�qsd��Ð~�z;huh¼�Ht)�Æd;�i½P»���qscUd�faj¼d�mszPqstuvI��e��4enqsd��R�ĽazovIy�d�z;~�c�egf4~��od�q~�mnd�z;qgd�y£»���qscUd�foj7d�msz;qgtuvU�}e��4enqsd���tue1tiyUd�v�qgti�`d�y£»���z�en��z;huh4tuv�qsd��ad�mJ~�zohuhid�yÌz�����v7�6{�}B��{7��v��Ey��>}����Ľxad�mn�ú��lU~�c"tuvÑqscUd�eszo�£d@��z��Ïfop�~�mgd�z;qstivU���`hid�e��{cId�mgdRqgcUd�foj7d�msz;qgtuvU��en�4enqgd�� z;egegti�avUeÌz[��x�{��{7��v��Ey��>}�����qsf+d�zo~�c¡�`hudRt�q�faj¼d�vIe��¡ olIenq£zoe���d�lUegdEe��4enqsd�� ~�zohihueq�7�~{�|�¢>�7{¤£6��¢>¥Y�Ey¦}H{H¢�v�x�����{�qsffaj¼d�mgz;qsd�favE�`hid�e�½I��d�lUend�egtu�£tuhuzomBen�4enqgd�� ~�zohuhie�qsf�faj¼d�mgz;qsd«fav�egf4~��od�qge����ÎcUd�v�zovÍzojUjIhutu~�z;qstifav~�z;huhue�§6¨ª©U«�¬�­¼½/qscUd�faj7d�msz;qgtuvU��en�4enqgd�� z;huhuf4~�zPqsd�eSz�vUd��Ðy`z;q�z@enqsmnlU~�qglUmgd�qgfRcUfahiy�qscId�tuvIp fomg�@zP¢qstifav�vUd�d�yUd�y�p fam�~�hitud�v�q�¢�egd�mnxod�m{~�fa�£��lUvItu~�zPqstufov'½UzovIyÍ�`hihuektivÍz£vUd��¨yUd�eg~�mntujIqgfam�q�zo»Ihud�d�v�qgmn�Eqsf~�fovKqszotuv�zÌj7fotuv�qsd�mkqsfÌqscUd�y`zPq�zÌenqgmglU~�qslUmnd�fopwqscId�enf#~��;d�q��

�#tuvU~�d���d{zomgdklIegtuvI��b�¤k��¥P�¦�újUmgf;qsf4~�fahie�½az}enf#~��;d�q5y`z;qsz«enqgmglU~�qslUmnd�q��#jItu~�z;huhi��~�favUentuenqgeJfoprqscUdp fahihuf9�{tuvU�Ì�`d�huyUe�® �HÔKÝ . Þ ¯ ½ Ùnà � � . Ø�à ½Y° �#Ø�ÔKÞ%±²L ½B³ àPÝ<�-¦à´±²L ½N° �4Ø�Ô�Þ>2� � ½7zovUy¡³ à;ݵ��¦àw2�� � ½r�{cUd�mnd�HÔ�Ý . Þ ¯ enj7d�~�ti�Ud�e�qgcUd«jImgfoqgf#~�fahUq��4j7d;½UzovUy Ùnà � � . Ø�à enj7d�~�ti�Ud�e�qgcUd{q��#j¼d«f;p·egd�mnx4tu~�do�Bb�cUd«foj7d�msz;qgtuvU�en�4e�qsd��Êhud�z�xad�e5�£faenq5fop¼qscUd{�`d�huyUeBtuv�qscIdStivKqgd�mnv`zoh`y`z;qsz�enqsmnlU~�qglUmgdSfop·z�egf4~��od�q�lIvI�`huhid�y��{cUd�v@tiq~�mnd�z;qgd�y£qscUd{egf4~��od�q��Bb�cUd�zojUjIhutu~�z;qstifav�qgc`z;q5~�mnd�z;qgd�eBqscUd{egf4~��od�q���lUenq5�@zo�od�zoyUyItiqstifav`zoh4en�4e�qsd��~�z;huhuekqgfÌ�`huh'tiv�tuvIp famn��zPqstufov�tuvEqgcUd�egf4~��od�qSy`z;qszÌenqsmnlU~�qglUmgd�»¼d�p famnd�qgcUd�egf4~��od�q«~�zov�»¼d�lUegd�y'�

Å�vI~�dEz�enf#~��;d�q�c`z;e�»7d�d�v"~�mgd�zPqsd�y/½Jtiq�d�tiqgcUd�m��kzot�qse�p fam�zov"tivU~�fo�@tivU��~�favUvUd�~�qgtufav'½C~�zohihud�yz¶��£��7��y¦��{w����v7�6{�}H½Jfam�tivUtiqgtÂz;qgd�e�zN~�favUvId�~�qgtufav/½5~�zohuhid�y¡zov·£�v�}�y¦��{¸����v7�6{�}H�Ñ� egd�m�xad�m£~�mgd�z;qsd�e@zj`zoenegt�xad«enf#~��;d�q�½`zovUy�z�~�hutud�v�q�~�mgd�zPqsd�e�zov@zo~�qgtixadSegf4~��od�q��Bb�cUdSzo~�qgtixadSegf4~��od�qkegd�d��Kekfal#qkz�egd�m�xad�mzovUyú��zo�;d�eÌz;v"zo~�qgtixod�~�fovUvUd�~�qstifavúqsf�qscUdRend�m�xad�m�qscUmnfalU�acÏt�qse�j`zoegentixodRegf4~��od�q��Nb�cUd�j`zoegentixodegf4~��od�q}entiqse{z;vUyÍ��zot�qsekp fam{z�~�hitud�v�q�½I�kz;tiqstivU��qsf�»¼d�~�favUvId�~�qgd�yÍqsf£zov�zo~�qgtixad�enf#~��;d�q��

¯

Page 5: Introduction to Network Programming Jie Wang Department of

���H¹ º¡»1¼1�N½¾� ¿-���(ÀÂÁ¾�(À3ÃÄÀ~�sÅ�À~Æ�Ç ÃÄÆYÀ~ÆYÈT¼1ÅsÇ�$egd�mnxad�mSlIegl`zohihi��~�favUentue�qse�fop1zÌend�|KlUd�vI~�d�f;pCe��#e�qsd���~�zohuhie�qsf�j¼d�m�p famg�§qgcUd�p fahuhif9�{tuvU��qszoeg�Ke�®®a���Shuhuf4~�zPqsd�zÌ~�fo�@��lIvUtu~�z;qstifavR~�c`zovIvUd�h��HjUzoegentixad�egf4~��od�qÄ�Ä�¸#�{��tivUyEqscUd�enf#~��;d�q«qgf£z�j¼fam�q{v4lI��»7d�m�� p fam�~�hutud�v�qsekqsf£�@zo�od�~�favUvUd�~�qstifav�qsfK�Ä��I����vIp fomg�§qgcUd�faj7d�msz;qgtuvU�Ìe��4enqsd�� fop1z;vK�Rmgd�hid�x;zov�q�j`zomgzo�@d�qsd�mge�vUd�d�yUd�y'�¯U�{¶·f4faj'½I��zotiqgtuvU��p fom�tuvU~�fa�@tivU�Ì~�fovUvUd�~�qstifavUe��±#�{�Jmgf4~�d�ege�d�zo~�c�~�favIvUd�~�qstufov'��~�hitud�vKq�lUeglUzohuh���~�favUentue�qse�fopwz�end�|KlUd�vU~�d�fop<e��#e�qsd��§~�z;huhueBqsf�j7d�mnp famn�ÊqgcUdSp fahihuf9�{tuvI��qszoeg�Ke�®®a���Shuhuf4~�zPqsd�zÌ~�fo�@��lIvUtu~�z;qstifavR~�c`zovIvUd�h��)z;~�qst�xad�egf4~��od�qÄ�Ä�¸#��¤�favIvUd�~�qSqgcUd�egf4~��od�q�qsf£z�j7fomnq{vKlU��»¼d�m�zovUy�cUfoenq{�{cUd�mnd�qgcUd�yUd�entumnd�yÍegd�m�x4tu~�d�mgd�egtiyUd�e���I�É�úzotiq�p fomkqscUd�~�fovUvUd�~�qstifavEqsf£~�fa�£jUhud�qsd�zovIyÍ~�cId�~��Ep famkpHzotihulUmndo�¯U�{�wd�mnp fomg�ûqscId�qszoeg�r�±#�{�}tieg~�fovUvUd�~�qSzovUyÍ~�hud�zov�lUjÍtipwvUd�~�d�eneszom��a��^q�tue�zoh��kz��4e�d�zoentud�m�z;vUy�|4lItu~��od�m�qgf�hud�z;mgv+cUf9� qgfE�{mgtiqgdÌjUmgfo�amszo�£e�tuv�zEvUd�� p mgzo�@d���fomg�

»��úe�qslUy#�#tivU��zÍp d�� ��famn�KtuvU�NdÄÃIzo�@jIhud�e�tuvÑqsc`z;q�p mszo�£d���famn�¼�q�ªd��{tuhihJyUtuenegd�~�q�zovUyÏzov`zoh��ªÊ�do½zoe�qscUd£�`mge�q�d�ÃIzo�£jUhido½GzÍxad�mn�ªegti�@jUhid�~�hutid�v�qn¢^egd�mnxad�m�zojIjUhuti~�z;qgtufav�lUentuvU��b�¤k��¥P�¦�§� �{mgtiqnqsd�vútuv¤fav�´«ÈS�^É���½¼fam{favNz;vK�Íe��#e�qsd���qgc`z;qSeglUjUj¼fam�qseSqgcUd���d�mg�;d�hid��Íegf4~��od�q��}�J���¼b�cUd�jUmnfa�amgzo� tue»¼famgmnf[��d�y£p mgfa�û¾Æ¤�fo��­�²9ÁrzovUy�c`z;e�z�entu�£jUhudk�of�zohC®<b�cUd{end�mnxod�m5mgd�qslUmnvUe5qgcUd�vKlU��»¼d�mBfop¼qsti�@d�e1tiqc`zoeB»¼d�d�v�x4tiegtiqgd�yÌ»��Ì~�hutud�v�qse��B�úd�jUmnf9x#tiyUd{z}vKlU��»¼d�mJfop7�£f#yUt��`~�zPqstufovUewqgf���zo�;dkqsd�enqstivU��d�z;egtud�m���ªd��{tuhihwqgcUd�v+jUmnf9x#tiyUdÌzRvUd�q���fomg��d�~�cUf�jUmgfo�amszo��zoe}z�egd�~�favUy�dÄÃUz;�@jUhido��b�cUd�jUmgfa�omszo�£�@tivU�enq��4hid�fopkqgcUd£egd�~�favUyÏdÄÃIzo�@jIhudo½w�{tiqgcúzÍ�@famnd@�od�vUd�mszoh!O Ô6,�à�P¼Þ à ½Ctue�egfo�@d��{c`z;q�yUtiË7d�mnd�v�q�p mnfa�qscId��Umgenq�½¼zovUy�tue�~�hufaend�m�qsfÌ�{c`z;q�favId���falUhiy�d�Ã#j7d�~�q�qsf�egd�d�tiv�jUmszo~�qsti~�do�

Ë Ì aq_�h Ík]�æ âÊã[Î+äEåM_�äQf aEæÄbYc£æ?b

¹É�+� �!���ÐÏ?ÃÅ}lUmG�UmgenqCjUmgfo»Uhud��Ðtiewqgf«enj7d�~�tip ��qgcUd�~�famgmnd�~�qs. Õ[Ø;ÞÆÛ[á�à � cUd�zoyId�m��·�`hud�eGqgf«lUend�qscUd�egf4~��od�qJtuv�qsd�mnpHzo~�do�b�cUd�p fahuhif9�{tuvU�w. Õ[Ø;ÞÆÛ[á�à e�q�z;qgd��£d�v�qseSzomnd�vUd�d�yUd�yÍp fam�~�mnd�z;qgtuvU��egf4~��od�qse��

Ñ*Ò Ó ©6ÔUÕªÖª¬Øק�Ù~§6Ú�­ªÙÛ¬�§ÝÜCÞÂßÑ*Ò Ó ©6ÔUÕªÖª¬Øק�Ù~§6Ú�§ ¨�©U«�¬�­ÉÜ/ÞÂß

��vEzoyIyUtiqgtufav'½a��d«�@z��£zohuenf��`vIy�foqgcUd�m�cUd�zoyId�m��Uhud�e5lUend�p lUh)�J¶·tuenqgd�yR»¼d�hif9�ÎzomgdSz�end�q�fop·�£tuvUti��zohcUd�zoyUd�m{�`hid�ekp famk�{mntiqstivU�ÌvUd�q���famn�ÍzojUjUhitu~�zPqstufovRjUmgfo�amszo�£e��

±

Page 6: Introduction to Network Programming Jie Wang Department of

Ñ*Ò Ó ©6ÔUÕªÖª¬Ø× Ó ¬�­ Ò Ó ¬�­~Ú Ò Ó Ü/ÞÂßÑ*Ò Ó ©6ÔUÕªÖª¬Ø×�àáÛÂàªÚ Ò Ó ¬�­¾ÜCÞÂßÑ*Ò Ó ©6ÔUÕªÖª¬Ø× Ó ¬�­�ÖâKÜ/ÞÂß

 olUe�q5zoeCtiv��{mgt�qstuvI�«famnyUtuv`z;mn��¤ÏjUmgfa�omszo�£e�½P��dk�@z���z;huegf��kz;vKqJqgf}tuvI~�hulIyUd�qgcUd�p fahihuf9�{tuvU��cUd�zoyUd�m�`hid�e}qsf�c`zovUyUhid�enqszovUy`z;mgy���¥aÅ �HtivUjUlIq}p mnfa���od��4»¼f�zomnyªz;vUy+falIqgjUlIq}qgfRqscUdÌ�£favUt�qsfams��½¼zovUy+qsfc`zovIyUhud�enqgmgtivU�ae��

Ñ*Ò Ó ©6ÔUÕªÖª¬ØקU­�Ö Ò ¨YÜ/ÞÂßÑ*Ò Ó ©6ÔUÕªÖª¬ØקU­�á Ò Ó�ã Ü/ÞÂßb�cUd Ý}Ô . Õ FäG mgfalIqgtuvUd�»¼d��otuvUe��{tiqgc�egfa�£d�~�fa�£�£favÍzovUy��od���yUd�~�hÂzomgz;qstifavUe�®Ñ Öª¬6å Ò Ó ¬3æ çÂè�é�è�æ�èç éëê*ìUí6î Ú�ï4Ö�¬åªà-Õ*Ô-­3Û�á¨�­~¨�© ¨ Ô�Û*¨-á6­ Ó Õ6ðªâ¬áeï6ÚÑ Öª¬6å Ò Ó ¬òñ�óÂôªõÂö-÷�ø ìUù úûÑ Öª¬6å Ò Ó ¬Øüý ø�þ ìUú6ÿ Ú�ï3§ Ò�� ¬ ¨-å·á�¬���Õ¬�§�­��Õ¬-Õ¬ ï6Ú

Ò Ó ­�� Ò § Ò ­*§��òù Ú�ï3© ¨UÕ Ó ­*§ ©6Ô Ò ¬ Ó ­ ©6¨ Ó�Ó ¬�©U­ Ò ¨ Ó § ï6Ú

Ò Ó ­3ð~à Ò Ó���Ò Ó ­ à6á ã ©� A©�ÞÂà6áëï�à6á ã ��������

§U­�áÕ%©U­òÛªá¨�­~¨6¬ Ó ­ ï�Û�­ªáÛ� Ú�ïRÛ*¨ Ò Ó ­Â¬á ­~¨�à�Ûªá¨-­~¨�©6¨ Ô�­�à�â*Ô¬ ¬ Ó ­�á�Ù ï6Ú§U­�áÕ%©U­ §6¨�©U«�à6Ö Ö á�� Ò�Ó §�àÖ� Ú�ï3§U­�áÕ>©�­6ժ᪬3­~¨4Þ*¨ Ô�Öë§�¬6á���¬á��E§3àÖ Ö áª¬Â§ § ï6Ú§U­�áÕ%©U­ §6¨�©U«�à6Ö Ö á�� Ò�Ó ©�àÖ� Ú�ï3§U­�áÕ>©�­6ժ᪬3­~¨4Þ*¨ Ô�Öë©6Ô Ò ¬ Ó ­��E§3àÖ Ö áª¬Â§ § ï6ÚÒ Ó ­e§�Ö� §�Öªú� Ú�ï3§6¨�©U«�¬­ Ö�¬�§ ©�á Ò Û�­~¨-á~§ ï6ÚÒ Ó ­3Û*¨-á6­� Ú�ïRÛªá¨�­~¨ª©6¨ Ô�Û*¨-á ­ Ó Õ ð�â¬á ï6ÚÒ Ó ­ àªÔ¬ Ó Ú�ï·Ô¬ Ӫ㠭 Þe¨�å àÖ�Ö áª¬�§ § ï6Ú©�ÞÂàá3â Õ�å��äñ�ó�ô�õÂö-÷�ø��� Ú�ïRâ Õªå 媬6áòå~¨-á3Ö�à�­�à3å á¨�ðØ­6Þ¬ §�¬á���¬á ï6Ú

¹É�H¹ �w�(���ÐÃ���À����j¼famnqCvKlU��»¼d�mCtie1z«j¼faentiqst�xad�tuv�qsd��ad�mwqsf}tiyUd�v�qst�p ��z«~�hitud�v�q�¢�egd�mnxod�m1j`z;tumwtuv�mnlUvUvUtivU�U�B�Sd�vI~�do½�b�cIdesz;�@dÌj¼famnq}��lUenq�»¼dÌlUend�yÑtuv+»¼foqsc+qscIdÌegd�m�xad�m�z;vUy�~�hutid�v�q���¶·f[�k¢^vKlU��»¼d�mgd�y�j7fam�qse£� tW�°do��½'�{tiqscj¼famnq�v4lI��»7d�m�hud�ege�qsc`zov�®�¹�¸;¯K�ĽCeglI~�c¡zoe �¦72 ½Jzomnd�favIhi�ªz�xoz;tuhÂz;»UhudÌqsf�eglUj¼d�m¦¢�lUend�mne�qsfNdÄÃId�~�lIqgdenqszovUy`z;mgy�vId�q���famg��zojIjUhuti~�z;qgtufavUe��Ý�ÎcUd�v��{mgt�qstivU��z£~�hutid�v�qn¢^egd�m�xad�mSz;jUjUhuti~�z;qgtufav@��d�fop qsd�v�end�hid�~�qzRj¼famnq«v4lI��»7d�m«qscUz;q�tueS�amgd�z;qsd�m«qscUzov"®9¹�¸;¯RzovUy+tueSlUvUti|4lId�qsfRqgcUd�jUmnfa�amsz;�@�£d�m�½7enfE��lUhiqgtujUhidlUend�mge£~�z;v�yId�xad�hufaj�vUd�q���famn�¡zojUjUhitu~�z;qstifavUe�zPqÌqscUdEegzo�@dRqgtu�£dRfav"qscIdÍegzo�£dE��zo~�cItuvUd�e��¡�`fam~�fovKxod�vUtid�vU~�do½k��d�~�zohuh�eglU~�c�zÑj¼famnq£z }H{7��}��~���E}H� �`famÌfolUm�jUmgfa�omszo�ͽJ��dÍyUd��UvUd�zNqgd�enq@j¼famnqvKlU��»¼d�mÌv`z;�@d�y L ³ � I � L �T³ I ½·�{cUtu~�c¡~�folUhuyÏ»¼dEzov��úv4lI��»7d�m��amnd�z;qgd�m�qgc`zov�®9¹a¸;¯U�+��l#qÌtiqegcIfalUhuyÍ»¼d�zÌvKlU��»¼d�m�qgc`z;q{c`zoe{vUf;qS»¼d�d�v�lIegd�y�»��EfoqscId�m{jUmgfo�amszo�£e��

¹É��! " À~�Y�Â�����s»[�N½¾��À*¼1�(�b�cUd 2 � ����4à;Õ� enqsmnlU~�qglUmgd�tuek�Uhuhud�yEtuvE»���zÌhuti»Umsz;mn�@~�zohih/v`zo�£d�y Öaà�72 � ���� 0 ¯�ÕPÔKÝSà�FäG ½rzovIy�mnd�hÂzPqsd�y~�z;huhue��B¶·tuenqgd�y�»¼d�huf9� zomgd}qgcUd��`d�hiyUe{fop 2 � �-��#àPÕ� �

¿

Page 7: Introduction to Network Programming Jie Wang Department of

§U­�á6Õ>©U­òÛªá¨�­*¨¬ Ó ­ �©�ÞÂàáeï�Û#� Ó à�ð~¬ ڪ﷨-å�å Ò © Ò à�Ô4Û�á¨�­~¨�© ¨ Ô Ó à�ð~¬ ï6Ú©�ÞÂàáeï�Û#� àªÔ Ò à§�¬�§$���� Úªï�à Ó Ù àªÔ Ò à�§�¬�§ ï6ÚÒ Ó ­3Û%�-Ûªá~¨�­~¨& ÚªïRÛªá~¨�­~¨�©6¨�Ô Ó Õ6ð�â¬á ï6Ú

' �^p���d@zomgdÌqsf�lUend@b�¤k� jImgfoqgf#~�fah{�HvIfoq�´«���5�«qsf�d�e�q�zo»Uhituencªz�~�hitud�vKq�¢�end�mnxod�m�~�fovUvUd�~�qstifav'½<qscUd�vqscId£f)(@~�tÂzohGjUmgf;qsf4~�fah1vUzo�@d��{tuhuhG»7d�qgcUd�enqgmgtuvI� ¦Ø-2 �Ì�^p5qscUd�mgd���d�mgd@zohitÂzoend�e�zovIy���d���z�xad�favUdqsf Öoà�72 � ���� 0 ¯�ÕPÔ�Ý«à-FHG ½'qgcUtueS~�zohihC~�falUhuy�»7dÌlUend�y+qsfRqgmszovIeghÂzPqsd�»Uzo~���qgfRqscUd�f)(@~�tÂzohGv`zo�£do�T�`famd�ÃIzo�£jUhido½[qscUd5lUjUj¼d�m¦¢�~�z;egdBxad�mnegtifav IKJML tie<zov�z;hutÂz;e'fop ¦Ø�2 ½P�{cItu~�c�tie<hutue�qsd�y�tivTÛ%� àªÔ Ò à�§�¬�§4�Y�Bzo~�cenqszovUy`z;mgyúqgmszovUenj7fomnq�hÂz��ad�m�jUmnfoqsf4~�foh5tie�z;huegfÍtuyId�v�qst��`d�yÑ�{tiqscúz�vKlU��»¼d�m�½C~�zohuhid�y�qscUd@jUmgfoqgf#~�fahvKlU��»¼d�m��5b�cId�jImgfoqgf#~�fah/vKlU��»¼d�m�dÄÃ#j7d�~�qsd�y�»��EfoqgcUd�m�e��4enqsd�� zovUy�hitu»Umgzomn�@~�zohihue�tuektiv Û%�-Ûªá¨-­~¨�Htiv�falUm{~�zoendo½UqgcUd�jUmgfoqgf#~�fah'vKlU��»¼d�m{tie{¿�p fam ¦Ø�2 ���

b�cUd«jUmnfoqsf4~�foh¼d�v�qsmn�@tueBmnd�qsmntud�xad�yRp mnfa� z�e��4enqsd��Ê�Uhudo½4tuv£qscUtie�~�zoegdTÚ¬­*©6ÚUÛªá~¨�­~¨�©6¨�Ô�§4��b�cIdd�v�qgmn��tuvEqgc`z;q��`hid}p fam ¦Ø-2 hif#fo�4e�hutu�;d}qscUd�p fahihuf9�{tuvI�U�­*©�Û * é�+æÇ�tixad�vR»¼d�huf9�Îtiekz�q��4jUti~�zoh¼jUmgf;qsf4~�fahr�`hud;½4�{cItu~�cEtue5p falUvUy�fav�qscId�¤���´«È��^ɨegd�mnxod�m��@zo~�cUtuvId}z;q´}µ�zoegeS¶·f[��d�hihW��� b�cUd��`hud�tue<Ú¬�­*©6Ú�Ûªá¨�­~¨ª©6¨ Ô�§4�ß�Ñ�,��1Ñ �.--ç�+�õå Ò Ô¬�/oÛªá~¨�­~¨�©6¨�Ô�§� 0�1-2-�ç�¬3� Ò § Ò ¨ Ó /¶û¾ÜEì(Ü4*�Ü1ú�- �45 ø6+#�2- 5 à�­�¬�/ ìUí�í6î�Úù�7ÂÚú�*Øú ù�/ûªí�/1ùû8-ÑÑ ö Ó ­�¬á Ó ¬�­ � ö�æ�� Ûªá~¨�­~¨�©6¨�Ô�§ÑÑ25 ¬�§ ©�á Ò Û�­ Ò ¨ Ó /oé6Þ¬�Ûªá¨�­*¨�©6¨ Ô�§ å Ò Ô¬ØÔ Ò §U­*§Ð­6Þ~¬�« Ó ¨:9 Ó Ûªá¨�­*¨�©6¨ Ô�§ Ò Ó ­6Þ¬ëö Ó ­Â¬á Ó ¬�­ÉÜÑÑ õÙ Ó ­�à�;�/ þªà�ð~¬ þ6Õ6ð�â¬á<�oàªÔ Ò à�§.�*ì= ªÜ Ü�Ü. +àªÔ Ò à�§3� Ó �>� Ñ ©6¨�ð ð~¬ Ó ­*§:�ÑÑ ö Ó ­�¬á Ó ¬�­ � ö�æ�� Ûªá~¨�­~¨�©6¨�Ô�§ÑÑ25 ¬�§ ©�á Ò Û�­ Ò ¨ Ó / é6Þ~¬ÐÛªá~¨�­~¨�©6¨�Ô�§�å Ò Ô¬ Ô Ò §�­*§ ­ Þ¬�« Ó ¨:9 Ó Ûªá¨-­~¨�©6¨ Ôª§ Ò Ó ­6Þ~¬ ö Ó ­�¬á Ó ¬­¾ÜÑÑ õÙ Ó ­�à�;�/ þªà�ð~¬ þ6Õ6ð�â¬á<�oàªÔ Ò à�§.�*ì= ªÜ Ü�Ü. +àªÔ Ò à�§3� Ó �>� Ñ ©6¨�ð ð~¬ Ó ­*§:�ÑÑ þªà�ð~¬ ¨-å�å Ò © Ò à�Ô4Û�á¨�­~¨�© ¨ Ô Ó à�ð~¬Ñ þÕ6ð�â¬6á ¨-å�å Ò © Ò à�Ô4Û�á¨�­~¨�© ¨ Ô Ó Õ6ð�â¬6áÑ àªÔ Ò à�§.� Ó Õ Ó ¨-å å Ò © Ò àªÔ Ó à�ð*¬�§·¨�á à-â�âªáª¬3� Ò à�­ Ò ¨ Ó §·å¨-á3­6Þ Ò § Ûªá¨-­~¨�©6¨ ÔÑòÑ ©6¨�ð ð*¬ Ó ­*§ ­�¬�;6­òå~¨ Ô Ô ¨:9 Ò Óªã ­6Þ¬?� Ñ � ©�ÞÂà6áªà�©U­�¬6á Ò §�à ©6¨�ð ð*¬ Ó ­ ��ÒUãÓ ¨-᪬Ö@�ÑÑÒ Û ù ö�æ Ñ Ò�Ó ­�¬á Ó ¬�­òÛªá¨�­~¨ª©6¨ Ô& ¶Û>§¬-ÕªÖ¨ÐÛªá¨-­~¨�©6¨ Ô Ó Õ ð�â¬á

²

Page 8: Introduction to Network Programming Jie Wang Department of

Ò © ðªÛ ì ö:+3A�æ Ñ Ò�Ó ­�¬á Ó ¬�­ ©6¨ Ó ­�á~¨ Ô4ð~¬�§ §�à ã ¬·Ûªá¨�­*¨�©6¨ ÔÒUã ðªÛ ú ö:B3A�æ Ñ Ò�Ó ­�¬á Ó ¬�­ ã á¨UÕ Ûòð~à Ó à ã ¬�ð*¬ Ó ­ Ûªá¨-­~¨�©6¨ Ôã ã Û î B�Bæ Ñ3ã à�­�¬39�à6Ù�C ã à�­Â¬39�àÙ Û�á¨�­~¨�© ¨ Ô­*©�Û * é�+æ Ñ ­ªáªà Ó § ð Ò § § Ò ¨ Ó ©6¨ Ó ­�á~¨ Ô�Ûªá¨�­*¨�©6¨ ÔÛ Õ Û ìUú æóªæ Ñ æ�D6ç�+ Õ Ó%Ò ��¬6á~§�àªÔ�ÛÂà©U«�¬�­òÛªá¨-­~¨�©6¨ ÔÕªÖÛ ìE7 ó 5 æ Ñ Õ%§�¬áòÖªà�­�à ã áªà�ð Ûªá¨-­~¨�©6¨ Ô

¹É�GF �!�NÀÂÁµ¼����ëÃ��sÀ������v�enfa�£dSz;jUjUhuti~�z;qgtufavÌjImgfa�amgzo�£e�½���d��@z9��vId�d�y£qsf�~�zohih`~�d�mnq�z;tuv£enq�z;vUy`zomnyRzojUjIhutu~�z;qstifavUe1enlU~�cEzoe�¦72 �)z;hiqscIfalU�acÍtiqStue�vUfoqSqscUd�~�zoend�tuvÍqscUd�jUmgfo�amszo�û��dÌzomnd�qgf��{mgt�qsd�cUd�mndo½¼p famSfolUm«jUmnfa�amgzo� tuevUfoqkz�e�q�zovUyUzomgyEjUmnfa�amgzo�R�Ä�CbB�4jUtu~�zohuh��a½K»UlIq�vUfoqkvId�~�d�egegzomgtihi�a½4qscUd�mgdStue�z��`hud�favE´SÈS�^Éen�4enqgd��£e�HÚ¬�­*©6Úª§�¬á�� Ò ©�¬�§o�E�{t�qsc�d�v�qsmntud�e�yUd�en~�mgti»UtuvI�ú��d�huh ¢��KvUf9�{v�egd�mnx4tu~�dNj¼famnqgeRzovUy�egd�m�x4tu~�d�e�� b�cIdd�v�qgmn�Ep fam �¦72 huf4fa�Ke�hutu�;d«qscId�p fohuhuf9�{tivU�U�å6­6Û ú*ì-Ú�­*©UÛb�cUdBd�v�qgmn��egz9�4e·qscUz;q �¦72 tie·z�b�¤k��egd�mnx4tu~�d5zoegentu�avUd�y�qsf�j¼famnqG¸#®�� yUd�~�tu�@zoh �Ä�wµ�zov���end�mnx4ti~�d�e<c`z�xod»¼d�d�v�jUmnd�¢�zoegentu�avUd�yNqsfRjUzomnqgtu~�lIhÂzom�j7fomnq}vKlU��»7d�mge�½/d�tiqgcUd�m«»K��»7d�tuvU�@hutienqsd�yNtuv�qscUdÌz;jUjUmgfojUmgtuz;qsdenqszovUy`z;mgyÍyUf#~�lU�£d�v�qse��IH!�w¤ÎyUf4~�lI�@d�vKqge��Ľ¼fom�»K�RjUmgd�xoz;tuhutivU��~�fav�xad�v�qgtufav'�

�úd�~�zovNfo»Iq�zotivÍqgcUd�end�m�x#ti~�d�vKlU��»7d�m«fopBz£enqszovUy`zomny+zojUjIhutu~�z;qstifav�»���lUentuvU�£qscUd Öaà�¦Ù�à � � 0 ¯KJÕPÔ�Ý«à-FHG hitu»Umgzomn�ÌmnfalIqgtuvUd;�1b�cUtue�mgfal#qstuvId«mgd�qslUmnvUe�z�end�m�xad�v�q{e�qsmglI~�qslImgd«�{t�qsc�qgcUd«p fahihuf9�{tuvU���`d�huyUe�`hihud�y�tivú� fam{z�È«´S¶w¶ªj7fativ�qsd�m�t�p<qscUd�mgd�|KlUd�e�qsd�y�tuvIp famn��zPqstufov�~�z;vUvUfoq�»¼d�p folUvUyr�E®

§U­�á6Õ>©U­ §�¬á��¬ Ó ­ �©�ÞÂàáeï §.� Ó à�ð~¬ Ú�ï·¨-å å Ò © Ò àªÔ §�¬á�� Ò ©�¬ Ó à�ð*¬ ï6Ú©�ÞÂàáeï §.� àªÔ Ò à§�¬�§$���� Ú�ï·¨�­6Þ¬á Ó à-ð~¬�§�å¨-á §�¬á�� Ò ©�¬� Ò åØà Ó Ù ï6ÚÒ Ó ­e§3�-Û*¨�á6­� Ú�ïL9�¬ªÔ Ô.C« Ó ¨:9 Ó Û>¨-á6­Øå¨-á §�¬á�� Ò ©�¬ ï6Ú©�ÞÂàáeï §.�-Ûªá¨�­*¨& Ú�ïRÛªá¨�­~¨ª©6¨ Ô ­~¨4Õ>§�¬ ï6Ú

' �rfomkd�ÃIzo�£jUhud;½`hud�q{lUe{huf4fa��zPq�qscUd�p fahihuf9�{tuvU��enq�zPqsd��£d�v�q��§U­�á6Õ>©U­ §�¬á��¬ Ó ­ ï §��6Û�§��6ÛM� ã ¬�­*§�¬6á��6âªÙ Ó à�ð~¬ �EN ­*©�Û N N å6­ Û N �O

��vEqscUtie�~�zoendo½�§��6Û%C�ß�§3� Ó à-ð~¬�tie �¦72 �Bb�cUd�mnd�z;mgd}vUf£zohitÂzoend�e<§3� àªÔ Ò à�§�¬�§Ìp fam�p qgj'½UegfÌqgcUtuekj¼fativKqgd�m�{tuhih�»7dÍd��£jIq��o��� j¼famnq£vKlU��»¼d�mq§3�-Û>¨-á6­�tue£~�zohihud�y3¥¾{�x¦xz�C��| ��¥Y|ÑtipStiq£tue�hituenqgd�y�tuv�zovPH!�w¤yUf4~�lU�£d�v�q�zoe�»7d�tuvU��zoenegti�avUd�yRqgf�z�j`zom�qstu~�lUhÂz;m�egd�mnx4tu~�do�Bb�cUd}p qgjEjUmgfa�omszo�Êtue�zoegentu�avUd�yEqsfÌj¼famnq¸#®a� �úd�~�falUhuy"en�Ktuj"qscUtieÌegd�q@lIj�z;vUyRQnlUenq�lUend�j7fam�q�vKlU��»¼d�m£¸#®a½B»Ul#q�tiqÌtie��ad�vId�msz;huhi�ª�af4f#yjUmgzo~�qgtu~�dSqsfÌ�ad�qkqscUtie�tivIp famg�@z;qgtufav�p mgfa� qscId}en�4enqgd��ͽ)QnlUenqktuvR~�zoegd�t�qk~�c`zovI�ad�e�� vUfoq{zohih7end�m�x#ti~�d�e��d+��z���lUegd��{tihuh�»7d�zoeRti�@��l#q�zo»Uhid�z;e@p qsj�jImgfa»`z;»Uhi��tue@»���vUf9�S��� �Gtuv`zohihi�o½�qscUd�jUmgfoqgf#~�fah§3�-Û�á¨�­~¨£�{tuhuh7»7d�qg~�j'�

Page 9: Introduction to Network Programming Jie Wang Department of

¹É�0S �!�!�*�����ÐÆYÈ?È?À~�(����¼+½ÄÅ�Êegf4~��od�q�½1tuyId�v�qst��`d�yÑ»��úz;vªtivKqgd��ad�m�½wtue�lUend�yú�{t�qscUtiv�qgcUd@´«ÈS�^É-�od�mgvUd�h�p fam���¥aÅÊfaj7d�msz;qgtufavIe���ÎcUd�v+z£enf#~��;d�q«tue{~�mnd�z;qgd�y'½¼tiq{yUf4d�e�vUfoqS~�fovKqszotuvÍyUd�q�zotihud�y�tivIp famg�@z;qgtufavEz;»7fal#qScIf[� tiq{�{tuhih'»7dlUend�y'�¡��v�j`zomnqgtu~�lUhÂzom�½1qscUd�enf#~��;d�q@yUf#d�eÌvUfoq�~�fav�q�zotiv�tivIp famn��z;qgtufavúzo»¼falIqÌqscIdÍjImgfoqgf#~�fahkj¼famnqvKlU��»¼d�mneRfam��¦�ÊzoyUyImgd�enegd�eEfop�d�t�qscUd�m@qgcUdNhuf4~�z;h���zo~�cItuvUd�fam@qgcUd�mnd��£foqsd���zo~�cItuvUd;���d�p famgdzov"z;jUjUhuti~�z;qgtufav�lUend�e�z�egf4~��od�q�½1t�q���lIenq�egj¼d�~�t�p �ÑfavUd�fom�»¼foqscªfopkqgcUd�endEzoyUyUmnd�enegd�e���b�¤k�5¥;�¦�jUmnfoqsf4~�fahie�yId��`vUdRz v7�:TUTUV�|~yCv¤£�}/yC��|4{�|>���~��y¦|~}Jqsf�~�favUentue�q�fop{z;vú�¦�ÐzoyUyUmnd�ege�zovUyÏz�jUmgfoqgf#~�fahj¼famnq{vKlU��»¼d�m��S�WÅ«qscUd�m{jUmgfoqgf#~�fah/pHzo�£tuhitud�e�yUd��`vUd�qscUd�tum�d�vIyUj7fotuv�q�zoyUyUmnd�enegd�eStuv�foqgcUd�mk��z��#e��ß�

b�cUdEzoyUyImgd�ene�enqgmglU~�qslUmndEfop{z�enf#~��;d�q�½�z;v`zohufo�afalUe�qsfNz��`hud@v`zo�£do½Gtue�lIegd�yÏqgf+zoenegf4~�tÂzPqsdRzegf4~��od�q��{tiqgcÏzÍj`zomnqgtu~�lUhÂzom�cUfoenqÌz;vUyúend�mnx4ti~�do�q�ªd@�{tuhih1�`huhBt�q�tivª�{t�qscútivIp famn��z;qgtufav+fo»Iq�zotivUd�yp mgfo�§qscUd�egd�mnx4tu~�d�d�v�qsmn��~�zohuh'zovUy�qscUd�jUmgf;qsf4~�fah'd�v�qsmn�Í~�zohuh)½Ifam�p mgfo�ûfoqscId�m{tuvIp fomg�@z;qstifavR~�f4yUd�ytuv�qgf�qgcUd�jUmgfa�omszo�Í�G�ShiqgcUfalU�ac�end�xad�mszohrxad�mgentufavUeBc`z�xod«»¼d�d�v£mgd�hud�zoegd�y'½�qscUd�hÂz;qgd�e�q5��d�mn�od�hid���~�f#yUdyUd��`vUd�e«z Ù+�4Ø-,ÄÔ[á�á �wenqgmglU~�qslUmnd�qgf£cUz9xod�qgcUmgd�d��Ud�huyIe�®

§U­�á6Õ>©U­ §6¨�©U«ÂàÖ Ö á �Õ%��©�Þ~àáe§�à��ªÔ¬ Ó Ú�ï ­*¨�­�àªÔ Ô¬ Ó�ã ­6Þ ¨-å ­ Þ¬3à6Ö Ö áª¬�§�§Øï6ÚÕ%��©�Þ~àáe§�à��åªà-ð Ò Ô-Ù� Ú�ï4å�à�ð Ò Ô-Ù ¨-å3­6Þ¬òàÖ Ö�᪬�§ § ï6Ú©�ÞÂàáe§�à��Öªà�­�à��Eì û��� Ú�ï ­ Þ¬3à6Ö Ö áª¬�§�§ Ò ­*§�¬ªÔ-å ï6Ú

' �Ctid�huy�§�à��ªÔ6¬ Ó ~�fovUegtienqse£fop}zÑentuvU�ahidE»��4qgd�qgc`z;q£egj¼d�~�ti�`d�e£qgcUd�hid�vU�;qsc�fop«qgcUd�z;yUyUmgd�ege����Ctud�huy§�à��6åªà�ð Ò Ô�Ù�enj7d�~�ti�Ud�e�qscUd}pHz;�@tihi��qsfÌ�{cUti~�c�z;v�z;yUyUmgd�ege�»7d�hufavI�ae��1b�cId�enf#~��;d�qS�}�J��jImgf9x4tuyUd�eSzen�4��»¼fahitu~�~�favUe�q�zov�qWD ô��ÂöUþ ø é@p fam�b�¤k�5¥;�¦��zoyUyUmnd�egend�e�½rzovUy���d«�{tuhihrlUegd�t�q�huz;qsd�m��Y�Ctiv`zohihi�a½a�Ud�huy§�à��6Öªà�­�àR~�fav�q�z;tuvUe�»��Kqsd�e«fopwqscUd�zoyIyUmgd�ege��

�rfomNd�zo~�c zoyUyUmnd�eneÑpHzo�£tuh���qscUd�zoyIyUmgd�egeÑenqsmnlU~�qglUmgd�eúz;mgd¡�ad�vId�msz;huhi�Òmgd�yUd��UvUd�y tuvÐz�p fam�¢�@z;q�~�fav�xad�vUtud�vKq�p fam�qgc`z;q�jUmgfoqgf#~�fahW�q�`fam�qscId�tuv�qgd�mgvId�q�jImgfoqgf#~�fahue�qscItue�tie�yId��`vUd�y"tuvÑqscUd£�`hud× Ó ¬­ Ò Ó ¬�­*Ú Ò Ó Ü/Þ~ßÍzoe{z § ¨�©U«�àÖ�Ö á�� Ò Ó ½¼~�fovKqszotuvItuvU��qgcUd�p fahuhif[�{tivU���`d�huyUe��

§U­�á6Õ>©U­ §6¨�©U«ÂàÖ Ö á�� Ò Ó �Õ%��©�Þ~àáe§ Ò Ó �ªÔ6¬ Ó Úªï ­~¨-­�àªÔ Ô¬ Ӫ㠭6Þ ¨�å·­6Þ~¬3àÖ�Ö áª¬�§ § ï6ÚÕ%��©�Þ~àáe§ Ò Ó �å�à�ð Ò Ô-Ù� Úªï4åªà-ð Ò Ô-Ù ¨-å3­6Þ¬òàÖ Ö á�¬�§ § � ­�ÙÛ~¬%� ï6ÚÕ%��§�Þ>¨-á6­ § Ò Ó ��Û*¨-á6­� ÚªïRÛ*¨�á6­3­*¨ò©6¨ Ó Ó ¬�©U­ ­~¨ ï6Ú§U­�áÕ%©U­ Ò Ó � àÖ�Ö áe§ Ò Ó � à6Ö Ö á� ÚªïRÞ*¨ª§U­��7§Øö�æ àÖ Ö á�¬�§ § ï6Ú©�ÞÂàáe§ Ò�Ó � � ¬á~¨��Hÿ��� ÚªïRÛÂà6Ö Ö Ò Óªã>� §¬�­3­*¨ � ¬6á¨��O ÒUãÓ ¨-᪬Öeï6Ú

'b�cUd��`mge�qSq���f@�`d�huyUe�fopJe�qsmnlU~�qglUmgd[§ ¨�©U«�àÖ�Ö á�� Ò Ó ~�famgmnd�egj¼favUyIe«d�ÃIzo~�qsh��Eqsf�qscUd��`mge�qSq���f@�`d�huyUefop<qscId}�ad�vId�mgti~�§6¨�©�«�àÖ Ö áEenqsmnlU~�qglUmgd;�Bb�cUd�hÂzoe�q�qgcUmgd�d}�`d�hiyUekyUd��`vUd}qscId�d�ÃIzo~�q�p fomg� fopGzoyUyUmnd�eneqscUz;qRb�¤k�5¥;�¦�ÊjUmgfoqgf#~�fahue£d�Ã#j¼d�~�q�� b�cUd�mgd+z;mgd�q���fÏj¼fatuv�qge@qsfúvUfoqsti~�d;�ò�Ctimge�q�½kd�zo~�cÎzoyUyUmnd�enetuyId�v�qst��`d�eB»¼foqsc@z�cUfaenq�zovIy�z�j`zom�qstu~�lUhÂz;mJzojUjUhitu~�z;qstifav�fav�qsc`zPqBcUfaenq��Y�Ctid�huy´§ Ò Ó � à6Ö Ö á�~�fav�qszotuvUeqscId��¦��zoyIyUmgd�ege�fopCqgcUd�cUfaenq�½¼zovUy��`d�hiy § Ò Ó ��Û*¨-á6­Í~�fav�q�z;tuvUe�qscId�jUmnfoqsf4~�foh·j7fam�q{vKlU��»¼d�m�fop1z;vzojUjIhutu~�z;qstifav'�C�#d�~�favUy'½IzohiqgcUfalU�oc@b�¤k�5¥;�¦�¡vUd�d�yUe�fovUhi��ent�ã»��Kqsd�e�qsf�enqsfomgd}z�~�fa�£jUhid�qsd�zoyIyUmgd�ege�½qscId}�ad�vId�mgti~�§6¨�©U«�à6Ö Ö á�e�qsmnlU~�qglUmgd}mnd�end�mnxod�ekp falImnqsd�d�vR»��Kqsd�e��5b�cKlUe�½IqgcUdS�Uv`zohr�`d�hiy�tuv@enqgmglU~�qslUmnd

­

Page 10: Introduction to Network Programming Jie Wang Department of

§6¨�©�«�àÖ Ö á6� Ò Ó yUd��UvUd�eÍzov �P¢^»��4qgd+�`d�hiy�fop�¹��Æe�½��{cItu~�cÎj`zoyÎenqgmglU~�qslUmnd+qsfÏqscId+eszo�£dNegt Ê�d�zoe§6¨�©�«�¬�­�àÖ�Ö ár�E��vÑfoqscUd�m���famnyUe�½Gd�zo~�cÑb�¤k�5¥;�¦�¨d�vUyIj7fativ�q�z;yUyUmgd�ege�~�favIegtue�qse�fop�z�¸[¢^»��4qgd£�Ud�huyqscUz;qktiyUd�v�qst��`d�e�qscUd«zoyUyUmnd�egekq��4j¼d��Ht�q���lUenq�~�fav�q�z;tuvXD ô��Âö�þ6ø éI��½`z�¸[¢�»��Kqsd«j7fam�qkvKlU��»¼d�m5�`d�hiy'½Uz¯;¢^»K�Kqgd��¦��z;yUyUmgd�ege��`d�huy'½rzovIy�zov �P¢^»��4qgd��`d�hiyÍqgc`z;q{mgd���z;tuvUe�lUvKlUend�y'�

¹É��Y Z Ï?Ç\[��(À~�4Æ�½ÄÈ�½Ä���3]#��À~�!¼+½ÄÅ$^ Æ �»1¼1Å�_¾� ÈT¼1Å�À~�(����¼1�s½b�cUd�tuv�qgd�mgvId�qEjUmnfoqsf4~�fohue�enj7d�~�t�p ��zúp famn��z;q�tuv��{cItu~�cλUtuvUzomn��vKlU��»¼d�mge�z;mgd+j`zoenegd�yÒz;mgfalUvIy»¼d�q���d�d�v+cIfaenqge���b�cItue�p famg�@z;q{tie�~�zohihud�y�| {�}�¥¾��� �a`cb-}H{����¤��{��Ä�5�^q�mgd�jImgd�end�v�qse«tuv�qsd��ad�mne{�{t�qsc�qscUd�£faenq�egti�avUt��`~�zov�qS»��4qgd��Umgenq����^q�yUf#d�e«vUf;q«z;jUjUhi�Eqgf£qgcUd�zojUjUhitu~�zPqstufovEy`z;q�z�����d�~�zov�j`z;egeSqgc`z;qzomnfalUvUy�zov��E�kz��E��d�huti�od7�λUlIq{tivIp famn��z;qgtufav@qsc`z;qStue�lIegd�y�qsf£d�enqszo»Uhituegc�qscId�~�favUvUd�~�qstifavÍ��lUenq»¼d}tuv£qscUd}~�famgmnd�~�qkp famg�@z;q��1�}tiË7d�mnd�v�q�jUmgf4~�d�egegfomge�enqgfamgdSqscUd�egd}»��Kqsd�ek�{tiqscItuvRz���famnyEyUtiË7d�mnd�v�qsh���Hd�tiqgcUd�mktivRhut�qgqghud�¢^d�vUyItÂzovÌp famn��z;q�fam�tivR»Uti�;¢�d�vUyUtÂz;v@p famn��z;q����GbGf��`vIyEfalIq�cUf9�Òz�en�4e�qsd��-enqgfamgd�e»��Kqsd�e�½¼��d���z��EmnlUv�qscUd�p fahihuf9�{tuvU��egti�@jUhid}jUmnfa�amsz;���

Ñ*Ò Ó ©6ÔUÕªÖª¬ØקU­�Ö Ò ¨YÜ/ÞÂßÚ�ïïRâªÙ6­�¬�¨-á Öª¬á¾Ü¤©ï Ú

Ò Ó ­3ð~à Ò Ó�� ��

©�Þ~àáëïUÛ�Ô ¨ Óªã Ò Ò Ó ­�d�Û�� � ©UÞÂàá ï��Le Ò å¨�á � df�òùgd3×ا Ò:� ¬ª¨-å ��Ò �Ohd�i�i@�

ïUÛ6i�ij�jd�i%ì=Ûªá Ò Ó ­�å ��N ù�;ªù.kÂÔ);#l ÓON Ò ��᪬­6Õªá Ó ù�

'Å�vÏz+�#lUvr¥o�#j`zomn~��HfammH«�I¥o¿a¹a¹a¹a��e��#e�qsd���½1qgcUdRfalIqgjUlIq�tue�¹[ÃU¹#®9¹�¸o¹�o¹o¯U�Íb�cUtue�tue�vId�q���famg�

»��Kqsd�famgyUd�m��BµÍfaenq5en�4e�qsd��£e5jUmgf9x4tuyUd�mnfalIqgtuvUd�eBqgf�en��zoj£qgcUd�endS»��Kqsd�e5qgf��Uq5tuvÌyUt�Ë/d�mgd�v�q5en�4e�qsd��£e��¶·tue�qsd�y�»¼d�huf9�ûzomgdEqscId�mnd�hud�x;zov�q@mnfalIqgtuvUd�e����#tu�£tuhuzomgh��a½C~�zov��ofal¡�`vUy�folIq�qscUd�»��Kqsd�fomgyUd�m£f;p¤�fa�£j`zo|RbwmglU¿o¯£´«ÈS�^ÉÐe��#e�qsd��Xn

Þ�­~¨ Ó § � � o~¨ª§U­3­*¨ Ó ¬­�9~¨-á6«e¨-á�Öª¬á� A§�Þ*¨�á6­29*¨-á ÖÞ�­~¨ Ó Ô � � o~¨ª§U­3­*¨ Ó ¬­�9~¨-á6«e¨-á�Öª¬á� Ô ¨ Ó�ã 9~¨�á ÖÓ ­~¨�Þ>§ � � þª¬­�9~¨-á6« ­~¨4Þ*¨�§�­ë¨-á�Öª¬á� A§�Þ*¨�á6­29*¨-á ÖÓ ­~¨�Þ*Ô � � þª¬­�9~¨-á6« ­~¨4Þ*¨�§�­ë¨-á�Öª¬á� Ô ¨ Ó�ã 9~¨�á Ö

®9¹

Page 11: Introduction to Network Programming Jie Wang Department of

b�cUd}vKlU��»¼d�mne�mgd�qglUmgvId�y�»�� Öaà�¦Ùnà � � 0 ¯�ÕPÔKÝSà�FäG zovUy Öaà�72 � ���� 0 ¯�ÕPÔKÝSà�FäG zomnd}tuvRvId�q���famg�@»K�KqgdfamnyUd�m��«b�cUtie«�£d�zovUe�qsc`zPq«t�p1��d��kzov�q}qgf�jUmntuv�q«qgcUd�� fal#q}fav+z£en�4enqgd����{tiqsc�z�yUt�Ë/d�mgd�v�q«»K�KqgdfamnyUd�m���d���falUhiy�vUd�d�yÑqgfÍ~�fav�xad�mnq�qscUd���� �úd��@z9��lUend£qgcUd�p fahuhif9�{tuvU�@enq�zPqsd��£d�v�q�qsf��ad�q�qscUdvUd�q���famn��»K�Kqgd�fomgyUd�m�f;p �¦72 �

Ûªá Ò�Ó ­�å �EN å6­6Û §�¬6á�� Ò ©�¬ Û*¨�á6­ Ò §pk Ö~Ú ÓON Ó ­~¨�Þ>§ � §�� Û%C ß�§3��Û*¨-á6­����O�#tu�£tuhuzomgh��a½ot�p'��d}eglUjIjUhi�£falUm�f9�{vRj7fomnqkvKlU��»7d�m�½#�{cItu~�cRtie�~�fa�@�£fav£�{cUd�vEyUd�xad�hufajUtivU��vId��

egd�mnx4tu~�d�e�½r��d���z���lUegd}qgcUd�p fahuhif[�{tivU��dÄÃIzo�@jIhudo½#fam�egfo�@d�qscUtivU�Ìegti�@tihÂzom�½KqgfÌegd�q«z�j¼fam�q{v4lI��»7d�m��Ñ Öª¬6å Ò Ó ¬fA�q�æ�è�ç é ÿ�ÿ ÿ ÿ

Û>¨-á6­���Þ�­*¨ Ó § � A�q æ�è�ç ér�O��d�~�zolUegdRqgcUdRmnfalIqstivUd�e�zomgd@�al`zomgzov�qsd�d�y"qsfNyUfNqgcUdRmntu�ac�q�qgcUtuvI��fav¡zov��ªcUfae�q�½Bd�xod�v¡tip�vIf

mgd�famgyId�mgtivU��tue{vUd�~�d�eneszom��a½rtiq{tie{zÌ�af#f4y�tuyUd�z�qsf�lUegd�qscId��ûtiv�z;huh/f;pCfalIm�jImgfa�amgzo�§~�f#yIdo�

¹É�0s ZØ���3]#��À~�mÈ?ÆÝ��Æ�[ÄÆY��� »1¼t[ÄÀ~ÆYÀ%um��Æ�»+»���^pw��d�lUend�enqszovUy`zomnyÍzojUjUhitu~�zPqstufovUe�½���d�vUd�d�yÍqgfÌhuf4fa��lUjRqscUd�vKlU�£d�mntu~}j¼fam�qktuv#p famg�@z;qstifav£~�famnmgd�¢egj¼favUyItuvU��qsfÌqscUz;q{jUmgfo�amszo�Í�Y�`fam �¦72 ½Up fam�dÄÃIzo�@jIhudo½#��d�~�z;v�lUend�qgcUd�p fahuhif9�{tuvU��e�q�z;qgd��£d�v�q��

§��6ÛM� ã ¬�­*§�¬6á��6âªÙ Ó à�ð~¬ �EN å6­6Û N N ­*©UÛ N �ObGf�huf4fa�ÍlUj�qscUd�tuv#p famg�@z;qstifav�~�famgmnd�enj7favIyUtuvU�Eqgf�qgcUd�b�¤k� jUmgf;qsf4~�fahCp fom}lUegd£hÂzPqsd�m«tuv+qscUd

jUmnfa�amsz;��½I��d���z��ElIegd�qscUd�p fahihuf9�{tuvI��enqsz;qsd��@d�vKq��Û�­�á6Ûv� ã ¬�­6Û�á¨�­~¨Uâ�Ù Ó à�ð~¬ �EN ­*©�Û N �O

¹É��w �!�����¼+½ÄÅ^Ï?à �#_Ä� �ª�!�*����������À*ÏÄ� �ÂÏÄÀ~��ªd��{tihuh/�Uhuh'tivRqscUd�egf4~��od�q�zoyIyUmgd�ege{enqgmglU~�qslUmnd�zoe{»¼d�hif[���

ð~¬�ð §�¬�­ ��� ©�ÞÂàá ï���e~§�àÖ� kù § Ò:� ¬ª¨-å � §�àÖ@����#Ú�ï·© Ô¬ àáe§6¨�©�«�àÖ Ö áe§U­ªáÕ>©U­6Õ�᪬ ï6Ú§�à־ܤ§ Ò Ó �6åªà�ð Ò Ô�ÙM�fD�ô��ÂöUþ6ø�é� Ú�ï·§¬�­òå�à�ð Ò Ô-Ùò­~¨Øö Ó ­Â¬á Ó ¬�­ ï6Ú§�à־ܤ§ Ò Ó ��àÖ Ö ásÜ §3� àÖ Ö�á\�ëöUþ�D 5�5 ç6�.D þ�q� Ú�ï·§¬�­3­ Þ¬ Ô�¨�©�àªÔ ö�æ àÖ Ö á�¬�§ § ï6Ú

Ò å � àá ã © ß ì.� �Û*¨-á6­v�òà�­~¨ Òx� àá ã ����ìK�@�O

' ¬ªÔ�§�¬ �Û*¨-á6­v� æ ç�è�é�èæ�è�ç é�

'Ò å � Û*¨-á ­ ß3ù%�

§�àÖsÜ § Ò Ó �-Û>¨-á6­8��Þ�­~¨ Ó § ��� Õ%��§UÞ*¨-á6­���Û*¨-á6­���¬ªÔ�§¬ �

åÛªá Ò�Ó ­�å � §�­�Öª¬á á� N âÂà6Ö Û*¨�á6­ Ó Õ6ð�â¬á�k~§�l ÓON �àá ã ���EìK�@��¬.; Ò ­ � ì.�O'

®a®

Page 12: Introduction to Network Programming Jie Wang Department of

®a�zy/d�mgfÌfalIq�qscUd�e�qsmnlU~�qglUmgd�lUentuvU��qscUd ÝSà;ÝSÙnà� hitu»Umgzomn�£~�zohuh)�Cb�cUd�jUlImgj¼faegd}f;pwqgcUtue�~�zohih7tie�qsf�@zo�od�enlUmgd}qgc`z;q{z;vK�Rzomgd�zoe�vUfoqklUegd�yú� eglU~�c�zoekqgcUd�j`zoyUyItuvU�Ìz;mgd�zÌzPqkqscUd�d�vUyr�kzomnd«�`hihud�y�{t�qsc͹��°e��

¸#���#d�q�qscUd�zoyIyUmgd�ege�pHzo�@tihi�o½C�{cUtu~�c�tuemD�ô��ÂöUþ6ø�é¼�S�Hb�cId § Ò Ó �6åªà�ð Ò Ô�Ù"fovUhi�ú~�fa�£��lUvUti~�z;qgd�eqgcUd�zoyUyImgd�ene�pHzo�@tihi�ÌtivIp famn��z;qgtufav�qsf�qscUd}�;d�mnvUd�h)½`zovUyEenfÌyUf#d�ekvUfoqkvUd�d�y�qgf�»¼d}~�famnmgd�~�qsd�yp fam�»��Kqsd�famnyUd�m��ß�

�I���#d�qBqscUdħ3� àÖ�Ö áÌd�hud��£d�v�qJqgf�qgcUd�en�4e�qsd���~�favUe�q�zov�q!öUþ�D 5�5 ç6��D þ�q¼½4�{cItu~�c�qsd�hihueCqgcUd�en�4e�qsd��qgc`z;q{��d��{tihuh7qszo�od�~�fovUvUd�~�qstifavUe�p mgfa�§zov��K�{cUd�mndo�

�^pCz�j¼fam�q�vKlU��»¼d�m�tue�jImgf9x4tuyUd�yÍ»��RqgcUd�lUend�m�½UqgcUd�v�lUend�qsc`z;q{j¼fam�q�vKlU��»¼d�mc{`f;qscUd�mn�{tuendo½UlIegd�qscUdyUd�pHzolUhiq{j¼fam�q�vKlU��»¼d�m��B��v�d�t�qscUd�m�~�zoendo½`��d�~�fav�xad�mnq{qscUd�j¼famnqkv4lI��»7d�m�qsf�qscId�~�famgmnd�~�qSvId�q���famg�»��Kqsd�famgyUd�m�zovUyÍ~�faj��Et�q{tuv�qsfÌqscId�enf#~��;d�q«zoyUyUmnd�eneSe�qsmglI~�qslImgdo�

b�cUd Ù+�4Ø-,�à� jUmnf#~�d�yUlUmnd�~�mgd�z;qsd�eSz�egf4~��od�q}z;vUy�mnd�qglUmgvUe�zovÍtuv�qgd��ad�m�yUd�en~�mgtijIqsfom�®Öª¬�§�©�á Ò Û�­*¨-áv� § ¨�©U«�¬�­ � Ûªá¨�­*¨-åªà�ð Ò Ô-Ù� �­ªÙÛ¬� oÛªá¨-­~¨�©6¨ Ô6�

�«mn�alU�£d�v�q�Û�á¨�­~¨-å�à�ð Ò Ô-Ù�egj¼d�~�ti�`d�e�qgcUd«jUmnfoqsf4~�fohUpHzo�@tihi��qsf�»7d�lUegd�y��{tiqgc@qgcUdSenf#~��;d�q��s�`famBdÄÃ4¢zo�£jUhud;½�qscUd1x;zohilUdÝæ�ô��Âö�þ6ø é�tue/lUegd�y�qgf�egj¼d�~�t�p �}qscIdJb�¤k��¥P�¦��jUmgf;qsf4~�fah;eglUt�qsdo½PzovIyTæ�ô��.D6æ�æ�ý6ø é�D�ý�|tue�lIegd�yÍqsf�egj¼d�~�tip �E�SjUjUhid�bGzohu�RjImgfoqgf#~�fahue��

�«mg�olU�@d�v�q�­ªÙÛ¬ªenj7d�~�ti�Ud�eÌqscUdRq��4j¼d�fop�~�fa�£��lUvUti~�z;qgtufavªqscUdEenf#~��;d�q£�{tuhuh5lUendo�"b�cUdEq���f�£faenqS~�fa�£�£favÍq��4j¼d�e�z;mgd�z@~�fovUvUd�~�qstifav#¢�fomgtud�v�qsd�y�enqgmgd�z;� qgmszovIenp d�m��Henj7d�~�t��`d�y��{t�qscÍqscUd�xoz;hulUdõ è�+�|6� õ�é ç�ø�D.AU��½·z;vUy+z@~�favUvUd�~�qgtufavUhid�ene«�£d�egegzo�adÄ¢�famntud�v�qgd�y�qgmszovIenp d�m��Henj7d�~�t��`d�y��{t�qscÍqscUd�xoz;hulUdõ è�+�|6� 5 Bç�D.AU���

�«mg�olU�@d�v�q�Ûªá¨�­*¨�©6¨ ÔNenj7d�~�t��`d�e�zÍj`z;mnqsti~�lUhuzom�qsmgzovUegj¼fam�q�jImgfoqgf#~�fahBlUegd�yú�{tiqgcÑqgcUd�enf#~��;d�q���«z�x4tuvI��z�jUmnfoqsf4~�fohUzomn�alU�£d�v�qBtuv�zoyIyUtiqgtufav�qgf�z�q��4j¼d�zomg�alI�@d�vKqJzohuhif[�{e1z�entuvU�ohudkjUmnfoqsf4~�fohIeglItiqsdqsf£tuvI~�hulIyUd}q���f£fam��£famgd�jImgfoqgf#~�fahuekqgc`z;q{jUmnf[x4tiyUd�qscUd�esz;�@d�end�mnx4ti~�do�

ÈSf9���d�lIegd�qscUd�jUmnfoqsf4~�foh'vKlU��»¼d�m���d}QnlUe�q«z;~�|KlUtumnd�y�qsf��ad�q«zÌenf#~��;d�q«zovUyÍ»UtuvUy�t�q�qsfÌqscUdegd�mnx4tu~�d���d�jUhÂzovRqgf@jImgf9x4tuyUd;�M�úd�~�z;v�yUf£egf£zoe�p fahihuf9�{e��

§�Ö�� § ¨�©U«�¬�­ � æ�ô��Âö�þ6ø é� õ�è�+.|6� õé ç ø�D.A� ¶Û�­�áÛ%C�ß-Û%�-Ûªá~¨�­~¨��Ob�cUd£en�4enqgd�� ~�favUenqszov�qse~D ô6�ÂöUþ6ø éúz;vUy õ�è�+.|6� õé ç ø�D.A"zomndÌyUd��UvUd�yªtuv+qscUd�e��#e�qsd�� cUd�zoyId�m��`hud×�§�Ù*§6Ú�§6¨�©�«�¬�­¾Ü/Þ~ßU½1�{cUd�mgd[æªô��ÂöUþ6ø�éÑtie�zovúz;hutÂz;e}fop}D ô��ÂöUþ ø é¼�<b�cUd�Ûª­�áÛ%C ß�Ûªá¨�­~¨Nd�hud��£d�v�q�tuvqscItue�~�zoegd@�{tuhuhB»¼d@qgcUd�x;zohulId�tuvIyUtu~�z;qstivU�Íz�b�¤k� enf#~��;d�qÌtie�yUd�egtumnd�y'���^q���zoe��`hihud�yªtuvª»K�ªfalUmd�z;mghutid�mk~�zohuh7qsf Öaà�72 � ���� 0 ¯�ÕPÔ�Ý«à-FHG �

¹É��� � ¼1½ÄÈT¼1½ÄÅ Æ �ª�NÀÂÁs�(ÀO���4�����*�s���R�Â� Æ ���(ÀÂÁµ¼1����ÎcUd�vN~�mnd�z;qgd�y'½¼z@enf#~��;d�q«c`zoe�vUd�t�qscUd�mSz£huf4~�zoh'zoyUyUmnd�egeSvUfam�z�mgd��£foqgd�z;yUyUmgd�ege���� end�mnxod�mSlUegd�eqscId[0. Õ[á~FHG jUmgf4~�d�yUlUmnd�qgf£enlUjUjUh��Íz£jImgfoqgf#~�fah'j¼famnq�vKlU��»¼d�m�z;q{�{cUti~�cÍqgcUd�end�m�xad�m��{tuhih7��zotiq{p fam~�fovKqszo~�q��Bb�cUd[0. Õ[á~FHG jUmnf#~�d�yUlImgd�p fahuhif[�{e�qscUd�p fahihuf9�{tuvU��p famg�@z;q��

â Ò Ó Ö � §6¨�©�«�¬�­� #Ô�¨�©�àªÔà6Ö Ö á� àÖ�Ö áÂÔ¬ Ó �

®[¸

Page 13: Introduction to Network Programming Jie Wang Department of

�«mn�alU�£d�v�q?§6¨�©�«�¬�­Etie�qscUd�yId�eg~�mgtijIqsfam�fopGz�enf#~��;d�q{qscUz;q�c`zoe�»¼d�d�v�~�mgd�z;qsd�y�»UlIq{vUfoqkjUmgd�x#tifalUenhi�»¼falUvUy={aqgcUd5~�zohih�tueGzSmgd�|KlUd�e�qCqscUz;qGqgcUd�enf#~��;d�qC»7d�zoegentu�avId�yÌz�j`zomnqgtu~�lUhÂzom·jImgfoqgf#~�fah�j7fomnqGv4lI��»7d�m���«mn�alU�£d�v�qµÔ ¨�©�àªÔ6àÖ Ö á�tie�z�enqsmnlU~�qglUmgdSqsc`z;q�egj¼d�~�ti�`d�e�qgcUd«hif#~�zohrzoyUyUmnd�ene�qsf�»7d«zoegentu�avUd�y�qsf�qscUdegf4~��od�q�½7zovUyÍzomn�alU�£d�v�q<à6Ö Ö áÂÔ¬ Ó tie{zovÍtuv�qsd��ad�mkqgc`z;q{egj¼d�~�ti�`d�e�qgcUd�hud�vU�oqsc�fopwqscId�z;yUyUmgd�ege��

�Sd�vI~�do½rtivÍfolUm�~�zoendo½r»UtivUyUtuvI��z�end�m�xad�m��ÆeSegf4~��od�qSqgf@z�egd�mnx4tu~�d�~�zovÍ»7d�yUfovUd�zoe{»7d�huf9���â Ò Ó Ö � §�Ö� � §U­�áÕ>©�­e§ ¨�©U«�àÖ�Ö áeï���e~§�à6Ö� A§ Ò�� ¬ª¨�å � §�àÖ����Ob�cUd«~�fa��»Utiv`z;qstifavÌfop'qgcUd�endSq���f�~�z;huhue�½Â§6¨ª©U«�¬�­ � ��zovUy�â Ò�Ó Ö � �K½Utue5zov`z;hufa�afolUeJqsf�qscUd«´«ÈS�^É

¨UÛ¬ Ó�� �Ï~�zohuh)�¨b�cUd#§6¨ª©U«�¬�­ � �"~�zohuhSzohihuf4~�z;qgd�eRz;v�fa»�Qnd�~�q�egti�@tihÂzomÌqsf¡zú�UhudNyUd�eg~�mgtuj#qsfam�½«zovIyâ Ò Ó Ö � �E~�fovUvUd�~�qse�tiq�qgf�zEj`z;mnqsti~�lUhuzom}fa»�Qnd�~�q��{t�qsc+�{cUtu~�c�qscId£foj7d�msz;qgtuvU�Ee��#e�qsd�� �KvUf9�{e�cUf9�qsf£~�fo�@��lIvUtu~�z;qsd;�

¹É�+��� �!�����~¼1½ÄÅ �%_Ä�M[ÄÆY�>�!»��sÅ�Sp qgd�m�egj¼d�~�tip �4tuvU�£z�jUmgf;qsf4~�fah·j¼famnq�½rz£end�m�xad�mS��lUe�q«tivUenqgmglU~�q�qgcUd�faj7d�msz;qgtuvU��e��#e�qsd�� qgf@jIhÂzo~�d�zegf4~��od�q�tivÑjUzoegentixad@�@f4yUdÌenf�t�q�~�zovª»7d�lUend�yªqgfÍ��zot�q�p fom�~�fav�q�z;~�q�p mgfa� ~�hutid�v�qse��@bwf�yIf�enfU½Czegd�mnxod�m«~�zohuhie�qscId Þ . Ù�¦à;Õ FäG jImgf4~�d�yIlUmgd;½r�{cItu~�c�q�zo�;d�e{q���f@zomg�olU�@d�v�qse�®

Ô Ò §�­�¬ Ó�� § ¨�©U«�¬�­� h��Õ¬-Õ~¬�§ Ò�� ¬#��«mn�alU�£d�v�qɧ6¨�©U«Â¬�­�tueGqgcUd�yId�eg~�mgtijIqsfamCfop¼z«egf4~��od�qB»7d�d�vÌ~�mgd�zPqsd�y�z;vUyÌ»7folUvUy�qsf}z«huf4~�zoh4zoyIyUmgd�ege�½zovUy�zomn�alU�£d�v�qz��Õ~¬-Õ¬�§ Ò:� ¬Regj¼d�~�ti�`d�e«zÌhid�vU�oqgcEp famkqscUd�enf#~��;d�q �°e«mnd�|KlUd�enqS|4lId�lUd;�

b�cUd�faj¼d�mgz;qstivU�@e��4enqsd�� »UlItuhuyIe«z�end�j`z;msz;qgd�mgd�|4lId�enq}|4lId�lUd�p fam�d�z;~�c+egf4~��od�q��}��vUt�qstÂz;huhi�o½UqscUd|KlUd�lId@tie}d��£jIq��a���«e�mgd�|KlUd�e�qse�zomgmntixad�p mgfa� ~�hutid�v�qse�½·d�zo~�c�tie�jUhÂzo~�d�y+tivNqscUdÌ|KlUd�lUd3{w�{cUd�v�qscUdegd�mnxod�m�zoeg�KekqgfÌmgd�qgmgtid�xad�z;vEtuvU~�fa�@tivU��mgd�|KlUd�enq{p mgfo�ÊqgcUd}egf4~��od�q�½UqgcUd�en�4enqgd��ûmnd�qglUmgvUekqgcUd}vUdÄÃ4qmgd�|KlUd�e�q�p mgfo� qscId£|KlUd�lUdo�£�^p5qscUd�|KlUd�lId@tie}p lUhuhC�{cId�vªz�mnd�|KlUd�enqÌz;mgmgt�xad�e�½·qscUd�e��#e�qsd�� mgd4Qnd�~�qgeqscId�mnd�|KlUd�enq��

�«hiqgcUfalU�ocú~�z;huhutivU�QÔ Ò §U­�¬ Ó�� ��tue�vUfoq�enqgmgtu~�qsh���vUd�~�d�egegzomn�o½Btiq�tue�~�fa�£�@fovÏzovUyªd�Ã#j¼d�~�qgd�y¡tuvvUd�q���famn�@end�m�xad�mkzojUjUhitu~�zPqstufovUeCqsf�egd�q�qscIdS�@zPÃ#tu��lI� »`zo~��Khifa��j¼d�mn�@t�qgqsd�y'�JÅ}lUm5egd�mnxod�mkjUmnfa�amgzo��£tu�ac�q1»¼dk»¼fa�a�ad�yÌyUf9�{vÌegd�mnx4tu~�tuvU��z«mnd�|KlUd�enqB�{cUd�v/½4enlUyUyUd�vUhi�o½KzovUfoqgcUd�mC~�hutid�v�qCqgmgtid�eCqgf}~�favIvUd�~�qqsfÍqscUd@egd�mnxad�m��Íb�cUd�foj7d�msz;qgtuvU�Íen�4enqgd�� tue��{tuhihutuvI�Rqsf��@zo�;d£qgcUd�~�hutud�v�q���zot�q�����lIq�qscId�mgd�zomgdhuti�@t�qse5qsf�cUf9� �@zov��E~�hitud�vKqge�tiq{tie�mgd�z;egfav`z;»Uhud}qgf@�;d�d�jÍ�kz;tiqstivU�U�

��v�falIm�~�zoendo½`��d�~�zov�lIegd�qscUd�p fahihuf9�{tuvU��Ô Ò §U­�¬ Ó�� ��e��#e�qsd���~�zohuh7qsf�egd�q�qgcUd�`7£�v7��x�����®Ô Ò §�­�¬ Ó�� §-Ö� üý6ø�þ��O

b�cUd£faj¼d�mszPqstuvI�Een�4enqgd�� �{tuhihCti�@j¼faegd�egfa�£d�hutu�£tiq�favÑcUf9���@zov��N~�hutid�v�qse��@z��N»¼d£|KlUd�lUd�yªlUj'��ªdS�@z��Ìzohiegf�mgd�jIhÂzo~�dz��¶(�BÈλK�£z�e��#e�qsd��Ê~�favUe�q�zov�q��#��O��&� J �������#´SentuvU��Ô Ò §�­�¬ Ó�� ����d�egd�qz@hitu�£tiqkp fomSfalImSend�mnxod�m�z;jUjUhuti~�z;qgtufavEqgc`z;qStue{d�|Kl`zohwqsf£fam�hud�eneSqgc`zov�qgcUd�e��4enqsd���¢^tu�£j7foegd�y�huti�@t�q�HenlU~�cNz;e{qgcUd�lUegdm��¶(�5ȨcUd�mgd����

®��

Page 14: Introduction to Network Programming Jie Wang Department of

¹É�+��� ��_Ä� Ç Æ�¼1½ »����¾Ã�ªd�vIf[� d�v�qsd�mSz;v�tivI�`vUt�qsd}hif#faj�z���zotiqgtuvU��vUd�� ~�favUvUd�~�qstifavUe�®96Þ Ò Ô¬ � ì�� �

àªÔ¬ Ó � § Ò�� ¬�¨-å � ©�à6Ö@�OÒ å ��� §�Ö�ú2�òà�© ©�¬�Û�­ � §�Ö� � §U­�áÕ%©U­ §6¨�©U«�à6Ö Ö á ï���e*©�àÖ� geªàªÔ6¬ Ó ��� ×òù%� �åÛªá Ò Ó ­�å � §U­ªÖª¬á á� N à�© ©�¬�Û�­Øåªà Ò Ô¬6Ö%l ÓON ��¬.; Ò ­ � ì.�O

'� Ò § Ò ­*§)i�i�§�Ûªá Ò Ó ­�å � â Õªå� N é6Þ Ò § §�¬á���¬á·ÞÂà�§ ⬠¬ Ó ©6¨ Ó ­�à�©U­�¬6Öjk�Ö·­ Ò ð~¬.k~§�l ÓON

� Ò § Ò ­*§� 4� Ò § Ò ­>§)���>ì)� N Ü N / N §ÝÜ N �O§�¬ Ó Ö � §�Öªú äâ Õªå� E§U­�áÂÔ¬ Ó�� â Õªår�O +ù%�&©6Ô ¨ª§�¬ � §�Ö�ú%�O'' Ú�ï ¬ Ó Öë¨-å ð~à Ò Ó ï6Ú

b�cUdqà�© ©�¬-Ûª­ � ��~�zohuhB»Uhif#~��Ke�dÄÃ#d�~�l#qstufovÏlUv�qstih�zÍvUd��Ê~�hitud�vKq�~�fo�@d�e�zohifavU�U½G��lU~�cÏhitu�od@z Ù�Ø�Ô�Õ��~�z;huh/qgc`z;q�~�zolIegd�e{qscId�e��4enqsd��ûqsf��kz;tiq�p famkqgcUd�lUegd�m{qgf�d�v�qsd�mSvUd�� tivUjUlIq��

b�cUd«mnd�qslImgv�x;zohilUdSf;p·zo~�~�d�j#q�tue�z�vUd��Îegf4~��od�qkp fam5~�fa�£��lUvUti~�z;qgtuvU���{t�qsc@qgcUd�vUd��{h���z;mgmgt�xad�y~�hitud�vKq��-b�cIdªenf#~��;d�q+z;yUyUmgd�egeÍenqgmglU~�qslUmndúj`zoenegd�yÒqsf4à�© ©¬-Û�­ � ��tieE�`huhid�y��{tiqgcÒcUfoenq�zoyUyUmnd�enetuv#p famg�@z;qstifav�p famkqgcUd�mgd��@foqgd�d�vUyÍfopwqscUd�~�favUvUd�~�qstifav'�

ÈSfoqgd�®���vNfoqgcUd�m«zojUjUhitu~�z;qstifav�jImgfa�amgzo�£e�½r��d��@z���mgd�jUhÂzo~�d�qgcUd�~�folUv�qstuvI�RzovUy�qscUd�jImgtuv�qgtuvU�enqsz;qsd��@d�v�qse�»K�RfalUm{f9�{voÖ¨ Ò ­ � �ÌmnfalIqstivUdo�

¹É�+�M¹ ��_Ä�������#���~�����#� �c���Æ�½ÄÈ����r�#��R�E�òÃÄÀ~�����(ÈTÏÄÀ~���foqgc@~�hutid�v�qse5zovUy@egd�mnxad�mge���z��ÌvUd�d�y£qsf�egd�vIy�tuv#p famg�@z;qstifav'�w´Senl`zohihi�a½4z�~�hitud�vKq5end�vUyUe�z�mnd�|KlUd�enq�½zovUy�end�mnxod�m�egd�vUyUe�zRmgd�egj¼favUendo���^pBqgcUd�egf4~��od�q�tue}~�favUvUd�~�qsd�y'½<jUmgf4~�d�yUlUmnd ÙnàPÕ[á ~�zov�»7d�lIegd�y�qsfqsmgzovUe�p d�m{y`z;qszI½U�{cUtu~�cÍc`zoe�qgcUd�p fahuhif[�{tivU��p famn��zPq��

§�¬ Ó Ö � §6¨�©�«�¬�­� �Ö�à�­�à� Ô¬ Ó�ã ­6Þ� QåÂÔà ã §���«mn�alU�£d�v�qseµ§ ¨�©U«�¬�­�tie5qgcUd«yUd�eg~�mgtuj#qsfam�fop<z�enf#~��;d�q�qgf�lUendo½�Öªà�­�à�tie5qgcUd}z;yUyUmgd�egektiv��£d��£famn��f;pqscIdÌy`z;q�z£qsfEegd�vUy'½ÝÔ¬ Ӫ㠭6ÞNtue�zov�tuv�qsd��ad�m«qgc`z;q�enj7d�~�t��`d�e}qgcUd�vKlU��»¼d�m�fopBf4~�qgd�qge}fop5y`z;qszI½'zovIyåÂÔà ã §�~�fav�q�z;tuvUe�»Utiqge�qscUz;q�mnd�|KlUd�enq{egj¼d�~�tÂzoh¼fajIqgtufavIe��{�)µ�zov���fojIqstifavUekz;mgd«tiv�qsd�vIyUd�yRp fam5en�4e�qsd��yUd�»UlU�a�ativU�U½5zovUy�zomndEvUfoq�z�x;zotihÂzo»Uhid@qgf+~�fav�xad�v�qstufov`zoh�~�hitud�vKqÌzovUy¡egd�mnxad�m�jUmgfa�omszo�£e�� �Ð��v¡falUm~�z;egdo½`��d�cUz9xod�lUegd�y Ù�à;Õ[á~FHG tiv�qgcUd�p fahuhif9�{tuvU����z��a�

§�¬ Ó Ö � §�Öªú äâ Õªå� E§U­�áÂÔ¬ Ó�� â Õªår�O +ù%��Bmnf#~�d�yUlImgd�e Ù�à;Õ[á�� zovUy ÙnàPÕ[áUÝ«Ù�Ö z;huhuf9� zE~�hitud�v�q�fam�end�m�xad�m�qsfÍegd�vUyªz��£d�eneszo�od£lIegtuvI��z;v

lUvU~�favUvUd�~�qgd�y£egf4~��od�q����/�`famGd�ÃIzo�£jUhud;½o�{cUd�v�lUentuvU�}qgcUd�´S���ÑjUmnfoqsf4~�foh#enlUtiqgdo½aqscId�egdkq���f�en�4e�qsd��~�z;huhuek��falUhiy�»7d�~�fa�£d�c`zovUyI�o�ß�Ìb�cUd Ù�à;Õ[á�� jImgf4~�d�yIlUmgd�c`zoe�qgcUd�p fahuhif[�{tivU��p famn���

®�¯

Page 15: Introduction to Network Programming Jie Wang Department of

§�¬ Ó Ö6­~¨ � § ¨�©U«�¬�­� �Öªà�­�à Ô6¬ Ӫ㠭6Þ� ¶å~Ôà ã §� QÖª¬Â§U­�àÖ Ö�᪬�§ §� à6Ö Ö áª¬�§�§6Ô¬ Ó �b�cUd��`mnenq�p falIm�zomg�olU�@d�v�qse}~�famgmnd�egj¼favUy+qgf�qscUd�p folUm�zomn�alU�£d�v�q}fopBqgcUd Ù�à;Õ[á eglU»UmnfalIqgtuvUd;��b�cId�`v`z;h'q���f�zomg�alI�@d�vKqge{egj¼d�~�t�p �RqscId�z;yUyUmgd�egeSfop1z�yUd�enqstiv`z;qgtufav�zovIyÍqgcUd�hid�vU�;qsc�fopwqsc`z;qSzoyIyUmgd�ege��b�cUdEp famn� fop�qgcUd�zoyUyImgd�eneÌtuv¡zomn�alU�£d�v�q�Öª¬�§U­ÂàÖ Ö áª¬Â§ §�tie�qscUdo§ ¨�©U«�àÖ�Ö á"e�qsmglI~�qslImgdÑ�Hfom�qscUd§6¨�©�«�àÖ Ö á6� Ò Ó enqsmnlU~�qglUmgd��{cUd�v�lUend�yÍ�{tiqsc�b�¤k�5¥;�¦�5���

b�cUd ÙnàPÕ[áUÝ«Ù�Ö enlU»UmnfalIqstivUd�j7d�mnp famn�@ekqgcUd�eszo�£d�faj¼d�mgz;qstifav�zoe Ù�à;Õ[á�� ½`»Ul#q«z;»U»Umgd�x4tÂz;qgd�e�qscUdzomn�alU�£d�v�qseB»���yUd��UvUtuvU��z�enqgmglU~�qslUmndo�Jb�cUtie5�@z���z�enqsz;qsd��@d�vKq�d�z;egtud�m1qsf�mgd�zoyN�HzovUy��{mgt�qsdo½aqgf#f�����^q�c`zoe�qscId�p fohuhuf9�{tivU��p famn���

§�¬ Ó Ö�ð%§ ã� §6¨�©U«�¬­� Qð%§ ã §U­�áÕ%©U­� kåÂÔà ã §���«mn�alU�£d�v�q¸ð%§ ã §U­�áÕ>©�­Îtie�zÏenqgmglU~�qslUmndÑqgc`z;qE~�fav�q�zotivUeEtuvIp fomg�@z;qstifav�zo»¼falIq�qscUd+yUd�enqgtuv`z;qgtufavzoyUyImgd�ene�½KqscUd�hid�vU�;qscÌfoprqscIdSz;yUyUmgd�ege�½KqgcUd��£d�egegzo�adkqgf�»¼d�egd�v�q�½4zovUyÌqscId�hud�vI�oqscÌfop¼qscId��@d�egesz;�ado�

¹É�+�$! ��_Ä�Ø�(»����¼1½ÄÅ ÃÄÀ~�����(ÈTÏÄÀ~�b�cUd ØPÞ �aÙ�à jUmnf#~�d�yUlImgd�qsd�huhie�qgcUd�e��#e�qsd�� qsf@qsd�mn�@tiv`z;qgd�zov�tuvUyUt�x4tuyUl`z;hwenf#~��;d�q����^q}jUmnd�xad�v�qse�qscUdzojUjIhutu~�z;qstifav�p mgfa�¨end�vUyUtivU�}�£famgd5y`z;qszI½az;vUy�qscId�qsmgzovUenj7fam�q1jUmnfoqsf4~�foh4e�qsfajIeJzo~�~�d�jIqgtuvU�«tuvU~�fa�@tivU��£d�egegzo�ad�eSyUtimgd�~�qsd�yÍqgfÌqscUd�egf4~��od�q�½rjUmnd�xad�v�qstuvI�@qscId�z;jUjUhuti~�z;qgtufav@p mgfa�-mgd�~�d�t�x#tivU���@fomgd�y`z;qszI�

¹É�+�OF ���<�(À~�(¼���� ÃÄÀ~��[?»��NÇ �®a���CÃ#jUhufomgd�qscUd{jUmnfoqsf4~�fohUd�v�qsmntud�e5fov�qgcUd{cUfae�q5�ofal£hufa�afov'�N�ÎcUz;q5tueCqgcUd{jUmgfoqgf#~�fahUv`z;�@d{zovIyvKlU��»¼d�m{fopwqscId��¦�1x#¿@tiv�qsd�mnvUd�q{~�fav�qsmnfah·�@d�egegzo�ad�jUmgf;qsf4~�fah�n

¸#���CtivUyNfal#q}qscUd�enq�z;vUy`zomny+vUd�q���famg��zojUjUhitu~�z;qstifav�vUzo�@d�e�zovUyNqgcUd�tim«j¼famnq«vKlU��»¼d�mge«favNqscUdcUfoenq{�afalÍhufo�afav'�Ý�ÎcUz;q�tuekqscId�j¼fam�q{v4lI��»7d�m{fop ¦àPÞ Õ[à� n

�I���CtivUy�falIq�qgcUd�»K�Kqgd�famnyUd�m{lUend�y�fav��«hujIc`zÌ��zo~�cItuvUd�eSz;vUyÍ�Gd�v�qgtulU� �@zo~�cUtivUd�e��

� Ì aq_�h Ík]�æ âÊã[Î+äEåM_�äQf â ] _�æ}äEå

!K�+� �!���ÐÏ?Ãb�cUd+end�qElUj�f;p�zú~�hitud�v�q�tue�entu�£tuhuzom�qsfúqgcUdNend�qElUj�f;p�zúegd�mnxad�mR�{tiqgc�zªp d���dÄÃI~�d�jIqgtufav/�¨��vj`zom�qsti~�lUhuzom�½·��d�vUd�d�yúqgf��ad�q�cIfaenq�tuvIp fomg�@z;qstifav+fop�qgcUd£~�fa�£jUlIqgd�m�qsc`z;q�mnlUvUe�qgcUd£egd�m�xad�m�½JzovIyd�e�q�zo»Ihutuenc�z}vUd���~�fovUvUd�~�qstifav�p fam1d�zo~�c�vUd���mgd�|4lId�enqBp mnfa�ÐqgcUd�~�hitud�vKq��)zovIyÌ~�hufoegdkqscIdk~�favIvUd�~�qstufov�{cUd�v+egd�m�x4tu~�d�tue�jUmgf9x4tuyId�yNz;vUy��`vUtiegcUd�yr���K�ªd��@z���enqgtuhuh·lIegd�qgcUd�egzo�£d�end�q}f;pJcUd�z;yUd�m��`hud�e«zoep famBqscUd�egd�mnxod�m�½#»UlIq5��dSvUd�d�y�qsf�tuvI~�hulIyUd«z�p d���d�Ã4qsmgz�yUd�~�hÂzomgz;qstifavUe�½�tuvU~�hulUyUtivU� 5U�aÙ�¦à;Õ� zovUy£qscUdyUd�pHzolUhiq{cIfaenq�huf4~�zPqstufov'�

Ñ*Ò Ó ©6ÔUÕªÖª¬Øק�Ù~§6Ú�­ªÙÛ¬�§ÝÜCÞÂßÑ*Ò Ó ©6ÔUÕªÖª¬Øק�Ù~§6Ú�§ ¨�©U«�¬�­ÉÜ/ÞÂßÑ*Ò Ó ©6ÔUÕªÖª¬Ø× Ó ¬�­ Ò Ó ¬�­~Ú Ò Ó Ü/ÞÂß

®[±

Page 16: Introduction to Network Programming Jie Wang Department of

Ñ*Ò Ó ©6ÔUÕªÖª¬Ø×�àáÛÂàªÚ Ò Ó ¬�­¾ÜCÞÂßÑ*Ò Ó ©6ÔUÕªÖª¬Ø× Ó ¬�­�ÖâKÜ/ÞÂß

Ñ*Ò Ó ©6ÔUÕªÖª¬ØקU­�Ö Ò ¨YÜ/ÞÂßÑ*Ò Ó ©6ÔUÕªÖª¬ØקU­�á Ò Ó�ã Ü/ÞÂß

Ñ Öª¬6å Ò Ó ¬3æ çÂè�é�è�æ�èç éëê*ìUí6î Ú�ï4Ö�¬åªà-Õ*Ô-­3Û�á¨�­~¨�© ¨ Ô�Û*¨-á6­ Ó Õ6ðªâ¬áeï6ÚÑ Öª¬6å Ò Ó ¬òñ�óÂôªõÂö-÷�ø ìUù�úû

©�ÞÂà6áëÔ�¨�©�àªÔUÞ>¨�§U­����v� N Ô ¨ª©�àªÔUÞ*¨ª§U­ N AÚ�ïÐÖª¬å�à-Õ*Ô�­òÞ*¨�§�­ Ó à-ð~¬ëï6Ú

Ò Ó ­3ð~à Ò Ó���Ò Ó ­ à6á ã ©� A©�ÞÂà6áëï�à6á ã ��������

§U­�áÕ>©�­3Þ>¨�§U­�¬ Ó ­eïUÛ�­�áÞ� Ú�ïRÛ>¨ Ò Ó ­�¬6á3­*¨ à�Þ*¨�§U­ò­�à-â>Ô¬ ¬ Ó ­�á Ù ï6Ú§U­�áÕ>©�­3Û�á¨�­~¨¬ Ó ­ ï�Û�­�áÛ� Ú�ïRÛ>¨ Ò Ó ­�¬6á3­*¨ à�Ûªá¨�­*¨�©6¨ Ô�­�à-â>Ô¬ ¬ Ó ­�á Ù ï6Ú§U­�áÕ>©�­e§ ¨�©U«�àÖ�Ö á�� Ò Ó §àÖ� Ú�ï3§�­�áÕ>©U­ ժ᪬3­~¨4Þ*¨ Ô-Ö §�¬á���¬á��7§·àÖ�Ö áª¬�§ § ï6ÚÒ Ó ­e§�Ö� Ú�ï3§ ¨�©U«�¬�­ØÖª¬Â§ ©�á Ò Ûª­~¨-á ï6ÚÒ Ó ­3Û*¨-á6­� Ú�ïRÛ�á¨�­~¨�© ¨ Ô�Û*¨-á6­ Ó Õ6ðªâ¬á ï6Ú©�ÞÂàá ï�Þ*¨�§�­� Ú�ïRÛ>¨ Ò Ó ­�¬6á3­*¨ Þ*¨ª§U­ Ó à�ð~¬ ï6ÚÒ Ó ­ Ó Ú�ï Ó Õ6ð�âÂ¬á ¨-å ©�ÞÂà6áªà�©U­�¬6á~§ ᪬ àÖ ï6Ú©�ÞÂàá·â Õªå��Hñ�ó�ôªõÂö�÷�ø��� Ú�ïRâ�Õªå 媬á å¨�á3Öªà­�à å�á¨�ð ­6Þ¬ §�¬á��¬á ï6Ú

ð~¬�ð%§�¬­ ��� ©�ÞÂàáeï��:e~§�àÖ� �ù� § Ò�� ¬ª¨-å � §àÖ@���OAÚªï3©6Ô6¬ àáe§6¨�©U«ÂàÖ Ö áe§U­�á6Õ>©U­6Õªá�¬ ï6Ú§�àÖsܤ§ Ò Ó �åªà-ð Ò Ô-ÙM�2D ô��~öUþ6ø é� Úªï3§�¬­òåªà-ð Ò Ô-Ùò­~¨Øö Ó ­�¬6á Ó ¬�­ ï6Ú

Ú�ïP+Þ¬�©U«e©6¨�ð ð*à Ó Ö�CªÔ Ò Ó ¬ àá ã Õ6ð~¬ Ó ­ å~¨-á Û�á¨�­~¨�© ¨ Ô�Û*¨-á6­ à Ó Öج.;6­ªáªà�©U­ïRÛ>¨-á6­ Ó Õ6ð�â¬6á Ò å ¨ Ó ¬ Ò §ò§�Û© Ò å Ò ¬6ÖsÜkè�­6Þ¬6á�9 Ò §�¬ Õ%§�¬·­6Þ¬·Öª¬åªà-Õ>Ô�­ïRÛ>¨-á6­j��àªÔUÕ¬ ã*Ò ��¬ Ó âªÙë© ¨ Ó §U­�à Ó ­ æ ç�è�é�èé�q æ øï6Ú

§�9 Ò ­*©UÞ � àá ã ©�� �©�à�§�¬eìO/âªá�¬ à�«�

©�à�§�¬òú�/Û*¨�á6­��òà�­~¨ ÒO� àá ã �}�EìK�@�O¡Ú�ï ã ¬�­·Û>¨-á6­ Ó Õ6ð�â~¬áëï ÚÒ å � Û*¨-á ­ ×��òù%� �

åÛªá Ò�Ó ­�å � §�­�Öª¬á á� N âÂà6Ö Û*¨�á6­ Ó Õ6ð�â¬á�k~§�l ÓON �àá ã ���EìK�@��¬.; Ò ­ � ì.�O

'âªá�¬ à�«�

©�à�§�¬3î�/Û*¨�á6­��òà�­~¨ ÒO� àá ã �}��ú.�@�O¡Ú�ï ã ¬�­·Û>¨-á6­ Ó Õ6ð�â~¬áëï ÚÒ å � Û*¨-á ­ ×��òù%� �

®9¿

Page 17: Introduction to Network Programming Jie Wang Department of

åÛªá Ò�Ó ­�å � §�­�Öª¬á á� N âÂà6Ö Û*¨�á6­ Ó Õ6ð�â¬á�k~§�l ÓON �àá ã ����ú.�@��¬.; Ò ­ � ì.�O

'Þ*¨�§U­v�òàá ã ����ìK�� Úªï ã ¬­·Þ*¨ª§U­ Ó à�ð~¬ëï6Úâªáª¬ à«�

Ö�¬åªà-Õ*Ô-­�/åÛªá Ò�Ó ­�å � §�­�Öª¬á á� N Õ>§à ã ¬�/�� Ò § Ò ­��CÞ*¨�§U­��/Û*¨�á6­����%l ÓON �OåÛªá Ò�Ó ­�å � §�­�Öª¬á á� N Õ>§à ã ¬�/�� Ò § Ò ­�Ö��/Û*¨-á6­��%l ÓON ��âªáª¬ à«�

'§àÖsܤ§ Ò�Ó �-Û*¨-á ­M��Þ�­*¨ Ó § ��� Õ%��§�Þ*¨�á6­�� Û*¨�á6­��O

b�cUd�~�hutid�v�q�dÄÃIj¼d�~�qse�favUd�fam�q���f£~�fa�£��z;vUyEhutivUd�zomn�alU�£d�v�qse�½rz�cIfaenq��Æe{yUfa�@zotivRv`zo�£d£�Hfam{zcUfae�q �°e�v4lI�@d�mgtu~�v`zo�£d9��½'zovUy�zElUegd�m�zRj7fomnq�vKlU��»¼d�m�f;p5qgcUdÌegd�mnxod�m�favNqscIdÌegd�m�xad�m�~�fa�£jUlIqsd�m���ªd��@zo�od�qscUd�egd£q���f+z;mg�alU�£d�v�qge�zoe�fajIqgtufavUzohJtuvUjIlIqse�»��ªlIegtuvI�Nz�yUd�pHzolIhiq�cUfaenq�v`zo�£d£zovUy"zyUd�pHzolUhiq{j¼fam�q{v4lI��»7d�m��

!K�H¹  [�����!¼+½ÄÅ Ï?Ã Æ È?�sÇ Æ�¼1½ ½ÄÆ�Ç ���~�hutud�v�q1��lUe�qJegj¼d�~�tip ��qscUdkzoyUyUmnd�egeJf;p¼z}egd�m�xad�mJlUegtivU��enqgmglU~�qslUmndħ ¨�©U«�àÖ�Ö á�� Ò Ó �5����yUfativU�«enf�tiq�£d�zovUeJ~�fav�xad�mnqstivU��zov£zoyUyImgd�eneJtuvÌyUf;qgqsd�yÌyUd�~�tu�@zoh4vUfoq�zPqstufov��Hfam1z}yUfa�@zotuv�vUzo�@d�tuv�qgd�Ã4qJp famg���tuv�qgf�zi��¸9¢�»Ut�q��¦��zoyUyImgd�enekmgd�jUmgd�egd�vKqgd�y�tuv@»UtuvUzomn�o�B¤�fav�xad�mnqstivU��p mgfo�ÊyIfoqgqgd�yRyUd�~�ti��zohrvUf;q�z;qgtufavqsf�»Utiv`zomn�}tue·qsmntix4tÂzoh)�<¤�fav�xad�mnqgtuvU��p mgfa�¨z{yUfa�@zotiv�vUzo�@d;½[cUf9��d�xad�m�½�mgd�|4lItumgd�eG~�favUentuyUd�mszo»Uh����£famgdd�Ë7fam�q��£b�cUd@enf#~��;d�q�tuv�qsd�mnpHzo~�d£tivú�k�I�-´SÈS�^É-tuvU~�hulUyId�e�huti»Umszom��NmnfalIqstivUd�e�½ Ò�Ó ¬�­6� à6Ö Ö á � ��zovIyã ¬�­ Þ*¨�§U­6â�Ù Ó à�ð~¬ � �K½Iqgc`z;qJj¼d�m�p famg�$qscUd�~�fav�xad�mgegtifavUe����rlIvU~�qgtufav Ò Ó ¬�­6��àÖ Ö á � �}qszo�od�eBzov����U¤��n�enqgmgtivU�Rqsc`zPq�~�fav�qszotuvUe}zRyUfoqgqgd�y�yUd�~�tu�@zohCzoyUyUmnd�ege�z;vUy�mgd�qglUmgvIe}qscUdÌd�|4lItix;zohud�v�q��¦�Òz;yUyUmgd�ege�tuv»Utiv`zomn�o�k�`lUvU~�qstufov ã ¬­6Þ*¨�§U­ âªÙ Ó à�ð*¬ � �Nq�z;�od�e�z;vUyÏ���I¤��g��enqsmntuvU�Íqsc`zPqÌ~�fav�qszotuvUe�qscUd�yUfa�@zotuvv`zo�£d+p fam�z¡��zo~�cItuvUd;½}zovUyÒmgd�qslUmnvUeEqscUdªzoyUyUmnd�ene�fop�zAÞ>¨�§U­�¬ Ó ­©e�qsmglI~�qslImgd�qsc`z;qÍ~�fav�q�zotivUe�½zo�£favU��foqgcUd�m{qscUtivU�ae�½UqscUd�cUfae�q �°eS�¦��z;yUyUmgd�egeStuv�»UtuvUzomn�o��b�cUd?Þ*¨�§�­�¬ Ó ­ÍenqsmnlU~�qglUmgd�tue{yUd�~�huzomgd�ytuv Õ[à�¦á 0 Ú²5 ½`�{cUti~�c�c`z;e{qgcUd�p fahuhif9�{tuvU��p fomg�Í�

§U­�á6Õ>©U­òÞ*¨�§U­Â¬ Ó ­ �©�ÞÂàá ïUÞ%� Ó à�ð*¬� Ú�ï3¨-å å Ò © Ò àªÔÐÞ*¨ª§U­ Ó à�ð~¬ëï6Ú©�ÞÂàáeï ïUÞ%� àªÔ Ò à�§�¬�§� Ú�ï3¨�­6Þ~¬á à�Ô Ò à�§�¬Â§ ï6ÚÒ Ó ­ Þ%� àÖ Ö�á6­�ÙÛ¬ Ú�ï àÖ Ö�᪬�§ §Ð­�ÙÛ~¬ ï6ÚÒ Ó ­ Þ%�ªÔ¬ Ó�ã ­6Þ� Ú�ï àÖ Ö�᪬�§ §òÔ¬ Ó�ã ­6Þ ï6Ú©�ÞÂàáeï ïUÞ%� àÖ Ö�á��ªÔ Ò §�­� Ú�ï3Ô Ò §�­ë¨-åØàÖ Ö�᪬�§ §�¬Â§ ï6Ú

' �Sfae�qseRfop qgd�v�c`z�xod+�@famndÍqgc`zov�favIdNv`zo�£do� b�cIdN�`mge�qEd�hid��£d�v�q�½¾Þ%� Ó à-ð~¬U½«tie@qgcUdNf3(£~�tuzoh

v`zo�£d£fopkqscId@cUfoenq�½1zovUyªqgcUd�Þ#� àªÔ Ò à§�¬�§+z;mgmsz��+�{tihuhJ~�fovKqszotuvúzohuhJt�qse�foqgcUd�m�v`zo�£d�e��´�ªd��@z��j`zoene ã ¬�­6Þ*¨ª§U­6âªÙ Ó à�ð~¬ � ��zov���vUzo�@dNp fom�qscUd�cUfoenq�qsc`zPqÍzojUj¼d�zomneEtuvÎd�t�qscUd�mRqscUdQÞ%� Ó à�ð~¬�famÞ%� à�Ô Ò à�§�¬Â§��`d�huyUe��

®[²

Page 18: Introduction to Network Programming Jie Wang Department of

b�cUd�zoyUyUmnd�ege{q��4j7d�tue�tiv�qsd�vIyUd�y�qsf£yUtue�qstivU�alUtiegcE»¼d�q���d�d�v�zoyUyUmnd�ene�pHzo�£tuhitud�e�®C��v�qgd�mgvId�q�½r���UÅ�½�?�5¤�vUd�q�½�d�qg~o�1b�cUd¾Þ%�ªÔ¬ Ó�ã ­6ÞÌ�`hid�yÌ�at�xad�eCqscUd�hud�vI�oqscÌtiv�»��4qgd�eJfoprqgcUdk»Utiv`zomn��zoyIyUmgd�ege����Gtuv`zohihi�o½qscId�Þ%� àÖ�Ö á��ªÔ Ò §U­Ñtue�zovÑzomnmsz��+fop�j7fotuv�qsd�mge}qsfÍ»Utiv`zomn�NzoyUyUmnd�enegd�e�p fam�qscUd�cUfoenq���µ�zov���cUfoenqsec`z�xad��£famgd£qsc`z;v"favUdEzoyIyUmgd�ege�½�zoe�qgcUd��Ïzo~�qÌzoeÌ��z;qgd���z9�4eÌ»¼d�q���d�d�v�q���f�fam��£famgd@vUd�q���famg�Ke���Îc`z;q«tue�vUd�z;mghi�Íti�@j¼faegentu»Uhid}qsf@�4vIf[��½7p mgfa�ûqgcUd�zojIjUhuti~�z;qgtufav'½`tie��{cItu~�cNfopCqscUd�egdÌzoyIyUmgd�egegd�e�tueqscId«»¼d�enq5qsf�lUegd;�J��vRegfo�@d{~�z;egd�e�½UfavUh��ÌfavUdSzoyUyImgd�enek�@z9��»7dSmgd�z;~�c`zo»Uhid�p mnfa��qscUd�~�hitud�vKq��Æe5cUfae�q��Å}vUd�zojUjUmnf�zo~�c�qgf£qgcUtue{yUtihud��@�@z��{tuhih'»7d�qsf£egti�@jIhi��qgmn��d�zo~�cNzoyIyUmgd�ege«lIvKqgtuh·favId���famg�Ke��kb�cUtue�£d�qscIf#y�yUf#d�e«vUf;q«�alUzomszov�qgd�d�~�cIf#faentuvU��zov�fojIqsti��zoh<z;yUyUmgd�ege���� b�cUd�zoyIyUmgd�ege«��d�~�cUfaend���falUhiytu�£jUh��RzÌmgfolIqsd�»��E�{cUtu~�cÍfalUm�jUzo~��od�qseSqgmsz�xad�hW� �

¤�favUegtiyUd�m�z�entu�£jUhud�dÄÃIzo�@jIhud{fop·v`z;�@d{~�fovKxod�mnegtufov'���#lUjUj¼faegd«z�~�hutid�v�q�cUzoe�»¼d�d�vRj`zoenegd�y�qscUdyUfa�@zotiv+v`zo�£d 5U�aÙ�¢¡�Ú°Ø�Ù�ÚÜÛ�Ý�ÞÜÚ à�áUÛ tiv+enqsmntuvU�Rp fomg� z;vUy�vUd�d�yUe�qsf�fa»IqszotuvNqgcUdÌ�¦�zoyIyUmgd�ege��Ìb�cId~�hitud�vKq{~�zovÍ~�zohih ã ¬­6Þ*¨�§U­ âªÙ Ó à�ð*¬ � �@zoe�p fahuhif[�{e��

§U­�á6Õ>©U­òÞ*¨�§U­Â¬ Ó ­ ï�Þ Û�­ªá�©�ÞÂà6á ï�¬.;ªà-ð�Û*Ô¬ Ó à�ð1�¤£�£äÞ*¨�§U­�ì(ܤ© §ÝÜCÕ6ð>ÔMÜ�¬6ÖÕ�����Ò å � Þ Û�­ªá�� ã ¬�­6Þ>¨�§U­6âªÙ Ó à�ð~¬ � ¬.;ªà�ð�Û>Ô¬ Ó à�ðx��� �

Ú�ïòöUæØàÖ�Ö áª¬�§ § Ò § Ó ¨:9 Ò Ó Þ Û�­�á�C�ß-Þ%� àÖ�Ö á ï6Ú' ¬ªÔ�§�¬ �

Ú�ï�¬6á á¨-á Ò ÓòÓ à�ð~¬�C4Þ~à Ó ÖÂÔ¬ Ò ­eï6Ú'´SegtivU�ÌqscUd ã ¬�­6Þ>¨�§U­6âªÙ Ó à�ð~¬ � �£mgfolIqstivUdo½U��d�c`z�xad�qscUd�p fahihuf9�{tuvU��jUmgfa�omszo�Êp mszo�a�£d�v�q��

Ú�ïP+¨ Ó ��¬á ­3Þ>¨�§U­ Ó à�ð~¬·­~¨ ¬���Õ Ò �ÂàªÔ¬ Ó ­ öUæØàÖ�Ö áª¬�§ §·à Ó Öë©6¨�ÛªÙò­~¨3§�à6ÖsÜ ï6ÚÛ�­�áÞv� ã ¬�­6Þ*¨�§�­6âªÙ Ó à-ð~¬ � Þ*¨ª§U­��OÒ å ����� ©�ÞÂà6á ï�� Û�­�áÞ �P���·þ�óÂý ý@� �

å6Ûªá Ò Ó ­ªå � §U­�Ö�¬á á� N�Ò Ó ��àªÔ Ò Ö3Þ*¨�§U­�/¥k~§�l ÓON oÞ*¨�§�­��O¬�; Ò ­ � ì��O

'ð~¬�ð%©�Û�Ù � e~§�à6Ösܤ§ Ò Ó � àÖ Ö á� �Û�­ªáÞ%C ß-Þ#� àÖ Ö á� QÛ�­�áÞ#C ß-Þ%�ªÔ6¬ Ӫ㠭6Þ �OÚ�ï¦A~à-Ûòé6+æ3­ªáªà Ó §�Û>¨-á6­ Ûªá¨-­~¨�©6¨ Ô Ó à-ð~¬�­*¨ Ûªá~¨�­~¨�©6¨�Ô Ó Õ6ð�â¬á¾Ü ï6Ú

Ò å ������Ò Ó ­r� � Û�­�á6Û8� ã ¬­6Ûªá¨�­*¨UâªÙ Ó à-ð~¬ �EN ­>©�Û N �����j��� ù%� �å6Ûªá Ò Ó ­ªå � §U­�Ö�¬á á� N ©�à Ó Ó ¨-­·ð*à-Û8l N ­*©�Û@l N ­*¨ Ûªá~¨�­~¨�©6¨�Ô Ó Õ6ð�â¬6á N �O¬�; Ò ­ � ì��O

'Ú�ïP+ ᪬ à�­�¬ àا6¨�©U«�¬­eï Ú

§-Öj� §6¨�©U«�¬­ � æ�ô��~öUþ6ø é� Aõ è�+.|6��õ�é ç ø�D�A� QÛ�­�á6Û%C ß-Û%��Ûªá¨�­~¨6�OÒ å � §-Ö ×3ù%� �å6Ûªá Ò Ó ­ªå � §U­�Ö�¬á á� N §6¨�©U«�¬­e©-᪬ à�­ Ò ¨ Ó åªà Ò Ô6¬Ö%l ÓON �O¬�; Ò ­ � ì��O

®��

Page 19: Introduction to Network Programming Jie Wang Department of

'Ú�ïP+¨ Ó Ó ¬�©�­ò­ Þ¬ا ¨�©U«�¬�­ ­~¨Ð­6Þ¬ §�Û© Ò å Ò ¬6Ö §¬á���¬áeï6Ú

Ò å � © ¨ Ó Ó ¬�©�­ � §�Ö� � §U­�áÕ>©�­e§ ¨�©U«�àÖ�Ö á ï���e~§àÖ� A§ Ò�� ¬�¨-å � §�à6Ö@���·×òù%� �å6Ûªá Ò Ó ­ªå � §U­�Ö�¬á á� N ©6¨ Ó Ó ¬Â©U­Øåªà Ò Ô¬6Ö%l ÓON ��¬�; Ò ­ � ì��O

'b�cUd+egd�qslUj©lUegtivU� Öaà�72 � ���� 0 ¯�ÕPÔKÝSà�FäG zovUy Öaà�¦Ù�à � � 0 ¯�ÕPÔ�ÝSà�FHG tieRtuyId�v�qsti~�zoh�qsfÏqscUz;q�fop�qscUd

egd�mnxod�m�½7zovUyE��d��{tihuh7vUfoq{mgd�j7d�z;q{qscUd�yId�q�z;tuhue��B��foqgcÍf;pGqgcUd�end�jUmnf#~�d�yUlImgd�e�zomnd�qsmn�4tivU�Ìqsf£zo~�~�d�eneqscId�eszo�£d}egd�mnx4tu~�d�lUegtivU��qscId�eszo�£d}jUmnfoqsf4~�fah/zovUyRqgcUd�eszo�£d}end�mnx4ti~�do�Bb�cUd�tivUtiqgtÂzohit�Ê�z;qstifavÌfop<qscUdegf4~��od�q{zoyUyImgd�enekenqgmglU~�qslUmnd«tie�zohiegf�egti�@tihÂzom�½od�Ã#~�d�jIqkp fom5qgcUdStivUtiqgtÂzohit�Ê�z;qstifav�fop/qscUd�egf4~��od�q{zoyUyUmnd�ened�hid��£d�v�q����údÌ�{tihuhwvUfoq�lUend�zE�{tihuyU~�zomgy���öUþ�D 5�5 ç6��D þ�qI��½<»UlIq�tivUenqgd�zoy�vUd�d�y�qsfE�at�xad�zEegj¼d�~�ti�`~cUfae�qSzoyUyUmnd�ege{qsf�|KlUd�mn�a�

!K��! Z Ï?Ç �(À*¼��ØÆYÈ?È?À~�N�ª���(��Gd�fajUhid��@z��Eegj¼d�~�tip ��cUfae�qSzoyUyUmnd�egend�e}tivÍz£vKlU�£d�mntu~o½`yIfoqgqgd�y#¢^yUtu�at�qkp famn��z;q{mgz;qscId�m�qsc`z;v�»��EqscUdcUfae�q �°e�yUfo��zotiv�vUzo�@d;���^q�tie@�od�vUd�mszohihi�"dÄÃIj¼d�~�qsd�y�qsc`z;q�zov�zojUjUhitu~�zPqstufov¡qgc`z;q£q�zo�;d�e@yUfa�@zotuvv`zo�£d�e��{tihuh�zohuenfNq�zo�;dÍvKlU�£d�mntu~;½5yIfoqgqgd�y#¢^yUtu�at�q�p fomg�@z;qÍ�HenlU~�c�zoeE®[¸o­I�Æ¿�I� �I� ¸#½1qscIdÍ�¦� zoyUyUmnd�enefop ÙgÔ��Û � Õ4Ú Ø�Ù�ÚÜÛ�Ý�ÞßÚ°à�áUÛ ����� �af#f4yÏ��z9�úqsf�~�cUd�~��"p fam�z�vKlU�£d�mntu~EcUfoenq£vKlU��»¼d�mÌegj¼d�~�ti�`d�y�z;e@zenqgmgtivU�ªxod�mgenlUe�z�� j7foegegti»Uhi�I�ÌcUfae�qRv`zo�£dÍtue�qsfú~�zohuh Ò Ó ¬�­%� àÖ Ö á � §U­�á Ò�Óªã �K½«�{cUd�mgdA§U­�á Ò�Óªã tueqscIdEenqsmntuvU���afalÏ��zov�q�~�cUd�~��;d�y'�ªb�cUdRmnfalIqstivUd��{tihuhBmgd�qslUmnvÏqscUd�x;zohilUd£¢s®Rtip�qgcUdRe�qsmgtivU�Ntie�vUfoqzÏjUmnfaj7d�mRzoyIyUmgd�ege�½SzovUy���dNencUfalUhiy�qscUd�vÎjUmgf4~�d�d�y�qsfÏzoegenlU�@d�tiq@tueRzªcUfaenqRv`zo�£do½{zovUy�hid�qòrZ�íU�wñ>"�íK§ '<ì<]`óúZr¨¢©ÌyId�~�tiyUd�t�pkt�q�mnd�zohihi�+tie�fom�vUf;q��ÍÅ}vUd@zoyIx;zov�q�zo�od@qsf�lUegtivU� Ò�Ó ¬�­6� à6Ö Ö á � �mszPqscUd�m'qsc`zov�~�cUd�~��KtuvU�{qscUdJe�qsmntuvU��falImgegd�hixod�ewtue/qgc`z;q'qgcUdJp lUvU~�qgtufav�lIvUyUd�mnenqszovUyUewegfa�£dCx;zomntÂz;qgtufavUe�½�{cUti~�cÍ�{tihuh/qgmgd�zPq�®��I��®�z;e�® �I� ¹#� ¹I��®a�

!K�GF º#�s½?½Ä�(� �b�cUd�mgdÌtue�vUf¶0. Õ[á~FHG fam Þ . Ù�¦à;Õ FHG ~�zohih<tuv�qgcUd�~�hutud�v�qK{7qgcUd�endÌzomnd�vUfamn��z;huhi��favUh���lIegd�y+»���egd�mnxad�mge����vUe�qsd�z;y'½�qscUdk~�hutid�v�qJlUend�eJjUmnf#~�d�yUlUmnd Ø��IÕ�Õ[à�Ø�EFäG qsf�d�e�q�zo»Ihutuenc�~�fovUvUd�~�qstifav��{tiqgc�z}egj¼d�~�t��`~kend�mnxod�m�½�{cUti~�c�tieSz;v`zohufo�afalUe�qgf 0. Õ[á~FHG lUend�yÍtuvEqscId�end�m�xad�m���b�cId�p famn�§fop Ø��#Õ�Õ[à�Ø�EFäG tie{zoe�p fahuhif9�{e��

©6¨ Ó�Ó ¬�©U­ � §6¨�©U«�¬­� §�à6Ö Ö áª¬�§�§� A§�àÖ Ö á�¬�§ §6Ô¬ Ó ��«mn�alU�£d�v�qse�§6¨�©�«�¬�­©tueEqscIdÑyId�eg~�mgtijIqsfamÍfop�z�enf#~��;d�qNfov©qgcUd�~�hutid�v�q �°e�~�fa�£jUlIqgd�m�qsf�lUegd�p famqscId+~�favUvId�~�qgtufav/½T§�àÖ Ö á�¬�§ §"tieEz §6¨�©�«�àÖ Ö á�enqgmglU~�qslUmnd�qgc`z;q�egj¼d�~�t��`d�eRqgcUd+egd�mnxod�m��°eÍzoyUyUmnd�enezovUyÍjUmnfoqsf4~�fah7j7fomnq{vKlU��»¼d�m�½rzovUyk§�à6Ö Ö áª¬�§�§6Ô¬ Ó egj¼d�~�t��`d�e{qscId�hud�vI�oqsc�fopwqscUd�end�m�xad�m��Æe«zoyUyUmnd�ene�£d�zoenlUmgd�y�tivÍf4~�qgd�qge��B��v�folUm{~�zoendo½U��d�c`z�xod�lUend�y�qscUd�p fahihuf9�{tuvI��enqsz;qsd��@d�vKq{p fam�~�favUvUd�~�qgtufav'�

©6¨ Ó�Ó ¬�©U­ � §�Ö� � §�­�áÕ>©U­ §6¨ª©U«�àÖ Ö�á ï���e~§�àÖ� § Ò�� ¬ª¨-å � §�àÖ@����ÎcUd�v Ø��IÕ�Õ[à�Ø�EFHG eglI~�~�d�d�yUe�tuvÑmgd�qglUmgvItuvU��zÍvIfavUvUd���z;qst�xad�x;zohulUd;½·qscUd£egf4~��od�q�tue�~�favUvUd�~�qsd�y

qscImgfalU�oc�qscUd�vUd�q���famg��qsfúzúegd�mnxad�m��¨�Shuh�qsc`zPqRtue£hud�p qRtie£qgfÏlUegd�famgyUtiv`zom���´«ÈS�^É ��¥aÅ ~�zohihue

®9­

Page 20: Introduction to Network Programming Jie Wang Department of

qsfÍmgd�zoyÑy`z;q�zEp mgfo� qscId@enf#~��;d�q�zovUyÑd�~�cUf�tiq�qsfEqgcUd@lIegd�m��Æe�enqszovUy`z;mgyÑfalIqsjIlIq��HjUmnfa»`zo»Uh��a½<»UlIqvUfoq«vUd�~�d�eneszomntuhi�o½¼qgcUd�qgd�mn�@tiv`zoh �Ä�k�«e��{tiqgc��`hid���¥aÅ�½rmgd�qslUmnvUtuvI��p mgfa� z£mgd�zoy��{tiqgc�qgcUd�x;zohilUd�¹tuvIyUtu~�z;qsd�ekqsc`z;q�qscUd�mgd�tuekvIf£�£famnd}y`z;qszÌqgfÌ»7d�mnd�zoy/���ªd}qscId�vÍ~�hufoegd}qscId�egf4~��od�qSzovIyÍdÄÃ#tiq��Jb�cIdmgd���z;tuvUtivU�Ì~�f4yUd�fopwqscUd�~�hitud�vKqktue�qscUd��@zotuv�huf4fajEp fam��ad�qnqstivU�Ìy`z;qszI�

!K�0S ��_Ä� Ç Æ�¼1½ »1���sÃÚ�ï ç¬-Û¬ à�­Â¬ÖÂÔ-ÙØ᪬�àÖ3Ö�à�­�à·å á¨�ð §6¨�©�«�¬�­ëà Ó Ö29�á Ò ­Â¬�­~¨4Õ>§�¬6á��7§ § ©�᪬�¬ Ó ï6ÚÓ �·áª¬�©�� � §�Ö� oâ Õªå� A§ Ò:� ¬ª¨-å � â Õªå@�O ù#�O96Þ Ò Ô¬ �HÓ ß3ù#� �

9ªá Ò ­�¬ � ì= oâ Õªå� Ó �OÓ �·á�¬�©�� � §-Ö� oâ Õªå� A§ Ò�� ¬ª¨-å � â�Õªå@�O +ù#�O

'Ú�ïP+ÂÔ ¨�§�¬ ­6Þ¬ §6¨�©U«Â¬�­ ï6Ú©6Ô ¨�§�¬ � §�Ö@�OÚ�ï é¬á�ð Ò Ó à�­�¬·­6Þ¬ë©6Ô Ò ¬ Ó ­3۪ᨠã á�à�ð ã áªà�©�¬6åÕ*Ô Ô-Ù ï Ú

᪬�­6Õªá Ó ù'

!K��Y ��_Ä�«ª0��¬�­��®ª0��¬�­%¯°ª0���±�µÆ�½ÄȲª0��¬�­O�R�E�3ÃÄÀ~�����(ÈTÏÄÀ~�N�� ~�hutud�v�qEzovUyÎzÏend�m�xad�mEd�zo~�cÎvUd�d�y�qsfÏmnd�~�d�tixod+y`z;q�zªegd�v�q�»���qgcUdNfoqgcUd�m��$b�cUdNegf4~��od�qÍ�}�J�jUmnf[x4tiyUd�e�egd�xad�mgzohwjUmgf4~�d�yUlUmgd�eSqgc`z;q�~�zov�»7d�lUend�y'�É�rfom�d�ÃIzo�£jUhud;½rzov�z;jUjUhuti~�z;qgtufavE~�zovÍ~�zohihM� à�Ø��qsf�mgd�~�d�t�xad}y`zPq�z�p mnfa�Êz�~�favIvUd�~�qsd�y�enf#~��;d�q��Bb�cUd«jUmgf4~�d�yUlUmgd«c`zoe�qgcUdSp fahihuf9�{tuvI��p famn��½��{cUti~�cEtueqscId�~�falUv�qsd�mSjUzomnq{fopwqscId Ù�à;Õ[á jUmgf4~�d�yUlUmgd;�

᪬�©:� � §6¨�©�«�¬�­� Qâ�Õªå 媬á� Ô6¬ Ӫ㠭6Þ� ¶å~Ôà ã §���«mn�alU�£d�v�q?§6¨�©�«�¬�­EtiekqscUd�yUd�eg~�mgtuj#qsfam�fopGz�enf#~��;d�q�p mgfa� �{cUtu~�c�y`zPq�zÌtue�qgfÌ»7d�mnd�~�d�tixod�y'�5�«mn�al#¢�£d�v�qsâ Õªå å�¬á@egj¼d�~�t��`d�e5qscUd}zoyUyUmnd�ege�tuv��£d��£fam���tuv@�{cItu~�c�qgcUd«tivU~�fa�£tuvI���£d�eneszo�ad�e�encUfalUhiyR»7djUhuzo~�d�y'½wzovUyÑzomg�olU�@d�v�qiÔ6¬ Ӫ㠭6ÞÑegj¼d�~�t��`d�e�qscId£ent�Ê�dÌfop�qgcUd�»UlIË7d�m����Ctuv`z;huhi�o½'zomn�alU�£d�v�qTåÂÔà ã §zohihuf9�{e�qgcUd�~�zohuhid�m�qsf@~�fav�qgmgfahwyUd�qszotuhie��Hdo�°�U��½¼qgfRzohihuf9�¨z;v+zojUjUhitu~�z;qstifavRqsfRdÄÃ4qsmsz;~�q�z£~�faj��ÍfopBz;vtuvI~�fa�£tuvU�Ì�£d�eneszo�od��{t�qscUfolIq{mgd��@f9x4tuvU�ÌqgcUd��@d�egesz;�ad�p mgfa�ÊqscUd�egf4~��od�qÄ�Ä�

�^p·z�egf4~��od�qktueJvIfoq5~�favUvId�~�qgd�y��HzoeBtuvÌqscId�~�zoegd�fop/lUegtivU��qscUdS´«���ÑjUmgfoqgf#~�fah �Ľ�tiqB~�zov@»¼d{lUegd�yqsfÍmgd�~�d�tixad@�@d�egegzo�ad�e�p mgfo� zovªzomg»Ut�qsmgzomn��egd�q�fop�~�hitud�v�qge��£��vúeglI~�cÏ~�zoend�e�½GqscId£e��4enqsd�� mgd�qglUmgvIeqscId@z;yUyUmgd�ege�fopBqscIdÌegd�vIyUd�m�zohifavU�R�{tiqgc+d�zo~�cÑtuvI~�fa�£tuvU�@�@d�egegzo�ado���Bmnf#~�d�yUlImgd�e�� à�Ø���� � �IÝ zovIy� à�Ø���ÝSÙnÖ zomnd�~�folUv�qsd�m�jUzomnqge}fop Ù�à;Õ[á�� zovUy Ù�à;Õ[áUÝSÙnÖ ½·mgd�enj7d�~�qgtixad�hi�o��b�cId´� à�Ø���� � �IÝ jUmgf4~�d�yUlUmndc`zoe�qgcUd�p fahuhif[�{tivU��p famn���

᪬�©:��å á¨�ð � §6¨�©U«Â¬�­� kâ�Õªå 媬á� Ô6¬ Ӫ㠭6Þ� ¶å~Ôà ã §� A§ Ó Ö áªàÖ Ö�á� #§�àÖ Ö�áÂÔ¬ Ó ��«vIyÍqgcUd�� à�Ø���Ý«Ù�Ö jImgf4~�d�yIlUmgd�c`zoe�qgcUd�p fahuhif[�{tivU��p famn���

¸o¹

Page 21: Introduction to Network Programming Jie Wang Department of

᪬�©-å�ð%§ ã� §6¨�©U«�¬­� Qð%§ ã §U­�áÕ%©U­� kåÂÔà ã §��µ�famgd�tivIp famg�@z;qgtufav�zo»7folIq�qscUd�egd�en�4enqgd�� ~�z;huhue�~�zovÍ»7d}p folUvUyÍtuv��#d�~�qstifavÍ¿I�

³ ´¶µ æ â-ã[h Ík]�æ«åCæ â-ã[Î+äRåY_�äQf aEæ?bMc£æ?bÝ`<â^]�_�æ�äRå â-ãqjNæ

Fµ�+� ��_Ä�Ø���(ÀÂÁs�NÀÚ�ï3C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�Cï4ô Ò Ô¬ Ó à�ð~¬�/¥� Ò § Ò ­�־ܤ©fC�C�C §�¬á���¬6á·Û�ᨠã áªà-ðï æ6ÕªáÛ>¨�§�¬�/ à�Ô Ô ¨�©�à­�¬ àا6¨ª©U«�¬�­ëà Ó Ö3­6Þ¬ Ó áª¬�Û¬ à�­�¬6ÖÂÔ-Ùë¬.;ª¬Â©�Õ�­�¬·­6Þ¬·å¨ Ô�Ô ¨:9 Ò Ó�ã /ï � ì.�¦9Âà Ò ­ å¨-á3­6Þ¬ Ó ¬.;6­ ©6¨ Ó�Ó ¬�©U­ Ò ¨ Ó å á¨�ð à © Ô Ò ¬ Ó ­ï � ú%�·§¬ Ó ÖØàا�Þ>¨-á6­·ð~¬�§ §�à ã ¬·­~¨4­ Þ¬ة Ô Ò ¬ Ó ­ï � î#�·© Ô ¨�§�¬·­6Þ¬ ©6¨ Ó�Ó ¬�©U­ Ò ¨ Óï � û@� ã ¨ âÂà©U«3­*¨ò§U­Â¬-Û ìï�õÙ Ó ­Âà.;�/ � Ò § Ò ­�Ö<�/Û>¨-á6­��ï Û>¨-á6­vC�C�C�Ûªá¨�­~¨ª©6¨ Ô�Û*¨-á ­ Ó Õ ð�â¬áò­~¨4Õ>§�¬ï4þ¨�­�¬�/ é Þ¬ÐÛ>¨-á6­ àá ã Õ6ð*¬ Ó ­ Ò §·¨UÛ�­ Ò ¨ Ó àªÔMÜAöUå Ó ¨4Û*¨-á6­ Ò §ò§�Û¬�© Ò å Ò ¬Ö� ï ­ Þ¬ا¬á���¬á3Õ>§¬�§ ­ Þ¬ Ö�¬åªà-Õ*Ô-­ ã>Ò ��¬ Ó âªÙ3æ ç�è�éÂè�æ�è�ç éï.C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�Cï Ú

Ñ*Ò Ó ©6ÔUÕªÖª¬Øק�Ù~§6Ú�­ªÙÛ¬�§ÝÜCÞÂßÑ*Ò Ó ©6ÔUÕªÖª¬Øק�Ù~§6Ú�§ ¨�©U«�¬�­ÉÜ/ÞÂßÑ*Ò Ó ©6ÔUÕªÖª¬Ø× Ó ¬�­ Ò Ó ¬�­~Ú Ò Ó Ü/ÞÂßÑ*Ò Ó ©6ÔUÕªÖª¬Ø×�àáÛÂàªÚ Ò Ó ¬�­¾ÜCÞÂßÑ*Ò Ó ©6ÔUÕªÖª¬Ø× Ó ¬�­�ÖâKÜ/ÞÂß

Ñ*Ò Ó ©6ÔUÕªÖª¬ØקU­�Ö Ò ¨YÜ/ÞÂßÑ*Ò Ó ©6ÔUÕªÖª¬ØקU­�á Ò Ó�ã Ü/ÞÂß

Ñ Öª¬6å Ò Ó ¬3æ çÂè�é�è�æ�èç éëê*ìUí6î Ú�ï4Ö�¬åªà-Õ*Ô-­3Û�á¨�­~¨�© ¨ Ô�Û*¨-á6­ Ó Õ6ðªâ¬áeï6ÚÑ Öª¬6å Ò Ó ¬òñ�óÂôªõÂö-÷�ø ìUù�úûÑ Öª¬6å Ò Ó ¬Øüý ø�þ ì�ú6ÿ Ú�ï3§ Ò�� ¬Ø¨-å3á�¬���Õ¬�§�­��Õ¬-Õ¬ ï6Ú

Ò Ó ­j� Ò § Ò ­*§·�òù Ú�ï3© ¨UÕ Ó ­*§ ©6Ô Ò ¬ Ó ­ ©6¨ Ó�Ó ¬�©U­ Ò ¨ Ó § ï6Ú

Ò Ó ­·ð~à Ò�Ó���Ò Ó ­ à6á ã ©� ©�ÞÂàáeï�à6á ã ��������

§U­�áÕ>©�­3Û�á¨�­~¨¬ Ó ­ ï�Û�­�áÛ� Ú�ïRÛ>¨ Ò Ó ­�¬6á3­*¨ à�Ûªá¨�­*¨�©6¨ Ô�­�à-â>Ô¬ ¬ Ó ­�á Ù ï6Ú§U­�áÕ>©�­e§ ¨�©U«�àÖ�Ö á�� Ò Ó §àÖ� Ú�ï3§�­�áÕ>©U­ ժ᪬3­~¨4Þ*¨ Ô-Ö §�¬á���¬á��7§·àÖ�Ö áª¬�§ § ï6Ú§U­�áÕ>©�­e§ ¨�©U«�àÖ�Ö á�� Ò Ó ©àÖ� Ú�ï3§�­�áÕ>©U­ ժ᪬3­~¨4Þ*¨ Ô-Ö ©6Ô Ò ¬ Ó ­��7§·àÖ�Ö áª¬�§ § ï6ÚÒ Ó ­e§�Ö� §�Öªú� Ú�ï3§ ¨�©U«�¬�­ØÖª¬Â§ ©�á Ò Ûª­~¨-á~§ ï6Ú

¸#®

Page 22: Introduction to Network Programming Jie Wang Department of

Ò Ó ­3Û*¨-á6­� Ú�ïRÛ�á¨�­~¨�© ¨ ÔÐÛ*¨-á6­ Ó Õ6ðªâ¬á ï6ÚÒ Ó ­ àªÔ¬ Ó Ú�ï·Ô6¬ Ӫ㠭6Þ ¨-åØàÖ Ö�᪬�§ § ï6Ú©�ÞÂàá·â Õªå��Hñ�ó�ôªõÂö�÷�ø��� Ú�ïRâ�Õªå 媬á å¨�á3Öªà­�à å�á¨�ð ­6Þ¬ §�¬á��¬á ï6Ú

ð~¬�ð%§�¬­ ��� ©�Þ~àá ï���e~§àÖ� ù� § Ò�� ¬ª¨�å � §�àÖ����O#Ú�ïò©6Ô¬�àáë§ ¨�©U«�àÖ�Ö á §U­�áÕ%©U­6ժ᪬ëï6Ú§�àÖsܤ§ Ò Ó �åªà-ð Ò Ô-ÙM�fD ô��Âö�þ6ø é� Ú�ïò§�¬�­ åªà�ð Ò Ô-Ùò­~¨Øö Ó ­�¬á Ó ¬�­ ï6Ú§�àÖsܤ§ Ò Ó � àÖ�Ö ásܤ§3��àÖ Ö á\�ëöUþ�D 5�5 ç6��D þ�q� Ú�ïò§�¬�­ò­6Þ¬ØÔ ¨�©àªÔ ö�æ àÖ�Ö áª¬�§ § ï6Ú

Ú�ïP+Þ¬�©U«e©6¨�ð ð*à Ó Ö�CªÔ Ò Ó ¬ àá ã Õ6ð~¬ Ó ­ å~¨-á Û�á¨�­~¨�© ¨ Ô�Û*¨-á6­ à Ó Öج.;6­ªáªà�©U­ Ó Õ6ðªâ¬áï Ò å ¨ Ó ¬ Ò §3§�Û¬�© Ò å Ò ¬Ö¾Ükè�­6Þ¬á�9 Ò §�¬� ¶Õ%§�¬�­ Þ¬ Ö�¬åªà-Õ*Ô-­3Û>¨-á6­���àªÔUÕ~¬ï6ÚÒ å � àá ã © ß ì�� �Û*¨-á ­��òà�­~¨ ÒO� àá ã �}�EìK�@�O

' ¬ªÔ�§¬ �Û*¨-á ­�� æ ç�è�éÂè�æ�è�ç é�

'Ò å � Û*¨-á6­ ß3ù#�§�à־ܤ§ Ò Ó ��Û*¨-á6­8��Þ�­~¨ Ó § ��� Õ%�§�Þ*¨-á6­r� Û*¨-á6­r�O

¬ªÔ�§�¬ �åÛªá Ò Ó ­�å � §U­�Öª¬á�á� N â~àÖ Û>¨-á6­ Ó Õ6ð�â¬6ájk*§�l ÓON �àá ã ���EìK���O¬.; Ò ­ � ì.�O

'Ú�ï¦A~à-Ûòé6+æ3­ªáªà Ó §�Û>¨-á6­ Ûªá¨-­~¨�©6¨ Ô Ó à-ð~¬�­*¨ Ûªá~¨�­~¨�©6¨�Ô Ó Õ6ð�â¬á¾Ü ï6ÚÒ å ������Ò Ó ­r� � Û�­�á6Û8� ã ¬­6Ûªá¨�­*¨UâªÙ Ó à-ð~¬ �EN ­>©�Û N �����j��� ù%� �åÛªá Ò Ó ­�å � §U­�Öª¬á�á� N ©à Ó Ó ¨�­3ð~à�Û8l N ­*©�Û@l N ­~¨4Ûªá¨-­~¨�©6¨ Ô Ó Õ ð�â¬á N �O¬.; Ò ­ � ì.�O

'Ú�ïP+ ᪬ à�­�¬ àا6¨�©U«�¬­eï Ú§�Öj� §6¨�©U«Â¬�­ � æ�ô6�ÂöUþ6ø é� Aõ è�+�|6� õ�é ç�ø�D.A� ¶Û�­ªáÛ%C ß-Û#�-Ûªá¨�­*¨��OÒ å � §�Ö ×3ù%� �åÛªá Ò Ó ­�å � §U­�Öª¬á�á� N § ¨�©U«�¬�­ ©�á�¬ à�­ Ò ¨ Ó å�à Ò Ô¬Ö#l ÓON �O¬.; Ò ­ � ì.�O

'Ú�ï4ñ Ò Ó ÖØà Ô ¨ª©�àªÔ·àÖ Ö áª¬Â§ §Ð­~¨4­ Þ¬ا ¨�©U«�¬�­ ï6ÚÒ å � â Ò Ó Ö � §�Ö� � §U­�á6Õ>©U­ §6¨�©�«�àÖ Ö áeï��:e~§�àÖ� A§ Ò:� ¬ª¨-å � §�àÖ@���·×òù%� �åÛªá Ò Ó ­�å � §U­�Öª¬á�á� N â Ò Ó Öòåªà Ò Ô¬6Ö%l ÓON ��¬.; Ò ­ � ì.�O

'

¸a¸

Page 23: Introduction to Network Programming Jie Wang Department of

Ú�ï�õ�Û¬�© Ò å�Ù § Ò�� ¬Ø¨-å3á�¬���Õ¬�§�­��Õ¬-Õ¬ëï6ÚÒ å � Ô Ò §U­�¬ Ó�� §�Ö� ü6ý6ø�þ@� ×·ù#� �åÛªá Ò Ó ­�å � §U­�Öª¬á�á� N Ô Ò §U­�¬ Ó åªà Ò Ô¬Ö%l ÓON �O¬.; Ò ­ � ì.�O

'Ú�ï¦A~à Ò Ó §�¬á���¬6áëÔ�¨ ¨UÛMC�C�Còà�© ©�¬-Ûª­ à Ó Ö Þ~à Ó ÖÂÔ¬3᪬���Õ¬�§U­>§òï Ú96Þ Ò Ô¬ � ì�� �

àªÔ¬ Ó � § Ò�� ¬�¨-å � ©�à6Ö@�OÒ å ��� §�Ö�ú2�òà�© ©�¬�Û�­ � §�Ö� � §U­�áÕ%©U­ §6¨�©U«�à6Ö Ö á ï���e*©�àÖ� geªàªÔ6¬ Ó ��� ×òù%� �åÛªá Ò Ó ­�å � §U­ªÖª¬á á� N à�© ©�¬�Û�­Øåªà Ò Ô¬6Ö%l ÓON ��¬.; Ò ­ � ì.�O

'� Ò § Ò ­*§)i�i�§�Ûªá Ò Ó ­�å � â Õªå� N é6Þ Ò § §�¬á���¬á·ÞÂà�§ ⬠¬ Ó ©6¨ Ó ­�à�©U­�¬6Öjk�Ö·­ Ò ð~¬.k~§�l ÓON

� Ò § Ò ­*§� 4� Ò § Ò ­>§)���>ì)� N Ü N / N §ÝÜ N �O§�¬ Ó Ö � §�Öªú äâ Õªå� E§U­�áÂÔ¬ Ó�� â Õªår�O +ù%�&©6Ô ¨ª§�¬ � §�Ö�ú%�O

''

Fµ�H¹ ��_Ä�Ø�(»+¼��N½¾�Ú�ï3C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�Cï4ô Ò Ô¬ Ó à�ð~¬�/¥� Ò § Ò ­¾Ü ©·C�C�CØ© Ô Ò ¬ Ó ­ §6¨�å6­�9�àá�¬ï æ6ÕªáÛ>¨�§�¬�/ à�Ô Ô ¨�©�à­�¬ àا6¨ª©U«�¬�­� A©6¨ Ó Ó ¬�©U­ ­~¨·à §¬á���¬á� kà Ó Ö3Ûªá Ò Ó ­ò­6Þ¬ Ó Õ6ðªâ¬áï ¨�åf� Ò § Ò ­*§ï�õÙ Ó ­Âà.;�/ � Ò § Ò ­<�/Þ*¨�§�­��<�/Û*¨-á6­��� ¨-áf� Ò § Ò ­��/Û*¨�á6­��ï Þ>¨�§U­vC�C�C Ó à�ð~¬ ¨-å àØ©6¨Uð�Û Õ�­�¬6áë¨ Ó 96Þ Ò ©�Þ §�¬á��¬á Ò §Ð¬.;�¬�©�Õ�­ Ò�Óªãï Û>¨-á6­vC�C�C §�¬á�� Ò ©�¬ Û*¨-á6­ Ó Õ6ðªâ¬áe§�¬á��¬á Ò §RÕ>§ Ò Óªãï4þ¨�­�¬�/ ñ~¨�­6Þëàá ã Õ6ð*¬ Ó ­*§3àá�¬ ¨UÛª­ Ò ¨ Ó à�ÔMÜAöUå Ó ¨ Þ*¨ª§U­ Ó à�ð~¬ Ò §ò§�Û¬�© Ò å Ò ¬Ö� ï ­ Þ¬ة Ô Ò ¬ Ó ­òÕ>§¬�§ N Ô ¨�©�àªÔ�Þ*¨�§U­ N Ò å Ó ¨ Ûªá~¨�­~¨�©6¨�Ô�Û*¨-á6­ Ò §ï §UÛ¬�© Ò å Ò ¬Ö� Q­6Þ~¬Ø©6Ô Ò ¬ Ó ­òÕ>§�¬Â§ ­6Þ~¬ Öª¬6åªà-Õ*Ô�­ ã*Ò ��¬ Ó âªÙ3æ ç�è�é�èæ�è�ç é¾Üï.C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�Cï Ú

Ñ*Ò Ó ©6ÔUÕªÖª¬Øק�Ù~§6Ú�­ªÙÛ¬�§ÝÜCÞÂßÑ*Ò Ó ©6ÔUÕªÖª¬Øק�Ù~§6Ú�§ ¨�©U«�¬�­ÉÜ/ÞÂßÑ*Ò Ó ©6ÔUÕªÖª¬Ø× Ó ¬�­ Ò Ó ¬�­~Ú Ò Ó Ü/ÞÂßÑ*Ò Ó ©6ÔUÕªÖª¬Ø×�àáÛÂàªÚ Ò Ó ¬�­¾ÜCÞÂßÑ*Ò Ó ©6ÔUÕªÖª¬Ø× Ó ¬�­�ÖâKÜ/ÞÂß

¸��

Page 24: Introduction to Network Programming Jie Wang Department of

Ñ*Ò Ó ©6ÔUÕªÖª¬ØקU­�Ö Ò ¨YÜ/ÞÂßÑ*Ò Ó ©6ÔUÕªÖª¬ØקU­�á Ò Ó�ã Ü/ÞÂß

Ñ Öª¬6å Ò Ó ¬3æ çÂè�é�è�æ�èç éëê*ìUí6î Ú�ï4Ö�¬åªà-Õ*Ô-­3Û�á¨�­~¨�© ¨ Ô�Û*¨-á6­ Ó Õ6ðªâ¬áeï6ÚÑ Öª¬6å Ò Ó ¬òñ�óÂôªõÂö-÷�ø ìUù�úû

©�ÞÂà6áëÔ�¨�©�àªÔUÞ>¨�§U­����v� N Ô ¨�©àªÔUÞ*¨�§�­ N #Ú�ïÐÖª¬å�à-Õ*Ô�­òÞ*¨�§�­ Ó à-ð~¬Øï Ú

Ò Ó ­·ð~à Ò�Ó���Ò Ó ­ à6á ã ©� ©�ÞÂàáeï�à6á ã ��������

§U­�áÕ>©�­3Þ>¨�§U­�¬ Ó ­eïUÛ�­�áÞ� Ú�ïRÛ>¨ Ò Ó ­�¬6á3­*¨ à�Þ*¨�§U­ò­�à-â>Ô¬3¬ Ó ­�á Ù ï6Ú§U­�áÕ>©�­3Û�á¨�­~¨¬ Ó ­ ï�Û�­�áÛ� Ú�ïRÛ>¨ Ò Ó ­�¬6á3­*¨ à�Ûªá¨�­*¨�©6¨ Ô�­�à-â>Ô¬ ¬ Ó ­�á Ù ï6Ú§U­�áÕ>©�­e§ ¨�©U«�àÖ�Ö á�� Ò Ó §àÖ� Ú�ï3§�­�áÕ>©U­ ժ᪬3­~¨4Þ*¨ Ô-Ö §�¬á���¬á��7§·àÖ�Ö áª¬�§ § ï6ÚÒ Ó ­e§�Ö� Ú�ï3§ ¨�©U«�¬�­ØÖª¬Â§ ©�á Ò Ûª­~¨-á ï6ÚÒ Ó ­3Û*¨-á6­� Ú�ïRÛ�á¨�­~¨�© ¨ ÔÐÛ*¨-á6­ Ó Õ6ðªâ¬á ï6Ú©�ÞÂàá ï�Þ*¨�§�­� Ú�ïRÛ>¨ Ò Ó ­�¬6á3­*¨ Þ*¨ª§U­ Ó à�ð~¬ ï6ÚÒ Ó ­ Ó Ú�ï Ó Õ6ð�âÂ¬á ¨-å ©�ÞÂà6áªà�©U­�¬6á~§ ᪬ àÖ ï6Ú©�ÞÂàá·â Õªå��Hñ�ó�ôªõÂö�÷�ø��� Ú�ïRâ�Õªå 媬á å¨�á3Öªà­�à å�á¨�ð ­6Þ¬ §�¬á��¬á ï6Ú

ð~¬�ð%§�¬­ ��� ©�ÞÂàáeï��:e~§�àÖ� �ù� § Ò�� ¬ª¨-å � §àÖ@���OAÚªï3©6Ô6¬ àáe§6¨�©U«ÂàÖ Ö áe§U­�á6Õ>©U­6Õªá�¬ ï6Ú§�àÖsܤ§ Ò Ó �åªà-ð Ò Ô-ÙM�fD ô��Âö�þ6ø é� Úªï3§�¬­òåªà-ð Ò Ô-Ùò­~¨Øö Ó ­�¬6á Ó ¬�­ ï6Ú

Ú�ïP+Þ¬�©U«e©6¨�ð ð*à Ó Ö�CªÔ Ò Ó ¬ àá ã Õ6ð~¬ Ó ­ å~¨-á Û�á¨�­~¨�© ¨ Ô�Û*¨-á6­ à Ó Öج.;6­ªáªà�©U­ïRÛ>¨-á6­ Ó Õ6ð�â¬6á Ò å ¨ Ó ¬ Ò §ò§�Û© Ò å Ò ¬6ÖsÜQè�­6Þ¬á�9 Ò §�¬� ¶Õ%§�¬�­ Þ¬3Öª¬åªà-Õ>Ô�­ïRÛ>¨-á6­j��àªÔUÕ¬ ã*Ò ��¬ Ó âªÙë© ¨ Ó §U­�à Ó ­ æ ç�è�é�èé�q æ øï6Ú

Û*¨-á6­�� æ�ç�è�é�è�æÂè�ç é�Þ*¨�§U­��ØÔ�¨�©�àªÔUÞ>¨�§U­�§�9 Ò ­*©UÞ � àá ã ©�� �©�à�§�¬eìO/âªáª¬�à�«�

©�à�§�¬òú�/Û*¨-á ­��òà�­~¨ ÒO� àá ã �}�EìK�@�O¡Ú�ï ã ¬�­·Û>¨-á6­ Ó Õ6ð�â¬6á ï ÚÒ å � Û*¨-á ­ ×��òù%� �åÛªá Ò Ó ­�å � §U­ªÖª¬á á� N âÂàÖ3Û*¨-á ­ Ó Õ ð�â¬á�k~§�l ÓON �àá ã �}�EìK�@�O¬.; Ò ­ � ì.�O

'âªáª¬�à�«�

©�à�§�¬3î�/Û*¨-á ­��òà�­~¨ ÒO� àá ã �}��ú.�@�O¡Ú�ï ã ¬�­·Û>¨-á6­ Ó Õ6ð�â¬6á ï ÚÒ å � Û*¨-á ­ ×��òù%� �

¸;¯

Page 25: Introduction to Network Programming Jie Wang Department of

åÛªá Ò Ó ­�å � §U­ªÖª¬á á� N âÂàÖ3Û*¨-á ­ Ó Õ ð�â¬á�k~§�l ÓON �àá ã �}��ú.�@�O¬.; Ò ­ � ì.�O

'Þ*¨�§�­��òàá ã �}�EìK�� Ú�ï ã ¬�­·Þ>¨�§U­ Ó à�ð~¬ëï6Úâªáª¬�à�«�

Öª¬åªà-Õ>Ô�­�/åÛªá Ò Ó ­�å � §U­�Öª¬á�á� N Õ%§�à ã ¬�/�� Ò § Ò ­<�/Þ*¨�§U­��/Û>¨-á6­����#l ÓON �Oâªáª¬�à�«�

'§�àÖsܤ§ Ò Ó �-Û*¨�á6­M��Þª­~¨ Ó § ��� Õ%��§�Þ>¨-á6­�� Û>¨-á6­��OÚ�ïP+¨ Ó ��¬á ­3Þ>¨�§U­ Ó à�ð~¬·­~¨ ¬���Õ Ò �ÂàªÔ¬ Ó ­ öUæØàÖ�Ö áª¬�§ §·à Ó Öë©6¨�ÛªÙò­~¨3§�à6ÖsÜ ï6ÚÛ�­�áÞv� ã ¬�­6Þ*¨�§�­6âªÙ Ó à-ð~¬ � Þ*¨ª§U­��OÒ å ����� ©�ÞÂà6á ï�� Û�­�áÞ �P���·þ�óÂý ý@� �åÛªá Ò Ó ­�å � §U­�Öª¬á�á� N-Ò�Ó ��àªÔ Ò Ö·Þ>¨�§U­�/¥k~§�l ÓON oÞ*¨�§U­r�O¬.; Ò ­ � ì.�O

'ð~¬�ð%©�Û�Ù � e~§�à6Ösܤ§ Ò Ó � àÖ Ö á� �Û�­ªáÞ%C ß-Þ#� àÖ Ö á� ¶Û�­�áÞ%C�ß-Þ%�ªÔ¬ Ӫ㠭6Þr��Ú�ï¦A~à-Ûòé6+æ3­ªáªà Ó §�Û>¨-á6­ Ûªá¨-­~¨�©6¨ Ô Ó à-ð~¬�­*¨ Ûªá~¨�­~¨�©6¨�Ô Ó Õ6ð�â¬á¾Ü ï6Ú

Ò å ������Ò Ó ­r� � Û�­�á6Û8� ã ¬­6Ûªá¨�­*¨UâªÙ Ó à-ð~¬ �EN ­>©�Û N �����j��� ù%� �åÛªá Ò Ó ­�å � §U­�Öª¬á�á� N ©à Ó Ó ¨�­3ð~à�Û8l N ­*©�Û@l N ­~¨4Ûªá¨-­~¨�©6¨ Ô Ó Õ ð�â¬á N �O¬.; Ò ­ � ì.�O

'Ú�ïP+ ᪬ à�­�¬ àا6¨�©U«�¬­eï Ú§�Öj� §6¨�©U«Â¬�­ � æ�ô6�ÂöUþ6ø é� Aõ è�+�|6� õ�é ç�ø�D.A� ¶Û�­ªáÛ%C ß-Û#�-Ûªá¨�­*¨��OÒ å � §�Ö ×3ù%� �åÛªá Ò Ó ­�å � §U­�Öª¬á�á� N § ¨�©U«�¬�­ ©�á�¬ à�­ Ò ¨ Ó å�à Ò Ô¬Ö#l ÓON �O¬.; Ò ­ � ì.�O

'Ú�ïP+¨ Ó Ó ¬�©�­ò­ Þ¬ا ¨�©U«�¬�­ ­~¨Ð­6Þ¬ §�Û© Ò å Ò ¬6Ö §¬á���¬áeï6ÚÒ å � ©6¨ Ó Ó ¬Â©U­ � §�Ö� � §U­�áÕ%©U­ §6¨�©U«�à6Ö Ö á ï���e*§�àÖ� A§ Ò�� ¬ª¨-å � §àÖ@���·×òù%� �åÛªá Ò Ó ­�å � §U­�Öª¬á�á� N © ¨ Ó Ó ¬�©�­ å�à Ò Ô¬Ö#l ÓON �O¬.; Ò ­ � ì.�O

'Ú�ï ç¬-Û¬ à�­Â¬ÖÂÔ-ÙØ᪬�àÖ3Ö�à�­�à·å á¨�ð §6¨�©�«�¬�­ à Ó Öj9�á Ò ­Â¬�­~¨4Õ>§�¬6á��7§ § ©�᪬�¬ Ó ï6ÚÓ �3᪬�©�� � §�Ö� oâ Õªå� A§ Ò:� ¬ª¨-å � â Õªå@�O ù#�O96Þ Ò Ô¬ �HÓ ß3ù#� �

¸a±

Page 26: Introduction to Network Programming Jie Wang Department of

9�á Ò ­�¬ � ì= ¶â�Õªå� Ó �OÓ �·áª¬Â©�� � §�Ö� â�Õªå� § Ò�� ¬ª¨�å � â Õªå��O +ù%�O

'Ú�ïP+ÂÔ ¨�§�¬ ­6Þ¬ §6¨�©U«Â¬�­ ï6Ú©6Ô ¨�§�¬ � §�Ö@�OÚ�ï é¬á�ð Ò Ó à�­�¬·­6Þ¬ ©6Ô Ò ¬ Ó ­ò۪ᨠã á�à�ð ã áªà�©�¬6åÕ*Ô Ô-Ù ï Ú

᪬�­6Õªá Ó ù'

Fµ��! �K�ÂÀ~�(Æ�Ç ���(ÀÂÁµ¼1���ëÆ�½ÄÈ ÇeÏ?»ä�~¼1Ã?»��¸ª0��¬�­Ð��Æ�»+»���«h�qscUfolU�ac�qgcUd5egd�m�xad�m1��z;�od�eGfavUh���favUd5~�zohih�qsf{qscUd ÙnàPÕ[á jUmgf4~�d�yUlUmgd5qsf{qsmgzovUeg�£tiqwy`zPq�zI½PqscUd5~�hitud�v�q~�f4yUdÌt�qsd�mgz;qsd�e}qsfEmnd�~�d�tixodÌy`z;q�z#���}lUmntuvU��d�zo~�cÑtiqgd�mszPqstufov'½7qgcUd�~�hitud�vKq}~�zohihueSqgcUd´� à�Ø�� jUmgf4~�d�yUlUmndqsfEfo»Iq�zotivNy`z;qsz6{/qgcUd�tiqgd�mgz;qstifav�e�qsfajUeS�{cUd�v+qscIdÌ~�hutid�v�q}fo»Iq�zotivUe}z;v+d�vUy#¢^fop¢^�Uhud�~�favUyItiqstifav¡� tW�°do�z�~�falUv�q�fopBÊ�d�mgfK�Ä�

Fµ�GF º#�sÇ Ã?¼1»1¼+½ÄÅ Æ�½ÄÈ�À*Ï?½?½?¼+½ÄÅ ÃÄÀ~�����(����ªd���z��ÍlUend�qscUd�p fahuhif9�{tuvU�£~�fa�£�@zovUy�hituvUd�qsf@~�fa�£jUtihud¹� Ò § Ò ­¾Ü ©�fav��#lIvrÅ��7�Oº�ì é ñ¼óúþG]%»��YPÿ & ù Z @Íø°¼¾½4íU�<Z�íE��ñ ê)ë ìw÷�"¿¨ ëÁÀ Z À ½�C�Ô Ó §6ÔfCªÔ�§6¨ª©U«�¬�­#©{]UY[ZÌì<ñrí«ì<Z4Z4ô<Z4ô5�Gb�cUd�~�fa�@jItuhutivU�fop�� Ò § Ò ­�ÖsÜ ©£tie�egtu�£tuhuzom��

ã © ©P� Ò § Ò ­¾Ü¤©fCªÔ Ó §6ÔfCªÔ�§6¨�©�«�¬�­��v��ad�vId�msz;hW½o��d�~�zovÌ~�mgd�z;qsd{z�O Ô6,�à�P¼Þ à �Uhud�qgf���z;�od�qgcUd�~�fa�£jUtihutuvI�SjUmnf#~�d�eneJd�zoentud�m�½aj`zom�qsti~�lUhuzomgh���{cUd�v�egd�xad�mszoh·�`hid�e�zomgd�tivKxofahixod�y'�5È�foqsd-®B´Segd�qscId�qszo»��od��Ep fam�tuvUyId�v�qstifav'�Ñ å Ò Ô¬ Ó à�ð~¬�/�AÂà«�¬å Ò Ô6¬+�+j� ã © ©ý*öUñ�õ2�jCªÔ Ó § ÔfC�Ô�§6¨�©U«Â¬�­àªÔ Ô/� Ò § Ò ­�/�� Ò § Ò ­¾Ü+¨

ã ©�© - � +6ô ý�D�B�õ%�fCª¨2- , � Ò § Ò ­¾Ü¤¨j- � ý*öUñªõ#�� Ò § Ò ­�Ö�/¥� Ò § Ò ­�Ösܤ¨

ã ©�© - � +6ô ý�D�B�õ%�fCª¨2- , � Ò § Ò ­�Ö¾Ü+¨�- � ý*öUñ�õ%�� Ò § Ò ­¾Ü+¨�/¥� Ò § Ò ­¾Ü ©� Ò § Ò ­�ÖsÜ+¨/¥� Ò § Ò ­ªÖsܤ©

¸o¿

Page 27: Introduction to Network Programming Jie Wang Department of

Ñ25 è þ�è�é 5 ø�ý6ø é ø é�o%ö-õ ý>öUþ6øvC�C4ð*à�«�¬·Öª¬-Û¬ Ó Ö~§ ¨ ÓeÒ ­¾ÜbGf�~�fo�@jUtihud;½#q��4j7d�qscId�p fohuhuf9�{tivU��hituvUd�e��ð~à�«Â¬·� Ò § Ò ­ð~à�«Â¬·� Ò § Ò ­�ÖbGf¡mglIvÎqgcUd�zojUjIhutu~�z;qstifav'½{fav�qgcUd�egd�m�xad�m��°e�~�fa�@jIlIqsd�mÑ�)zoeneglU�£d+qsc`z;q�qscUd�cUfae�q�v`zo�£d+tue

cUfae�q�®a�°~�e��ÆlI�@h)�Æd�yUlr��½`q��4j¼d� Ò § Ò ­�Ö û�î�ú*ìLe

�Sd�mgd�¯6��¸#®�tie{z£j¼fam�q{v4lI��»7d�m���Å}vEqscUd�~�hitud�vKq��Æe{~�fa�@jIlIqsd�m�½Iq��4j¼d� Ò § Ò ­òÞ*¨�§U­ ìNܤ© §ÝÜ/Õ ð>ÔMÜ�¬Ö6Õeû�î�ú>ì�^pGqgcUd�egd�m�xad�m}zovUyEqgcUd�~�hutid�v�q�zomnd�mnlUvUvUtivU��favEqscUd�egzo�@d��@zo~�cUtivUdo½Iq��4j¼d� Ò § Ò ­�Ö í6ÿ�7�*2e� Ò § Ò ­ëí6ÿ�7�*

�ªd��@z���zohiegfÌegti�@jIhi�RlIegd�qscUd�yUd�pHzolUh�q{j7fam�q{vKlU��»¼d�m{»��Rq��4jUtuvU�� Ò § Ò ­�Ö�e� Ò § Ò ­

 à bYgih æÅħã[b�r ã�u ´ â d â^] _�æ�äRå g�äkj aEæ?bMc£æ?b debJã�f[b�g�h ç

SÉ�+� Æò�¼1½ÄÅ �����*�s������Æ�»1»���¼+½�Æ ÃÄÀ~��Å�À~Æ�Ç�Cti�alUmgd�®�tuhuhilUenqgmsz;qgd�e�z�egd�|KlUd�vU~�d�fopwen�4enqgd��û~�zohuhiek�@zoyUd}»��EzÌ~�hutud�v�q{zovUy�zÌegd�mnxod�m{lUegtivU�Ìb�¤k�G�

SÉ�H¹ ��_Ä�v�RºÇ" �(»1¼1�N½¾��ÈEÀ~Æ�Ç �x]#��À~���lUtihuyUtivU��~�hutid�v�q�enfop q���zomgdEtie�lUenl`zohuh���d�zoentud�m�qsc`z;vÏ»UlUtihuyUtivU��end�mnxod�mÌenfop q��kz;mgdo����d�~�z;lUegdEb�¤k�c`zovIyUhud�e�z;huh«mnd�hitÂzo»Utihut�q���zovUy�É`f9� ~�fav�qsmgfoh�jUmgfa»Ihud��£e�½�»UlUtihuyUtivU�¡z"~�hitud�v�qRqgc`z;q�lUend�eÍb�¤k�ûtueqscId@�£faenq�e�qsmgzotu�ac�qnp famn��zomgy�fopkzohuhGvUd�q���famn�ÑjImgfa�amgzo�£�@tivU��q�z;eg�Ke��£� b�¤k� ~�hutid�v�q�p fahihuf9�{e}qscUdp fahihuf9�{tuvU��p mszo�£d���famg�@qsfÌp famg�§z£~�favUvUd�~�qgtufavEqsf@zÌegd�mnxad�m«z;vUy�~�fa�£��lUvUti~�z;qgd«�{tiqgc�t�q��®a���CtivUyEqscUd��¦��zoyIyUmgd�egeSzovUyÍjUmgfoqgf#~�fah'j¼famnq{vKlU��»7d�mSfopwqscId�end�m�xad�m��{tiqgc��{t�qs~�cÍ~�fa�£��lUvIt�¢~�z;qstifav�tue�yUd�egtumnd�y'�

¸#���Shuhuf4~�zPqsd�zÌegf4~��od�q���I���#j¼d�~�tip ��qscUz;qSqgcUd�~�favUvUd�~�qstifav�vId�d�yIe�zovNzomn»Utiqgmszom��a½rlUvKlUend�y�jUmgf;qsf4~�fah<j¼famnqSfav�qgcUd�hif#~�zoh�@zo~�cUtivUdo½`z;vUy�z;huhuf9�©b�¤k��qsf�~�cUf4faend�favIdo�

¸a²

Page 28: Introduction to Network Programming Jie Wang Department of

Client Side Server Side

socket socket

connect bind

write

read

close

listen

accept

read

write

close

�Cti�alUmgd£®®k�SvNd�ÃIzo�£jUhid�end�|KlUd�vI~�dÌfopJenf#~��;d�q��«�J��e��4enqsd�� ~�zohuhie{��zoyId�»���z@~�hitud�vKq«zovUy�egd�m�xad�mlUentuvU��b�¤k�G�Cb�cId�egd�mnxod�m�mnlUvUe�p fomgd�xod�m��Í�^q��kz;tiqse�p fam�z�vUd�� ~�favIvUd�~�qstufovúfavÑqscUd£��d�huh�¢^�KvUf9�{vj¼famnq�½1zo~�~�d�j#qse�qgcUd�~�favUvUd�~�qgtufav'½Gtuv�qsd�mszo~�qse��{tiqgcªqscId�~�hitud�vKq�½Cz;vUyªqgcUd�vÏ~�hufaend�e�qscUd£~�favIvUd�~�qstufovfavUd�»���favUd;�

¸��

Page 29: Introduction to Network Programming Jie Wang Department of

¯U��¤�favIvUd�~�qSqgcUd�egf4~��od�q�qsfÌqgcUd�egd�m�xad�m��±#��¤�fa�£��lUvItu~�zPqsdN�{tiqgc©qgcUd�egd�mnxad�m�lUentuvU�"qgcUdúz;jUjUhuti~�z;qgtufav4¢�hud�xad�hSjUmnfoqsf4~�foh£� qscItueElUenl`zohuh��tivKxofahixod�e�egd�vUyUtuvI�£mnd�|KlUd�enqse«zovUy�z��kzot�qstivU�Ìmgd�jUhutid�e��Ä�

¿I��¤�hifaegd�qscId�~�favUvUd�~�qgtufav'�

SÉ��! ��_Ä�v�RºÇ" �ª�NÀÂÁs�(À�ÈEÀ~Æ�Ç �x]#��À~��Jmgd�egd�v�qgd�yÌ»¼d�huf9�ªtue'qgcUdJp mszo�£d���famg�Sp fam<zov�tiqsd�msz;qgtixodJegd�m�xad�mCzo~�~�d�egegd�y�x4tÂzkqscUdBb�¤k�N~�favUvUd�~�qstifav#¢famntud�v�qgd�y�qsmsz;vUegj¼famnq��

®a��¤�mnd�z;qgd�zÌegf4~��od�q}z;vUy�»ItuvUyEqsfÌqgcUd���d�huh�¢^�KvUf9�{v�zoyIyUmgd�ege{p famkqscUd�end�mnx4ti~�d�»7d�tuvU��foË7d�mnd�y'�¸#�{�JhÂz;~�d�qscUd�enf#~��;d�qStuv�j`zoenegtixod��@f4yUdo½I��zo�KtivU�Ìtiq{mnd�zoyI��p fam�lUegd�»���z�egd�m�xad�m���I���S~�~�d�jIq�qscUd�vUd�Ã4q�~�fovUvUd�~�qstifav+mgd�|4lId�enq�p mnfa��qgcUd�enf#~��;d�q�½wzovIy+fa»Iq�z;tuv+zRvUd�� enf#~��;d�q�p famqgcUd�~�favUvId�~�qgtufav/�

¯U�ÊH{d�j¼d�z;qgd�yUh���mgd�zoy�z�mgd�|KlUd�e�qSp mnfa�§qscId�~�hutud�v�q�½Ip famn��lUhuz;qsd�zÌmgd�egj¼favUendo½7zovUyÍegd�vIy+zÌmgd�jIhi�»`z;~��RqsfÌqscUd�~�hutud�v�q�zo~�~�famgyUtivU�ÌqsfÌqscId�z;jUjUhuti~�z;qgtufav�jUmgfoqgf#~�fahW�

±#�É�ÎcUd�vÑ�UvUtuencUd�y+�{tiqgcÑzRj`zomnqgtu~�lUhÂzomS~�hitud�v�q�½'~�hifaegd�qgcUdÌ~�favIvUd�~�qstufovªz;vUy+mgd�qslUmnvÑqgfEenqsd�jA�qgf@z;~�~�d�jIq«z�vId��¨~�favUvUd�~�qstifav'�

Ë aEãqp¾rÌæ«å Ì d t aXÌÍçGå1æ?h â gi] ]�ç

�ªd+jUmgf9x4tuyUd+tiv�qscUtieRegd�~�qgtufavÎzÏ»Umntud�p�enlU�£��zom���f;p�qgcUd+en�4e�qsd�� p lUvU~�qgtufavIeEmgd�huz;qsd�y�qsf¡���#�egf4~��od�qse��Ò´�vUhud�ege£foqscId�mn�{tiegdÍenqsz;qsd�y'½�zohihkp lUvU~�qgtufavIe£~�zov�»¼dÍlUegd�y�tuv�»7f;qsc�~�hutid�v�q@zovUy�egd�m�xad�mjUmnfa�amsz;�@e��¡ÈSfoqgd�qgc`z;q��{cUd�v�zov¡d�mnmgfam�f4~�~�lUmge�tuv¡d�zo~�c�fop�qscId�p fohuhuf9�{tivU�Nen�4e�qsd�� ~�zohuhie�½JqscUd�ahifa»`zohax;zomntÂzo»Uhids¬6á á Ó ¨«�{tihuh�~�fav�q�zotiv�tuv#p famg�@z;qstifav�tuvIyUtu~�z;qstivU���{c`z;qCq��4j¼d�fopUd�mgmnfamCcUzoeGf4~�~�lUmgmnd�y'��`fam��@famnd�tivIp famg�@z;qgtufav+favúen�4enqgd�� ~�zohuhie�jImgf9x4tuyUd�yÏ»��ªqgcUdR���#� �#f#~��;d�qÌ�«�J��½GqscId�mgd�zoyUd�m�tuemgd�p d�mnmgd�yÍqsf��«jIj7d�vUyUt�Ã+®�tivª¾Æ¤��I­o¿;ÁW�

YK�+� ���&¬�Í.���b�cUd Ù+�4Ø-,sà� e��#e�qsd�� ~�zohih'~�mnd�z;qgd�eSz�yId�eg~�mgtijIqsfam�p fam�lIegd�tuvEvUd�q���famn��~�fa�£��lUvUti~�z;qgtufav/�

Î �<'·þJZ*® Ò Ó ­e§6¨�©�«�¬�­ ��Ò�Ó ­ åªà�ð Ò Ô-Ù� Ò Ó ­ò­�ÙÛ¬ Ò�Ó ­·Û�á¨�­~¨�© ¨ Ô��Î Z "�Z*®�᪬­*©6¨-Öª¬j�ë§6¨�©U«Â¬�­ � åªà-ð Ò Ô-Ù� �­�ÙÛ¬� Ûªá¨-­~¨�©6¨ Ô6�OÎ öEZ�"�_aY ë þ<í ë ñ¼ì�®Jb�cUd Ù1�#Ø�,�à� e��4enqsd�� ~�zohih'~�mnd�z;qgd�eSz£enf#~��;d�qSlUegd�y�p fam{vUd�q���famn�E~�fa�£��lUvIt�¢~�z;qstifav'½`zovIy�mnd�qslImgvUe�zovÍtuv�qsd��ad�m�yId�eg~�mgtijIqsfam�p famkqgc`z;q{enf#~��;d�q��

¸o­

Page 30: Introduction to Network Programming Jie Wang Department of

Î ý Y[ò¼ÿGóªZ#ì¼íU"�®åªà�ð Ò Ô-Ù��©�Jmnfoqsf4~�fah�fam�z;yUyUmgd�ege�pHz;�@tihi�¡�¦æ�ô6�ÂöUþ6ø éúp fam�b�¤k��¥P�¦�G½$D ô��ÂöUþ ø éú~�zov"z;huegf�»7dlUend�yr�Ä�­�ÙÛ¬-��b5�4j¼d�fopGegd�mnx4tu~�dR�/õ è�+.|6� õ�é�ç ø�D.AÍp fam�b�¤k��fam!õ è�+�|6� 5 Bç�D.AÍp fam{´S�����Ä�Ûªá¨�­*¨�©6¨ Ô��©�Jmgfoqgf#~�fah1vKlU��»¼d�m}qgfRlUendÌfam}¹�qgfRmgd�|4lId�enq�qgcUd�yUd�pHzolUhiqSp fam}zR�otixad�vNpHzo�£tuhi�zovIyÍq��4j¼do�

Î VRZ�í[ÿ<YPì�_añ·ô<Z*®�zÌenf#~��;d�q}yId�eg~�mgtijIqsfam�fom~Ï�®�tipCzov�d�mnmgfam{c`zoe{f4~�~�lUmgmnd�y'�

YK�H¹ ¬����x�#��¬��b�cUd Ø��#Õ�Õ[à�Ø� en�4enqgd���~�zohuh#~�favIvUd�~�qseS�)z}~�hutud�v�qJjUmgfo�amszo���<qgf�z}mgd��£foqgdkj7d�d�m��Hz}egd�m�xad�m�jUmnfa�amgzo�R�Ä�

Î �<'·þJZ*® Ò Ó ­e©6¨ Ó�Ó ¬�©U­ ��Ò Ó ­ §6¨�©�«�¬�­� #§6¨ª©U«�àÖ Ö�á�� Ò Ó ï�à6Ö Ö á� Ò Ó ­ àÖ Ö�áÂÔ¬ Ó �Î Z "�Z*®�᪬­*©6¨-Öª¬j�ë©6¨ Ó Ó ¬�©U­ � § ¨�©U«�¬�­� àÖ Ö á� kà6Ö Ö áÂÔ¬ Ó �OÎ öEZ�"�_aY ë þ<í ë ñ¼ì�®'b�cId Ø��IÕ�Õ[à�Ø� p lUvU~�qgtufav�zohihuf9�{e'qscId�~�zohuhid�m'qsf{enj7d�~�tip ��qgcUd5mgd��£foqgdJd�vUyUj¼fativKqzoyIyUmgd�ege�p fom�z�jUmgd�x4tufalUenhi�Ì~�mgd�z;qsd�yRegf4~��od�q��B�^p/qgcUdSenf#~��;d�q�lUegd�e�b�¤k�G½ Ø��#Õ�Õ[à�Ø� lIegd�e5qscUdµ�P¢��z��Ec`zovUyIegc`zo�;d�qsfÌd�e�q�zo»Ihutuenc�z�~�fovUvUd�~�qstifav={Ut�p·qscUd�enf#~��;d�q�lUegd�e�´«���G½ Ø��IÕ�Õ[à�Ø� egj¼d�~�ti�`d�eqgcUd�mgd��£foqgd�d�vUyUj¼fativKq�»Ul#qSyIf#d�e�vIfoq�qsmgzovUenp d�m�zov��Ey`z;qszo�amsz;�@ekqgf£t�q��

Î ý Y[ò¼ÿGóªZ#ì¼íU"�®§6¨�©U«Â¬�­�Îb�cId�yUd�eg~�mntujIqgfam{fopCz�enf#~��;d�q��àÖ Ö á��b�cUd�mgd��£foqgd��@zo~�cUtivUd�d�vIyUj7fotuv�q��àÖ Ö á~Ô¬ Ó �Îb�cUd�hud�vU�oqsc�fopwqscId�end�~�favUyNz;mg�alU�£d�v�q��

Î VRZ�í[ÿ<YPì�_añ·ô<Z*®�¹Ìt�pCenlU~�~�d�ege�p lUhGzovUyhÏ�®�tipGzov�d�mnmgfam{c`z;e�f4~�~�lUmgmnd�y'�

YK��! Ð�ªÒÑÓ�c�b�cUd Ó �/. ¦à e��#e�qsd���~�zohuh/egd�vIyUeSfolIqs�afotuvU�Ìy`zPq�z�zo~�mnfaegeSzÌ~�favIvUd�~�qstufov'�

Î �<'·þJZ*® Ò Ó ­j9�á Ò ­�¬ ��Ò Ó ­ §6¨�©U«�¬­� A©�ÞÂàá ï�â Õªå� Ò�Ó ­·â�ÕªåÂÔ¬ Ó �Î Z "�Z*®�᪬­*©6¨-Öª¬j�f9�á Ò ­Â¬ � §6¨�©�«�¬�­� Qâ�Õªå� â ÕªåÂÔ¬ Ó �OÎ öEZ�"�_aY ë þ<í ë ñ¼ì�®Sb�cUd Ó ��. ¦à e��#e�qsd�� ~�zohih1j7d�mg�£tiqge}zovÑzojUjIhutu~�z;qstifav�qgfRqsmsz;vUenp d�m�y`z;q�zRqgf�zmnd��£foqsd��@zo~�cUtivUdo�

Î ý Y[ò¼ÿGóªZ#ì¼íU"�®§6¨�©U«Â¬�­�Î�Ðegf4~��od�q«yId�eg~�mgtijIqsfam{~�mgd�zPqsd�yÍ»��EqscUd Ù1�#Ø�,�à� ~�zohihW��^pJ�ofalN�kz;vKqSqsfRyItumgd�~�qghi��yUtiegjUhuz9��qgcUd�y`zPq�z�favÍqscUd�~�hutid�v�q �°e«en~�mnd�d�v/½'lUegd�qscUd�xoz;hulUd£®�p famqgcUtue5zomn�alU�£d�v�q��1vUzo�@d�hi�o½4lIegdÊ9ªá Ò ­�¬ � ì= oâ Õªå� oâ Õªå~Ô¬ Ó �K�5�SvUfoqgcUd�m�zohiqgd�v`zPqstixod�tueJqsf�lUendqgcUd�p fahuhif[�{tivU��end�|KlUd�vI~�d�®

�a¹

Page 31: Introduction to Network Programming Jie Wang Department of

9�á Ò ­Â¬ � §6¨�©�«�¬�­� Qâ�Õªå� â ÕªåÂÔ¬ Ó �OåÛ Õ�­>§ � â Õªå� #§U­�Ö¨UÕª­��Oâ Õªå��Îb�cUd�zoyUyUmnd�eneSfopCzÌ»UlIË7d�m�~�fav�qszotuvUtivU�Ìy`z;qszI�â ÕªåÂÔ6¬ Ó �Îb�cId�vKlU��»¼d�m{fopG»��4qgd�e�tuv´â Õªå¼�

Î VRZ�í[ÿ<YPìÏ_añ·ô<Z*®CqscUd�vKlU��»¼d�mBfop/»K�Kqgd�e�qgmszovIenp d�mnmgd�y�tip7eglI~�~�d�ege�p lUh·zovUy�Ï�®St�p·zov£d�mnmgfamBc`zoef4~�~�lUmgmnd�y'�

YK�GF ª0�6Ô#�b�cUd�� à�ÔPá en�4enqgd�� ~�z;huh·zo~�|KlUtumnd�e{tuvU~�fa�£tuvU�Ìy`zPq�z�p mgfa�§zÌ~�favUvId�~�qgtufav/�

Î �<'·þJZ*® Ò Ó ­ á�¬ àÖ ��Ò�Ó ­ §6¨�©U«�¬­� A©�ÞÂàá ï�â Õªå�å� Ò Ó ­3â ÕªåÂÔ¬ Ó �Î Z "�Z*®�᪬­*©6¨-Öª¬j�3᪬ àÖ � §6¨�©U«Â¬�­� ¶â Õªå�å� oâ ÕªåÂÔ¬ Ó �OÎ öEZ�"�_aY ë þ<í ë ñ¼ì�®B¤�hitud�vKqge�fam{egd�mnxad�mge�lUegd�� à�ÔPá qsf�fa»IqszotuvEtivUjUlIq{p mnfa�ûzÌegf4~��od�q��

Î ý Y[ò¼ÿGóªZ#ì¼íU"�®§6¨�©U«Â¬�­�Î�Ðegf4~��od�q«yId�eg~�mgtijIqsfam{~�mgd�zPqsd�yÍ»��EqscUd Ù1�#Ø�,�à� p lUvU~�qgtufav/�â Õªå å��� j¼fativKqgd�mkqgf@z;v�z;mgmsz��Ef;pC~�c`z;mszo~�qsd�mne�� tW�°do��½`zÌenqgmgtuvI�K��qsf£cUfahiyRqscUd�tuvIjUlIq��â ÕªåÂÔ6¬ Ó �Î�Sv�tivKqgd��ad�m�qsc`z;q{enj7d�~�t��`d�e{qscUd�vKlU��»¼d�m{fopG»��Kqsd�e�tuvEqgcUdÄâ�Õªå å�zomnmsz��a�

Î VRZ�í[ÿ<YPì�_añ'ôwZ*®1b�cUd � à�Ô[á p lUvU~�qstufov�mgd�qslUmnvUe{¹�t�p·tiq�yUd�qgd�~�qse�zovEd�vUy#¢^fop¢^�`hidS~�favUyUt�qstifav@fovqgcUd{egf4~��od�q�½4qgcUd{vKlU��»¼d�mBfop7»K�Kqgd�e5tip¼tiqBfa»#q�zotivUe1tuvIjUlIq�½4zovIy�Ï�®�tip7zov�d�mnmgfamBc`zoeJf4~�~�lUmgmnd�y'�

YK�0S ¬rÕÓ� ���b�cUd Ø;Þ �aÙnà e��#e�qsd���~�zohuh7qsd�mn�@tiv`z;qgd�ek~�fa�@��lUvUtu~�z;qstifav�zovUy�yUdÄ¢¦zohihuf4~�z;qgd�e�z�yUd�eg~�mntujIqgfam��

Î �<'·þJZ*® Ò Ó ­e©6Ô ¨ª§�¬ ��Ò Ó ­ §6¨�©U«�¬­��Î Z "�Z*®�᪬­*©6¨-Öª¬j�ë©6Ô ¨�§¬ � § ¨�©U«�¬�­r�OÎ öEZ�"�_aY ë þ<í ë ñ¼ì�®B�«v�zojUjUhitu~�z;qstifavE~�zohihue ØPÞ �aÙ�à zPp qsd�m�tiq��UvUtuencUd�eSlUegtivU��z�egf4~��od�q���b�cUd Ø;Þ �aÙnàe��#e�qsd�� ~�zohih�qgd�mn�@tiv`z;qsd�e�~�fa�@��lUvUtu~�z;qstifav��omszo~�d�p lUhihi��zovUy�mnd��£f9xad�eRqgcUdNenf#~��;d�q��Ð�«v��lUvImgd�z;y�y`zPq�zÌ�kzot�qstivU��z;q�qscId�enf#~��;d�q��{tuhih/»¼d�yItueg~�zomgyId�y'���v�jUmgzo~�qgtu~�d;½U´SÈS�^ɨti�@jUhid��£d�v�qse�z�mgd�p d�mnd�vU~�d�~�falUv�q��£d�~�c`z;vUtuen�-qsf�zohuhif[�Î��lUhiqgtujUhid�jImgf;¢~�d�egend�e£qsfÑegc`zomndÍz�enf#~��;d�q����^p×Ö©jImgf4~�d�enegd�e�egcUzomgdÍz+egf4~��od�q�½�qgcUd�mgd�p d�mgd�vU~�dÍ~�falIvKq£�{tuhih»¼d¿ÖG��b�cUd ØPÞ �aÙ�à p lUvU~�qgtufav�yUd�~�mgd��@d�vKqgeSqgcUd�mnd�p d�mnd�vU~�d�~�falUv�q}d�zo~�c�qgtu�£d�z�jUmnf#~�d�ege«~�zohihuet�q���Å}vU~�d�qscUd�mnd�p d�mnd�vU~�d�~�falUv�q«mnd�zo~�cId�e!Ê�d�mnf+� tW�°do��½rzohuh'jImgf4~�d�enegd�e«c`z�xad�~�z;huhud�y Ø;Þ �oÙnà ��½`qscUdenf#~��;d�q��{tuhuh/»7d�yUd�zohuhif#~�z;qsd�y'�

�I®

Page 32: Introduction to Network Programming Jie Wang Department of

Î ý Y[ò¼ÿGóªZ#ì¼íU"�®§6¨�©U«Â¬�­�Îb�cId�yUd�eg~�mntujIqgfam{fopCz�enf#~��;d�q�qsf£»7d�~�hufaend�y'�

Î VRZ�í[ÿ<YPì�_añ·ô<Z*®�¹Ìt�pCenlU~�~�d�ege�p lUhGzovUyhÏ�®�tipGzov�d�mnmgfam{f4~�~�lUmgmnd�y'�

YK��Y Ø=Ñ��#�b�cUd 0. Õ[á e��#e�qsd�� ~�zohihG»UtivUyUe�zRhif#~�zohG�¦�ÒzoyUyUmnd�ene�z;vUy�jUmgfoqgf#~�fahwj7fam�q£�)z;vÑd�vUyUj¼fatuv�q�z;yUyUmgd�eges�qsf@zÌegf4~��od�q��

Î �<'·þJZ*® Ò Ó ­3â Ò Ó Ö ��Ò Ó ­ § ¨�©U«�¬�­� § ¨�©U«�àÖ�Ö áeï6Ô ¨�©�à�ÔàÖ Ö á� Ò Ó ­ àÖ Ö áÂÔ6¬ Ó �Î Z "�Z*®�᪬­*©6¨-Öª¬j� â Ò Ó Ö � §6¨�©U«Â¬�­� AÔ ¨�©àªÔàÖ Ö�á� àÖ Ö á~Ô¬ Ó �OÎ öEZ�"�_aY ë þ<í ë ñ¼ì�®�b�cUdw0. Õ[á en�4enqgd���~�zohihwenj7d�~�t��`d�e�z£huf4~�zoh·�¦�ÎzoyIyUmgd�ege�zovIyNjUmgf;qsf4~�fah<j¼famnqvKlU��»¼d�mEp fam�z"enf#~��;d�q��Ê�^qÍtueEjUmntu�@zomgtihi�¡lUend�yÒ»K��egd�m�xad�mge�½��{cUti~�cÒvId�d�y©qsf¡egj¼d�~�tip �Îz��d�hih�¢��KvUf9�{vÍjUmgf;qsf4~�fah'j¼fam�q��

Î ý Y[ò¼ÿGóªZ#ì¼íU"�®§6¨�©U«Â¬�­�Î�Ðegf4~��od�q«yId�eg~�mgtijIqsfam{~�mgd�zPqsd�yÍ»��EqscUd Ù1�#Ø�,�à� ~�zohihW�Ô ¨�©�à�ÔàÖ Ö á��b�cUd£zoyUyUmnd�ene�fop5z@e�qsmglI~�qslImgd�qscUz;q}enj7d�~�ti�Ud�e�zov��¦�ÒzoyIyUmgd�ege�zovUy�jUmgfoqgf#~�fahj¼famnq{vKlU��»7d�m��àÖ Ö á~Ô¬ Ó �Îb�cUd�egt Ê�d�fopwqscUd�zoyUyImgd�eneSe�qsmnlU~�qglUmgd�tuv�»��Kqsd�e��

Î VRZ�í[ÿ<YPì�_añ·ô<Z*®�¹Ìt�pCenlU~�~�d�ege�p lUhGzovUyhÏ�®�tipGzov�d�mnmgfam{c`z;e�f4~�~�lUmgmnd�y'�

YK�0s ÕÙÑÚ�K�c���b�cUd Þ . Ù�¦à;Õ en�4enqgd��û~�zohuh¼jUhuzo~�d�e�qscUd«egf4~��od�q{tivRj`zoenegt�xad}�£f#yId}zovUyEend�qkqgcUd}vKlU��»¼d�m�fopwtuvU~�fa�@tivU�b�¤k��~�fovUvUd�~�qstifavUe�qscUd�e��#e�qsd�� �{tihuh7d�vU|KlUd�lUdE� p fam{zÌegd�m�xad�m����

Î �<'·þJZ*® Ò Ó ­ Ô Ò §�­�¬ Ó���Ò�Ó ­ §6¨�©U«Â¬�­� Ò Ó ­���Õ¬-Õ~¬ªÔ¬ Ó �Î Z "�Z*®�᪬­*©6¨-Öª¬j� Ô Ò §U­Â¬ Ó�� §6¨ª©U«�¬�­� Û��Õ¬-Õ¬�Ô¬ Ó �OÎ öEZ�"�_aY ë þ<í ë ñ¼ì�®��#d�mnxad�mgeRlIegd Þ . Ù�¦à;Õ qgfú�@zo�od�z�egf4~��od�qRj`zoegentixodÏ� tW�°do��½kmgd�zoyI�"qsfªzo~�~�d�j#qtivU~�fa�£tuvI��mgd�|KlUd�enqge����Cb�cUd Þ . Ù�¦à;Õ p lIvU~�qgtufav�zohuenf{egd�qgewqgcUdBvKlU��»¼d�mwfopItivU~�fo�@tivU��~�favIvUd�~�qstufovmnd�|KlUd�e�qse£qsc`z;qÌqgcUdEjUmnfoqsf4~�fah�egfop q���zomgd�encUfalUhiy�d�vU|KlUd�lId�p famÌz+�at�xad�v�enf#~��;d�q£�{cUtuhid�qscUdend�mnxod�mRcUzovUyUhid�eRz;vUfoqscId�m£mgd�|KlUd�enq����HÈSfoqgd�® Þ . Ù�¦à;Õ favUh���zojUjUhitud�e�qgfúenf#~��;d�qse�lUegd�y��{tiqscb�¤k�w�ß�

Î ý Y[ò¼ÿGóªZ#ì¼íU"�®§6¨�©U«Â¬�­�Î�Ðegf4~��od�q«yId�eg~�mgtijIqsfam{~�mgd�zPqsd�yÍ»��EqscUd Ù1�#Ø�,�à� ~�zohihW���Õ¬-Õ~¬ªÔ¬ Ó �Îb�cUdNent�Ê�dÍf;p«qscId�tivU~�fa�£tuvI�N~�favIvUd�~�qstufov�mgd�|KlUd�e�q�|KlUd�lUd"� lUegl`z;huhi�úlUj�qgfúz�@zPÃ#tu��lI�-fopJ±a���

Î VRZ�í[ÿ<YPì�_añ·ô<Z*®�¹Ìt�pCenlU~�~�d�ege�p lUhGzovUyhÏ�®�tipGzov�d�mnmgfam{c`z;e�f4~�~�lUmgmnd�y'�

��¸

Page 33: Introduction to Network Programming Jie Wang Department of

YK��w Ô@¬�¬��rÜ6�b�cUd ÔPØ�Ø�à�2� en�4e�qsd�� ~�zohuh·z;~�~�d�jIqse{qscId�vId�Ã4q�tuvU~�fa�@tivU�Ì~�fovUvUd�~�qstifavª� p fam{z�egd�mnxad�m��Ä�

Î �<'·þJZ*® Ò Ó ­ à�© ©¬-Û�­ ��Ò�Ó ­ §6¨�©U«Â¬�­� A§6¨�©U«ÂàÖ Ö á ï�à6Ö Ö á� Ò Ó ­eï�àÖ�Ö áÂÔ¬ Ó �Î Z "�Z*®�᪬­*©6¨-Öª¬j� à�© ©�¬�Û�­ � §6¨ª©U«�¬�­� AàÖ Ö á� kàÖ Ö�áÂÔ¬ Ó ��Î öEZ�"�_aY ë þ<í ë ñ¼ì�®@�#d�mnxad�mge�lUendRqscUd Ô[Ø�Ø�à-2� p lUvU~�qgtufavªqsf�zo~�~�d�j#qÌqscUdEvUdÄÃ4q�tuvU~�fa�@tivU��~�fav#¢vUd�~�qgtufavªfavÏz�j`zoenegtixod�enf#~��;d�q�z;p qgd�m�qscId��Ñc`z�xad@~�zohihud�y Ù1�#Ø�,�à� qgf�~�mgd�zPqsdRz�egf4~��od�q�½¾0. Õ[áqgfªenj7d�~�tip �"z�hif#~�zohk�¦��z;yUyUmgd�ege@zovUy�jUmgf;qsf4~�fahkj¼fam�q�v4lI��»7d�m�½�zovUy Þ . Ù�¦à;Õ qsf���z;�odEqscUdenf#~��;d�q�j`zoenegtixod�zovUy+qsfEend�q}qgcUdÌhud�vU�oqgc+fopJqscUdÌ~�favUvUd�~�qgtufav+mnd�|KlUd�e�q�|4lId�lUd;��b�cUd Ô[Ø�Ø�à-2�e��#e�qsd�� ~�zohih<mgd��£f9xad�e}qscUd�vId�Ã4q�~�fovUvUd�~�qstifav+mgd�|4lId�enq�p mnfa� qscUd�|4lId�lUdÍ� famS��zotiqge«lUv�qgtuh1z~�favUvUd�~�qstifav+mgd�|KlUd�e�q�z;mgmgt�xad�e���½7~�mnd�z;qgd�e�zRvUd�� enf#~��;d�q�p fam�qscUd�mnd�|KlUd�enq�½<z;vUy+mgd�qslUmnvUe}qscUdyUd�eg~�mgtuj#qsfam5p fam5qgcUd«vId��Îegf4~��od�q��5ÈSf;qsdSqgc`z;q ÔPØ�Ø�à�2� fovUhi�£zojIjUhutid�eBqsf�e�qsmnd�zo� egf4~��od�q��Hd;�Æ�I�i½qgcUfaegd�lUend�y��{tiqsc�b�¤k�5���

Î ý Y[ò¼ÿGóªZ#ì¼íU"�®§6¨�©U«Â¬�­�Î�Ðegf4~��od�q«yId�eg~�mgtijIqsfam{~�mgd�zPqsd�yÍ»��EqscUd Ù1�#Ø�,�à� p lUvU~�qgtufav/�àÖ Ö á���j¼fatuv�qgd�mBqsfÌzov�zoyUyUmnd�enekenqgmglU~�qslUmndo�Bb�cUd Ô[Ø�Ø�à-2� p lUvU~�qstifav@�`hihueBtuv£qscUdSenqgmglU~�qslUmnd�{t�qscEqscUd��¦��zoyIyUmgd�ege�zovUyÍjUmgf;qsf4~�fah'j¼fam�q{v4lI��»7d�m{fopGqgcUd�mgd��@foqgd���zo~�cItuvUd;�àÖ Ö á~Ô¬ Ó �Î��j¼fativKqgd�m�qsfRz;v�tuv�qgd��ad�mSqscUz;q}tivUtiqgtÂzohihi�£egj¼d�~�ti�`d�e«qscUd�egt Ê�d�f;p1qscUd[§6¨ª©U«�àÖ Ö�ázomn�alU�£d�v�q{zovIy'½#�{cUd�vEqscUd}~�zohuh¼mgd�qslUmnvUe�½`enj7d�~�t��`d�ekqgcUd}vKlU��»¼d�mkf;p<»K�Kqgd�e{enqgfamgd�yEtuvEzomn�al#¢�£d�v�q<àÖ�Ö ár�

Î VRZ�í[ÿ<YPì"_añ·ô<Z>®1z�vUfavIvUd���zPqstixodSenf#~��;d�q�yId�eg~�mgtijIqsfam5tip/eglU~�~�d�egenp lIh·zovUy¥Ï�®Stip·z;v�d�mnmgfam5c`zoef4~�~�lUmgmnd�y'�

YK��� ª0��¬�­b�cUd�� à�Ø�� e��4enqsd�� ~�zohih'mgd�~�d�tixad�eSqgcUd�vUd�Ã4q�tuvU~�fa�£tuvU��yUz;q�zo�omszo�Í�

Î �<'·þJZ*® Ò Ó ­ ᪬�©:� ��Ò Ó ­ § ¨�©U«�¬�­� ©UÞÂàá ï�â Õªå å�¬á� Ò Ó ­ Ô¬ Ó�ã ­6Þ� Ò Ó ­ åÂÔà ã §��Î Z "�Z*®�᪬­*©6¨-Öª¬j�3᪬�©�� � §6¨�©U«Â¬�­� ¶â Õªå�媬á� Ô¬ Ó�ã ­6Þ� kåÂÔ6à ã §��OÎ öEZ�"�_aY ë þ<í ë ñ¼ì�®1b�cId�� à�Ø�� en�4enqgd�� ~�zohuh'fo»Iq�zotivUekqscId�vId�Ã4q��@d�egesz;�ad�p mgfa� zÌenf#~��;d�q��Î ý Y[ò¼ÿGóªZ#ì¼íU"�®§6¨�©U«Â¬�­�Î�Ðegf4~��od�q«yId�eg~�mgtijIqsfam{~�mgd�zPqsd�yÍ»��EqscUd Ù1�#Ø�,�à� en�4enqgd�� ~�z;huhW�â Õªå å�¬á��Îb�cId�zoyUyImgd�eneSf;p1zÌ»UlIË7d�m�qgf@cUfohuyRqscId��£d�eneszo�odo�Ô¬ Ӫ㠭6Þ6�Îb�cId�hud�vU�oqgcÍf;pGqgcUd�»UlIË7d�m��åÂÔà ã § �©¤�fav�qsmgfoh/»Ut�qseJqsc`zPq�enj7d�~�tip �Ì�{cId�qscId�m�qgf�mnd�~�d�tixod«falIq�¢�fop¢^»`zovUy£y`z;qsz�zovIy@�{cUd�qscUd�mqgf£hif#fo�RzocUd�zoy�p fam��@d�egegzo�ad�e��

��

Page 34: Introduction to Network Programming Jie Wang Department of

Î VRZ�í[ÿ<YPì¡_añ·ôwZ*®CqgcUd«vKlU��»7d�m�fop·»��Kqsd�ektuv£qscUdS�@d�egegzo�ad«t�p'enlU~�~�d�ege�p lUh·zovIygÏ�®«tip·z;v�d�mnmgfamc`z;e�f4~�~�lUmgmnd�y'�

YK�+��� ª0��¬�­x�R�E�b�cUd?� à�Ø���ÝSÙnÖ e��#e�qsd���~�zohihImnd�~�d�tixod�eJqscUd�vId�Ã4qBtuvU~�fa�£tuvU�Sy`z;q�z;�amszo�§� qgcUtueCtueJz«x;zomntÂz;qgtufav�fop(� à�Ø�� ���

Î �<'·þJZ*® Ò Ó ­ò᪬©��ð%§ ã���Ò Ó ­ §6¨ª©U«�¬�­� ð%§ ã ÞªÖ áeï ð%§ ã Ò Ó ­ åÂÔà ã §��K½/�{cId�mgd ð%§ ã ÞªÖ�á�tuez�enqgmglU~�qslUmnd��{t�qsc�qscUd�p fahihuf9�{tuvI��p famn��z;q�®§U­�áÕ%©U­3ð%§ ã ÞªÖ�á �

©�àÖ Ö á6��­ ð § ã � Ó à-ð~¬� Ú�ï3¨UÛ�­ Ò ¨ Ó àªÔ3àÖ�Ö áª¬�§ § ï6ÚÒ Ó ­ ð § ã � Ó à-ð~¬ªÔ¬ Ó Ú�ïò§ Ò�� ¬ ¨-åØàÖ Ö�᪬�§ § ï6Ú§U­�áÕ>©�­ Ò ¨:��¬�© ï ð § ã � Ò ¨)�� Ú�ïò§ ©�à­ ­�¬áÂÚ ã à�­6Þ¬6á àá áªà6Ù ï6ÚÒ Ó ­ ð §U­6� Ò ¨)�~Ô¬ Ó Ú�ï Ñ ¬�Ô¬�ð~¬ Ó ­*§ Ò Ó ð%§ ã � Ò ¨:� ï6Ú©�àÖ Ö á6��­ ð § ã � à�©�©�á ÒUã Þª­*§� Ú�ïÐá ÒUã Þ�­*§ §�¬ Ó ­*Ú-᪬�©�¬ Ò ��¬Ö ï6ÚÒ Ó ­ ð § ã � à�©�©�á ã Þ�­>§6Ô¬ Ó Ú�ï3Ô¬ Ó�ã ­6Þ ¨-å·Ûªáª¬3�¾Ü å Ò ¬�Ô-Ö ï6Ú

' Î Z "�Z*®�᪬­*©6¨-Öª¬j�3᪬�©��6ð%§ ã� § ¨�©U«�¬�­� ¶ð%§ ã ¶åÂÔà ã §��OÎ öEZ�"�_aY ë þ<í ë ñ¼ì�®Gb�cUd�� à�Ø���Ý«Ù�Ö en�4enqgd��û~�zohuh7mgd�qslUmnvUekqscUd�vId�Ã4q{�@d�egegzo�ad}qscUz;q{zomnmgtixod�ekfov�zenf#~��;d�q����^q�jUhuzo~�d�e�qgcUd��@d�egegzo�ad�tuv�z£e�qsmglI~�qslImgd�qsc`z;qStuvI~�hulIyUd�e�z�cUd�zoyId�mSzohufavI���{t�qsc�qscUdy`zPq�zI�

Î ý Y[ò¼ÿGóªZ#ì¼íU"�®§6¨�©U«Â¬�­�Ò�4f#~��;d�q}yId�eg~�mgtijIqsfam{~�mgd�zPqsd�y�»��RqscUd Ù1�#Ø�,�à� en�4enqgd�� ~�z;huhW�ð%§ ã �Î�«yIyUmgd�ege«f;p1zÌ�£d�egegzo�ad�enqgmglU~�qslUmndo�åÂÔà ã § �©¤�fav�qsmgfohw»Itiqsekqgc`z;q�egj¼d�~�tip �EfolIqn¢^fop¢�»`z;vUyEy`z;qsz�fom��£d�eneszo�od�hif#fo��¢�zocUd�zoy'�

Î VRZ�í[ÿ<YPì¡_añ·ôwZ*®CqgcUd«vKlU��»7d�m�fop·»��Kqsd�ektuv£qscUdS�@d�egegzo�ad«t�p'enlU~�~�d�ege�p lUh·zovIygÏ�®«tip·z;v�d�mnmgfamc`z;e�f4~�~�lUmgmnd�y'�

YK�+��� ª0��¬�­6¯cª0�$�b�cUd#� à�Ø���� � �IÝ e��4enqsd�� ~�zohuh�mgd�~�d�t�xad�eRqscUdNvId�Ã4qEtuvI~�fa�£tuvU�ªy`z;qszo�amsz;� z;vUy�mgd�~�famny�tiqge�egfolUmg~�dd�vIyUj7fotuv�qSzoyUyUmnd�ege��

Î �<'·þJZ*® Ò Ó ­ ᪬�©:��å á¨�ð ��Ò Ó ­ § ¨�©U«�¬�­� ©UÞÂàá ï�â Õªå å�¬á� Ò Ó ­3â Õªå~Ô¬ Ó Ò Ó ­ åÂÔà ã §� §6¨�©�«�àÖ Ö áeï�å�á¨�ð� Ò Ó ­eï�å á~¨�ð>Ô¬ Ó �

Î Z "�Z*®(᪬­*©6¨-Öª¬j�·áª¬�©���å�á¨�ð � § ¨�©U«�¬�­� kâ Õªå�媬á� oâ Õªå~Ô¬ Ó QåÂÔà ã §� Qå á¨�ð} ¶å�á¨�ð>Ô¬ Ó �OÎ öEZ�"�_aY ë þ<í ë ñ¼ì�®�b�cUdw� à�Ø���� � �IÝ en�4enqgd���~�zohihwdÄÃ4qsmsz;~�qseSqscUd�vUd�Ã4q��£d�eneszo�od�qscUz;q}z;mgmgt�xad�e}z;qz�egf4~��od�q}zovIyÍmnd�~�famgyUe{qscId�end�vUyId�m��°e}z;yUyUmgd�ege��Hd�v`zo»UhituvU��qgcUd�~�zohihud�m�qsf�egd�vUyNzÌmgd�jUhi�I�Ä�

�o¯

Page 35: Introduction to Network Programming Jie Wang Department of

Î ý Y[ò¼ÿGóªZ#ì¼íU"�®§6¨�©U«Â¬�­�Î�Ðegf4~��od�q«yId�eg~�mgtijIqsfam{~�mgd�zPqsd�yÍ»��EqscUd Ù1�#Ø�,�à� en�4enqgd�� ~�z;huhW�â Õªå å�¬á��Îb�cId�zoyUyImgd�eneSf;p1zÌ»UlIË7d�m�qgf@cUfohuyRqscId��£d�eneszo�odo�â ÕªåÂÔ6¬ Ó �Îb�cId�hud�vU�oqgcÍf;pGqgcUd�»UlIË7d�m��åÂÔà ã § �©¤�fav�qsmgfohw»Itiqsekqgc`z;q�egj¼d�~�tip �EfolIqn¢^fop¢�»`z;vUyEy`z;qsz�fom��£d�eneszo�od�hif#fo��¢�zocUd�zoy'�å á¨�ð���b�cUd�zoyUyUmnd�ege�fopCz£e�qsmnlU~�qglUmgd�qsf�cUfahiyEqscUd�egd�vUyUd�m��°e«zoyIyUmgd�ege��å á¨�ð%Ô¬ Ó �Îb�cUd@hud�vU�oqsc�fopBqgcUd�å�á¨�ðÑ»Ul#Ë/d�m�½<mgd�qslUmnvUd�yúzoe}qscUd�ent�Ê�dÌf;p�qgcUd�egd�vIyUd�m��Æe�zoy#¢yUmnd�ene���#d�~�qgtufav�¸#� ±ÌyId�eg~�mgti»7d�e�qgcUd�§ ¨�©U«�àÖ�Ö áEe�qsmglI~�qslImgdo�

Î VRZ�í[ÿ<YPì¡_añ·ôwZ*®CqgcUd«vKlU��»7d�m�fop·»��Kqsd�ektuv£qscUdS�@d�egegzo�ad«t�p'enlU~�~�d�ege�p lUh·zovIygÏ�®«tip·z;v�d�mnmgfamc`z;e�f4~�~�lUmgmnd�y'�

YK�+�M¹ �����#�b�cUd ÙnàPÕ[á e��#e�qsd���~�zohuh/egd�vIyUe«z;vÍfolIqs�afotuvU�Ìy`zPq�zo�amgzo�Í�

Î �<'·þJZ*® Ò Ó ­e§�¬ Ó Ö ��Ò Ó ­ § ¨�©U«�¬�­� ©UÞÂàá ï ð%§ ã Ò Ó ­ ð%§ ã Ô¬ Ó Ò Ó ­òåÂÔ6à ã §��Î Z "�Z*®�᪬­*©6¨-Öª¬j�ë§�¬ Ó Ö � §6¨�©U«Â¬�­� oð%§ ã qð § ã Ô¬ Ó ¶å~Ôà ã §���Î öEZ�"�_aY ë þ<í ë ñ¼ì�®1�SjUjUhitu~�zPqstufovUek~�z;huh Ù�à;Õ[á qsfÌqsmgzovUenp d�m�z��£d�eneszo�od�qgf�z;vUfoqscId�m��@zo~�cUtuvIdo�Î ý Y[ò¼ÿGóªZ#ì¼íU"�®§6¨�©U«Â¬�­�Ò�4f#~��;d�q}yId�eg~�mgtijIqsfam{~�mgd�zPqsd�y�»��RqscUd Ù1�#Ø�,�à� en�4enqgd�� ~�z;huhW�ð%§ ã �Î�$j7fotuv�qsd�mkqsfÌqscUd��£d�eneszo�ad;�ð%§ ã Ô6¬ Ó �Îb�cId�hud�vU�oqgcÍf;pGqgcUd��@d�egesz;�ad�tuv�»��4qgd�e��åÂÔà ã § �©¤�fav�qsmgfohw»Itiqsekqgc`z;q�egj¼d�~�tip �EfolIqn¢^fop¢�»`z;vUyEy`z;qsz�fom��£d�eneszo�od�hif#fo��¢�zocUd�zoy'�

Î VRZ�í[ÿ<YPì _añ'ôwZ*®¡qscUd�vKlU��»¼d�mÍfop�»K�Kqgd�e�end�v�q�tip�eglU~�~�d�enenp lUh�zovUyMÏ�®Ñtip�zov©d�mnmgfam�c`zoef4~�~�lUmgmnd�y'�

YK�+�$! �����#��R�E�b�cUd ÙnàPÕ[áUÝ«Ù�Ö e��4enqsd�� ~�zohih'egd�vUyUeSzovÍfalIqs�ofatuvU�ÌyUz;q�zo�omszo� � qscItue�tue{z�x;zomntÂz;qgtufavRf;p Ù�à;Õ[á �Ä�

Î �<'·þJZ*® Ò Ó ­e§�¬ Ó Ö�ð%§ ã��Ò Ó ­ §6¨�©�«�¬�­� oð%§ ã ÞªÖ á ï ð%§ ã Ò�Ó ­òå~Ôà ã §��Î Z "�Z*®�᪬­*©6¨-Öª¬j�ë§�¬ Ó Öð%§ ã� § ¨�©U«�¬�­� ¶ð%§ ã ¶åÂÔà ã §��OÎ öEZ�"�_aY ë þ<í ë ñ¼ì�®·b�cUd ÙnàPÕ[áUÝ«Ù�Ö end�vUyUeCzS�£d�eneszo�ad;½odÄÃ#qgmszo~�qstivU�«t�qwp mnfa�$z¾ð § ã ÞªÖ á�e�qsmglI~�qslImgdo�

��±

Page 36: Introduction to Network Programming Jie Wang Department of

Î ý Y[ò¼ÿGóªZ#ì¼íU"�®§6¨�©U«Â¬�­�Ò�4f#~��;d�q}yId�eg~�mgtijIqsfam{~�mgd�zPqsd�y�»��RqscUd Ù1�#Ø�,�à� en�4enqgd�� ~�z;huhW�ð%§ ã �Î�$j7fotuv�qsd�mkqsfÌqscUd��£d�eneszo�ad�enqgmglU~�qslUmndo�åÂÔà ã § �©¤�fav�qsmgfohw»Itiqsekqgc`z;q�egj¼d�~�tip �EfolIqn¢^fop¢�»`z;vUyEy`z;qsz�fom��£d�eneszo�od�hif#fo��¢�zocUd�zoy'�

Î VRZ�í[ÿ<YPì�_añ·ô<Z*®BqgcUd�vKlU��»¼d�m{fopG»K�Kqgd�e�egd�v�qStipGeglU~�~�d�egenp lIhCzovIyÛÏ�®�tipwqscUd�mgd�tue{zovÍd�mnmgfam��

YK�+�OF �����#� �K�b�cUd ÙnàPÕ[á�� e��4enqsd�� ~�zohih'egd�vUyUeSzov�falIqs�ofatuvU�ÌyUz;q�zo�omszo�ͽIlUenl`zohihi��qgf�zÌjUmnd�¢^mgd�~�famgyId�yÍd�vUyUj¼fativKqzoyUyImgd�ene��

Î �<'·þJZ*® Ò Ó ­e§�¬ Ó Ö6­~¨ ��Ò�Ó ­ §6¨�©U«Â¬�­� A©�ÞÂàáeï ð § ã Ò Ó ­·ð%§ ã Ô¬ Ó Ò Ó ­ØåÂÔà ã §� § ¨�©U«�àÖ�Ö áeïU­~¨& Ò Ó ­ò­~¨ Ô6¬ Ó �

Î Z "�Z*®�᪬­*©6¨-Öª¬j�ë§�¬ Ó Ö ­~¨ � §6¨ª©U«�¬�­� Qð%§ ã qð%§ ã Ô6¬ Ó QåÂÔà ã §� ¶­~¨& o­~¨ Ô¬ Ó �&/Î öEZ�"�_aY ë þ<í ë ñ¼ì�®�b�cUd Ù�à;Õ[á�� en�4enqgd�� ~�zohih1egd�vUyUe�zÍ�£d�eneszo�ad�»��+q�z;�4tivU�EqscUd�yUd�enqgtuv`z;qgtufavzoyIyUmgd�ege{p mgfa� zÌe�qsmglI~�qslImgdo�

Î ý Y[ò¼ÿGóªZ#ì¼íU"�®§6¨�©U«Â¬�­�Ò�4f#~��;d�q}yId�eg~�mgtijIqsfam{~�mgd�zPqsd�y�»��RqscUd Ù1�#Ø�,�à� en�4enqgd�� ~�z;huhW�ð%§ ã �Î�$j7fotuv�qsd�mkqsfÌqscUd��£d�eneszo�ad;�ð%§ ã Ô6¬ Ó �Îb�cId�hud�vU�oqgcÍf;pGqgcUd��@d�egesz;�ad�tuv�»��4qgd�e��åÂÔà ã § �©¤�fav�qsmgfohw»Itiqsekqgc`z;q�egj¼d�~�tip �EfolIqn¢^fop¢�»`z;vUyEy`z;qsz�fom��£d�eneszo�od�hif#fo��¢�zocUd�zoy'�­~¨��Î�$j¼fatuv�qsd�mkqsfÌqscId�z;yUyUmgd�ege�enqgmglU~�qslUmndo�­~¨ Ô¬ Ó ��b�cUd�hid�vU�oqgc�fopGqgcUd�zoyUyUmnd�eneStivÍ»��Kqsd�e��

Î VRZ�í[ÿ<YPì¨_añ·ô<Z>®}qgcUd�vKlU��»¼d�m�fop�»��4qgd�e�egd�vKq�tuv�zE�£d�eneszo�ad�t�p�enlU~�~�d�enenp lUh�zovUy¦Ï�®�t�p�z;vd�mgmgfom�cUzoe{f#~�~�lUmnmgd�y/�

YK�+��S ��ÝxÞ6�c�x�%Ð��b�cUd Ù�5�Û�¦á6��Ó�Õ e��#e�qsd�� ~�zohih/qsd�mg�£tuv`z;qgd�e{zÌb�¤k��~�fovUvUd�~�qstifav�tivEfavUd�fam{»¼foqsc�yUtimgd�~�qstifavUe��

Î �<'·þJZ*® Ò Ó ­e§�Þ Õª­�Ö¨:9 Ó���Ò Ó ­ § ¨�©U«�¬�­� Ò�Ó ­òÖ Ò áª¬�©U­ Ò ¨ Ó �Î Z "�Z*®�᪬­*©6¨-Öª¬j�ë§�Þ Õ�­ªÖ¨:9 Ó�� §6¨�©U«�¬­� �Ö Ò á�¬�©U­ Ò ¨ Ó �OÎ öEZ�"�_aY ë þ<í ë ñ¼ì�®Gb�cUd Ù�5�Û�¦á6��Ó�Õ en�4enqgd��û~�zohuh7zojUjUhitud�e�qsf�~�favUvUd�~�qgd�yÍb�¤k��egf4~��od�qse�½7z;vUyEtuelUend�yÍqsf�j`zom�qstÂz;huhi�£~�hufaend�qgcUd�~�favIvUd�~�qstufov'�

�a¿

Page 37: Introduction to Network Programming Jie Wang Department of

Î ý Y[ò¼ÿGóªZ#ì¼íU"�®§6¨�©U«Â¬�­�Î�Ðegf4~��od�q«yId�eg~�mgtijIqsfam{~�mgd�zPqsd�yÍ»��EqscUd Ù1�#Ø�,�à� en�4enqgd�� ~�z;huhW�Ö Ò áª¬Â©U­ Ò ¨ Ó ��b�cUdkyUtimgd�~�qstifav�tuv��{cUti~�c�enc4l#qsyUf9�{v�tie·yUd�entumgd�y�®w¹��£d�z;vUe'qsd�mg�£tuv`z;qgd1p lUmnqgcUd�mtivUjUlIq�½1®Ì�@d�zovUe«qgd�mn�@tiv`z;qsd�p lUmnqgcUd�m«falIqsjIlIq�½<zovIyѸ��@d�zovUe«qgd�mg�£tuvUz;qsd�»7foqgc+tuvUjIlIq�zovIyfal#qsjUlIq��

Î VRZ�í[ÿ<YPì�_añ·ô<Z*®�¹Ìt�pCenlU~�~�d�ege�p lUhGzovUyhÏ�®�tipGzov�d�mnmgfam{c`z;e�f4~�~�lUmgmnd�y'�

YK�+�$Y �x���3Ü ���rªß�@Ôx�g�b�cUd Öaà�72oà�à � ÕPÔ�Ý«à en�4enqgd�� ~�z;huh}fa»#q�zotivUeRqscUd�mnd��£foqsd+�@zo~�cUtivUd��°e�d�vUyUj¼fativKq�zoyIyUmgd�ege�p mgfa� zegf4~��od�q�½7z;p qsd�m{zÌ~�favUvId�~�qgtufav�zomnmgtixod�e��

�)ÈSf;qsd}qscUz;q{p lUvU~�qgtufavIe ã ¬�­6Þ*¨�§�­6âªÙ Ó à-ð~¬�zovUy ã ¬­*§�¬á�� âªÙ Ó à�ð*¬�zomnd�hutu»Imszom��R~�z;huhues�Î �<'·þJZ*® Ò Ó ­ ã ¬�­ Û¬ ¬á Ó à�ð~¬ ��Ò�Ó ­ §6¨ª©U«�¬�­� A§6¨ª©U«�àÖ Ö�á ï-᪬�ð~àÖ�Ö á� Ò Ó ­eï�àÖ�Ö áÂÔ¬ Ó �Î Z "�Z*®�᪬­*©6¨-Öª¬j� ã ¬�­6Û~¬ ¬á Ó à-ð~¬ � §6¨ª©U«�¬�­� ᪬�ð~à6Ö Ö á� àÖ�Ö áÂÔ¬ Ó �OÎ öEZ�"�_aY ë þ<í ë ñ¼ì�®Ï�Sv©zojUjUhitu~�zPqstufov�lUegd�e Öoà�72aà�à � ÕPÔKÝSà qsf¡fa»Iqszotuv�qscId+mgd��£foqgd+d�vUyUj¼fativKqzoyIyUmgd�egeCp famwz{~�favIvUd�~�qsd�yÌenf#~��;d�q��J´Senl`zohuh��a½;zS~�hutud�v�qG�KvUf9�{ewqscUd�mgd��£foqgd5d�vUyUj¼fatuv�qCzoyUyUmnd�ene»¼d�~�zolUegd@tiq�~�zohuhie Ø��IÕ�Õ[à�Ø� qgfÍend�q�tiq��w��f9��d�xad�m�½Jz�egd�m�xad�m�qscUz;q�lUegd�e Ô[Ø�Ø�à-2� qgf�fa»#q�zotivªz~�favUvUd�~�qstifavÍ��z��RvId�d�yÍqsf�tuv�qgd�mgmnfa��z;qgd}qscUd�enf#~��;d�q�qsf��`vUyÍfalIq�qscId�mnd��£foqsd�z;yUyUmgd�ege��

Î ý Y[ò¼ÿGóªZ#ì¼íU"�®§6¨�©U«Â¬�­�Î�Ðegf4~��od�q«yId�eg~�mgtijIqsfam{~�mgd�zPqsd�yÍ»��EqscUd Ù1�#Ø�,�à� en�4enqgd�� ~�z;huhW�᪬�ð~à6Ö Ö á��Î� j¼fatuv�qgd�m�qsf+z §6¨�©U«�à6Ö Ö áúe�qsmnlU~�qglUmgdRqgc`z;q��{tihuhB~�fovKqszotuvÑqscUd�d�vUyUj¼fativKq�zoy#¢yUmnd�ene��àÖ Ö á~Ô¬ Ó �Î� j¼fativKqgd�mBqsf�zov�tiv�qsd��od�mBqsc`z;q�~�fovKqszotuvIe�qscIdShid�vU�oqgc�fop/qscUd�egd�~�favUy�z;mg�alU�£d�v�qtivUtiqgtÂzohihi�a½4zovIy�qgcUd�zo~�qgl`zoh·hid�vU�oqgc�fopGqgcUd�d�vUyIj7fativ�q«z;yUyUmgd�ege�lUj¼fav�mgd�qglUmgv/��#d�~�qgtufav�¸#� ±ÌyId�eg~�mgti»7d�e�qgcUd�§ ¨�©U«�àÖ�Ö áEe�qsmglI~�qslImgdo�

Î VRZ�í[ÿ<YPì�_añ·ô<Z*®�¹Ìt�pCenlU~�~�d�ege�p lUhGzovUyhÏ�®�tipGzov�d�mnmgfam{c`z;e�f4~�~�lUmgmnd�y'�

à â-ã£äkp!Îkb�bJæ�äRå aEæÄbYc£æ?b�debJã[f[bYgih ç

��v�fomgyUd�m�qgf@jUmnf9x#tiyUd�pHzoenqgd�m{mgd�egj¼favUegd�qsti�@d}qgf@d�zo~�cNtuvIyUtix4tuyIl`zoh'~�hutud�v�q{tuv�qscUd�~�zoend��{cId�vN��lIh�¢qstijUhud�~�hutud�v�qseSzomgd�mgd�|4lId�enqgtuvU�@qscUd�eszo�£d�egd�m�x4tu~�d;½7��d�zomnd��ofatuvU��qsf£tuv�qgmgf4yUlU~�d�qscUd�~�fovU~�d�jIq�zovIy�£d�~�c`zovItueg� fop{�@zoenqgd�m¦¢�eghuz�xadRjUmnfa�amgzo�@�£tuvI�U½·�{cUtu~�c"tie�zN~�fo�@�£favªp fomg� fop{~�fovU~�lUmnmgd�vKq�jImgf;¢�amgzo�@�£tuvI��tiv@qgcUd�¤�d�v�x4tumnfavU�£d�v�q��J��v�j`zomnqgtu~�lUhÂzom�½Ktip'p famn�@tivU��z�mgd�egj¼favUend}mgd�|4lItumgd�ekegti�avUt��`~�zov�q��¥aÅ�½·fam}qgcUdÌjUmgf4~�d�egentuvU��qsti�@d�mnd�|KlUtimgd�y�x;zomgtid�e�yUmgzo�@z;qsti~�zohihi�Ízo�£favU�Emnd�|KlUd�e�qse�½Cfam}qgcUd�egd�m�xad�md�Ã#d�~�lIqgd�eJfav�zS~�fo�@jUl#qsd�m<�{tiqgc���lUhiqgtujUhidJjUmgf4~�d�egegfomge�½;qscUd�v�~�favI~�lUmnmgd�vI~���~�falUhiy��omgd�zPqshi��ti�@jImgf9xadmgd�egj¼favUend�qgtu�£do�

��²

Page 38: Introduction to Network Programming Jie Wang Department of

b�cUd��k�I� egf4~��od�qR�«�B��tue�yUd�entu�avId�y�qgfÑ��famg�"�{t�qsc�~�favU~�lUmgmnd�v�qRjImgfa�amgzo�£e���b�cId�yUd�q�zotihueyUd�j7d�vUyÒfovÎqgcUd�lUvUyUd�mgh��#tivU�"faj¼d�mgz;qstivU�"en�4enqgd��ͽ«»Ul#q�tu�£jUhud��@d�vKqsz;qstifavUe£fop�qscUd+enf#~��;d�q��}�J�zoyUcId�mgd�qsfÌqgcUd�p fahuhif[�{tivU��jUmntuvU~�tujUhido�

�Bzo~�c�vUd�� qgcUmgd�zoy�qsc`z;q�tie�~�mgd�z;qsd�y�tivUcUd�mntiqge{z�~�faj���fopJz;huh/foj7d�v�enf#~��;d�qse�p mgfa�-qscUdqgcUmgd�zoyÍqgc`z;q�~�mnd�z;qgd�yÍtiq��

sÉ�+� ¯��OªßÍ3^ Æ ���s½Ä�(ÏÄÀ~À~�N½Ä�=u Ç �(��_ÄÆ�½?¼1��Çb�cUdÌe��#e�qsd�� ~�z;huh �8� � , tie«lUend�y+tuv�qscUd�¤huzovU�alUzo�ad�qgfRjUmnf[x4tiyUd�~�fovU~�lUmnmgd�vU~��o����v�d�egend�vU~�do½ �8� � ,yUt�x#tiyUd�eÌqgcUd�mnlUvUvUtivU�ÑjUmgfa�omszo� tuv�qsf�q���f��)z;hu�£faenq���tuyUd�vKqgtu~�zohkjUmnf#~�d�egend�e�½�»7foqgc�dÄÃ#d�~�l#qstuvI�Ïz;qqscId@egzo�@d�jUhuzo~�d�tiv�qgcUd£eszo�£d�~�f4yUdo�£b�cUd�q���f�jUmgf4~�d�egegd�e�~�fav�qstuvKlUdáQnlUe�q�zoe�t�p�q���f�lUend�mne�c`z;yegti��lUh�q�zovUd�falUenhi�Ee�q�zom�qsd�y�q���fR~�fajUtid�e�fop1qscId�zojIjUhuti~�z;qgtufav'��bGf@tuhihulUe�qsmszPqsd}qscId�lUegzo�ad�fop �8� � , ½7hid�qlUe�huf4fa�@z;q�zÌegtu�£jUhid}d�ÃIzo�£jUhud;�

b�cUd�p fohuhuf9�{tivU�Ì~�f4yUd�tueSz£~�fav�xad�v�qgtufav`z;h1¤ÒjImgfa�amgzo�§qgc`z;qSjUmgtivKqge�qscUd�tuv�qsd��ad�mne�p mnfa� ®�qsfE±zohifavU�Ì�{tiqgc�qgcUd�tim�eglU�Í�

Ú�ïò§�Õ6ðKÜ ©·C·Dë© ¨ Ó ��¬ Ó ­ Ò ¨ Ó à�Ô2+�Ûªá~¨ ã áªà�ð ­6Þ~à�­ §UÕ6ð%§ Ò Ó ­�¬ ã ¬á~§�å á¨Uð ì ­~¨·ê ï6ÚÑ*Ò Ó ©6ÔUÕªÖª¬ØקU­�ÖÂÔ Ò âÉÜ/ÞÂßÑ*Ò Ó ©6ÔUÕªÖª¬ØקU­�Ö Ò ¨YÜ/ÞÂßÒ Ó ­e§�Õ6ð}ð~à Ò�Ó�� ��

Ò Ó ­ Ò §�Õ6ð8�òù�å¨-á ��Ò �eìx Ò ×��òê Ò i�i#� �

Ûªá Ò Ó ­�å �EN é Þ¬2��àªÔUÕ~¬Ø¨�å Ò3Ò §pk�Ö%l ÓON Ò ��å åÂÔUÕ%§�Þ � §U­ªÖ¨UÕ�­���§�Õ6ðMi�� Ò

'Ûªá Ò�Ó ­�å �EN é6Þ¬e§�Õ ð Ò §Pk Ö%l ÓON §�Õ6ð �O¬.; Ò ­ � ù%�O

'�ÎcUd�vÍd�Ã#d�~�lIqsd�y'½rqscUd�jUmnfa�amsz;�§d��£tiqge�egt ÃEhutivUd�e�f;pCfal#qsjUlIq�®

é6Þ¬·��àªÔ�Õ¬ ¨-å Ò3Ò § ìé6Þ¬·��àªÔ�Õ¬ ¨-å Ò3Ò § úé6Þ¬·��àªÔ�Õ¬ ¨-å Ò3Ò §�îé6Þ¬·��àªÔ�Õ¬ ¨-å Ò3Ò §Ðûé6Þ¬·��àªÔ�Õ¬ ¨-å Ò3Ò § êé6Þ¬ §�Õ6ð Ò §ØìUê

��

Page 39: Introduction to Network Programming Jie Wang Department of

b�cUd�p fahihuf9�{tuvI���@f4yUti�Ud�y�xad�mnegtifav�fop#qscUd�zo»7f9xod�d�ÃIzo�£jUhid5~�zohuhie �8� � , qgfS~�mgd�z;qsd�zSvUd��¡jUmgf4~�d�ege��Ñ*Ò Ó ©6ÔUÕªÖª¬ØקU­�ÖÂÔ Ò âÉÜ/ÞÂßÑ*Ò Ó ©6ÔUÕªÖª¬ØקU­�Ö Ò ¨YÜ/ÞÂßÒ Ó ­e§�Õ6ð}ð~à Ò�Ó�� ��

Ò Ó ­ Ò §�Õ6ð8�òù�å¨-á « � �O Ú�ïò©�᪬�à�­�¬òà Ó ¬.9·Ûªá~¨�©�¬�§ § ï6Úå¨-á ��Ò �eìx Ò ×��òê Ò i�i#� �

Ûªá Ò Ó ­�å �EN é Þ¬2��àªÔUÕ~¬Ø¨�å Ò3Ò §pk�Ö%l ÓON Ò ��å åÂÔUÕ%§�Þ � §U­ªÖ¨UÕ�­���§�Õ6ðMi�� Ò

'Ûªá Ò�Ó ­�å �EN é6Þ¬e§�Õ ð Ò §Pk Ö%l ÓON §�Õ6ð �O¬.; Ò ­ � ù%�O

'�ÎcUd�v�z�lUegd�mkd�Ã#d�~�lIqsd�ekqscUd«~�favU~�lUmgmnd�v�qkxod�mgentufavEf;p'qscUd«jUmgfa�omszo�ͽ�qscUdSen�4enqgd��§»¼d��otuvUe5�{tiqsc

z�egtuvI�ahud�jUmnf#~�d�eneSdÄÃId�~�lIqgtuvU��qscId�~�f#yUd;�¾��f9��d�xad�m�½¼�{cId�v�qgcUd�jUmgf4~�d�ege�mgd�zo~�cUd�e�qscUd�~�zohuh/qgf �8� � , ½qscIdRen�4enqgd�� yUlUjUhitu~�zPqsd�e�qscUd�jUmgf4~�d�ege�zovUyÏzohuhif[�{e�»¼foqscúqgcUdRfamntu�ativ`zohJjUmnf#~�d�ene�zovUyúqgcUdRvUd��{hi�~�mnd�z;qgd�y�jUmnf#~�d�ene�qsfªd�Ã#d�~�lIqsd;�Ø�Bzo~�c�jUmgf4~�d�egeRcUzoe�t�qse£f[�{v�~�faj���fop�qscUdÍx;zomgtuzo»Uhud�eÌqsc`z;q@qscUdjUmnfa�amsz;� lUegd�e��{b�cUd�d�zoegtid�e�qS��z��Íqgf�d�vKx4tiegtufov��{c`z;qSc`zojIj7d�vUe«tie{qgf�ti��zo�otuvUd«qgc`z;q�qscUd�en�4e�qsd���@zo�od�e{z�egd�~�favUyÍ~�faj���fop·qscUd�d�v�qstumnd}mglIvUvUtuvI�ÌjUmgfa�omszo�Í�1b�cUd�vÍti��z;�atuvUd{qscUz;q�»¼foqscE~�fajUtud�ekmglIv�âQnlIenqSzoe{tip<q���f�lUend�mge�c`zoy�»¼foqscÍegti��lUh�q�zovUd�falUenhi�@d�Ã#d�~�lIqsd�y�qscUd�jUmnfa�amgzo�R�Ä�

Å�vId�favId5jUzomnqgtu~�lIhÂzom·lUvItujUmnf#~�d�egenfamwen�4enqgd��ͽ;qscId�dÄÃId�~�lIqgtufav�fopIqgcUd5d�ÃIzo�£jUhudBjUmnf#yUlI~�d�ewq���d�hixodhutivUd�e�f;pCfal#qsjUlIq��

é6Þ¬·��àªÔ�Õ¬ ¨-å Ò3Ò § ìé6Þ¬·��àªÔ�Õ¬ ¨-å Ò3Ò § úé6Þ¬·��àªÔ�Õ¬ ¨-å Ò3Ò §�îé6Þ¬·��àªÔ�Õ¬ ¨-å Ò3Ò §Ðûé6Þ¬·��àªÔ�Õ¬ ¨-å Ò3Ò § êé6Þ¬ §�Õ6ð Ò §ØìUêé6Þ¬·��àªÔ�Õ¬ ¨-å Ò3Ò § ìé6Þ¬·��àªÔ�Õ¬ ¨-å Ò3Ò § úé6Þ¬·��àªÔ�Õ¬ ¨-å Ò3Ò §�îé6Þ¬·��àªÔ�Õ¬ ¨-å Ò3Ò §Ðûé6Þ¬·��àªÔ�Õ¬ ¨-å Ò3Ò § êé6Þ¬ §�Õ6ð Ò §ØìUê

�a­

Page 40: Introduction to Network Programming Jie Wang Department of

��vNjUmsz;~�qsti~�d;½¼qgcUd�jUmnf#~�d�ege«~�mgd�z;qsd�y+»�� �8� � , tue�vUfoq«tuv�qsd�vUyUd�yNqsf�»¼d�z;»UegfahilIqsd�hi��tiyUd�v�qsti~�zoh<qsfqscId�famgti�atuv`z;h`jUmgf4~�d�ege�®B�^q�yItiË7d�mge�tuvRfavId}eg�@zohuh¼yUd�q�zotihW�C��vEf;qscUd�m���fomgyUe�½I��d}��falUhiyEhuti�odSqgcUd}q���fjUmnf#~�d�egend�e�qsf�j7d�mnp famn�ûyUt�Ë/d�mgd�v�q{q�z;eg�Ke{»`zoegd�y�favÍz��atixod�v�~�fovUyUtiqgtufav/�

b�cUd{en�4enqgd���p lUvU~�qstifav �8� � , mgd�qslUmnvUe5z}xoz;hulUd�qgf�tiqseJ~�zohuhid�m��N�ÎcUd�v£qgcUdkp lUvU~�qstifav�~�zohihImgd�qslUmnvUe�½qscId�x;zohilUd�mgd�qslUmnvUd�y�qsfEqscId@famntu�ativ`zohwjUmgf4~�d�ege�yUtiË7d�mne}p mgfa� qscUdÌx;zohulIdÌmgd�qglUmgvId�y�qsf�qscUd�vUd��{hi�~�mnd�z;qgd�yÎjUmnf#~�d�ege�� ��v�qgcUdNvUd��{hi��~�mgd�z;qsd�y�jUmgf4~�d�ege�½�qscUd �8� � , mgd�qslUmnvUe Ê�d�mgf%{�tiv�qscId+famgti�atuv`z;hjUmnf#~�d�ege�½ �8� � , mgd�qslUmnvUe�zÍeg�@zohuh1j¼faentiqst�xad£tuv�qsd��ad�m�qscUz;q�tiyUd�v�qgti�`d�e�qgcUd@vId��{hi�Ñ~�mgd�zPqsd�yújUmgf4~�d�ege��bwd�~�cUvUti~�zohihi�o½IqscUd�x;zohilUd�mgd�qslUmnvUd�y�tue�~�z;huhud�yÍzi�>� ��v7{7�7�Ty���{�|~}�y �É{���fom¾�>�7��v7{7�7�?y��@� �>y��o½Utuv�egcIfamnq����

¤�favU~�lImgmgd�v�qÌjUmgfo�amszo�£e�lIegd�qgcUd@x;zohilUd�mnd�qslImgvUd�y"»K� �8� � , qsfNyId�~�tiyUdRcUf9��qgfNjUmgf4~�d�d�y'����vqscId«�£faenq�~�fa�£�£fav�~�zoendo½#qgcUd«~�f#yIdS~�fav�q�zotivUe�z�~�favIyUtiqgtufav`z;h`enq�zPqsd��£d�v�q�qsc`z;qBqgd�enqge�qsf�egd�d«tip7qscUdx;zohulId�mgd�qglUmgvId�y�tie�vUfavÂÊ�d�mnf�zoe{encUf9�{v�»¼d�huf9���Ñ*Ò Ó ©6ÔUÕªÖª¬ØקU­�ÖÂÔ Ò âÉÜ/ÞÂßÒ Ó ­e§�Õ6ð}ð~à Ò�Ó�� ��

Ò Ó ­3Û Ò Ö�§�Õ6ðM�òùÛ Ò Ö��·å~¨-á6« � ��Ò å � Û Ò Ö�ãä��ùM� � Ú�ï·¨�á ÒUã*Ò Ó àªÔÐÛªá¨�©�¬Â§ §Øï6Ú

Ûªá Ò Ó ­ªå �EN é6Þ~¬ë¨-á ÒUã*Ò�Ó àªÔ�۪ᨪ©�¬�§ §4Ûªá Ò�Ó ­*§Ð­6Þ Ò §MÜtl ÓON ��' ¬ªÔª§�¬ �

Û�á Ò Ó ­�å �EN é6Þ¬ Ó ¬39·Û�á¨�©�¬�§�§ Û�á Ò Ó ­*§Ð­6Þ Ò §ÝÜtl Ó�N �O'¬.; Ò ­ � ù%�O

'

sÉ�H¹ å ÆY�����(À�Æ�½ÄÈ �»�Æ�Á¾� ÃÄÀ~�����N�ª���(�4��È ���(ÀÂÁ¾�(À ÃÄÀ~��ÅsÀ~Æ�Ç ��^q�tie«j¼faegentu»Uhid�p fam«z�egd�mnxad�m�qsfEzo~�cItud�xod�egfo�@d�~�favU~�lUmgmnd�vU~��NlUentuvU��z�entuvU�ohud�jUmgf4~�d�ege�½·»IlIq��£faenq~�fovU~�lUmnmgd�vKq�egd�m�xad�mge�lUend���lIhiqstijUhud�jUmgf4~�d�egegd�e�tuvÑqscUd£�@zoenqgd�m�¢^eghuz9xod£pHz;egcUtifav'�R�ÊegtivU�ahud�T[£���}H{����{��E��{��s�>� ��v7{7�7�B»¼d��ativUe�dÄÃId�~�lIqgtufavEtivUtiqgtÂzohihi�>®·�^qkfoj7d�vUe�z�enf#~��;d�q�z;q�qscUd«��d�hih�¢^�4vIf[�{v�j7fam�q�½K�kz;tiqsep fam�qscUd@vUd�Ã4q�mgd�|KlUd�enq�½JzovUyÏ~�mgd�z;qsd�e�z���x £���{���{��E��{��?�>� ��v7{7�7�}qsf�c`zovUyIhud£d�zo~�cÏmnd�|KlUd�enq��Íb�cKlUe�½qscIdÑ�@zoe�qsd�m�end�mnxod�mÍvUd�xod�mÍ~�fa�£��lUvItu~�zPqsd�eEyItumgd�~�qghi���{t�qsc©z"~�hitud�v�qc{�tivUenqgd�zoy/½}tiqEjUzoegend�e�qgc`z;qmgd�egj¼favUentu»Utihutiq��+qgf+z�enhÂz�xadRjImgf4~�d�ene����Bzo~�c¡eghuz�xadRjUmnf#~�d�ene�c`zovUyIhud�e�~�fa�£��lUvUti~�z;qgtufav��{tiqgcÏfavUd~�hitud�vKq��J�Sp qgd�m�qscUd�enhÂz�xad�p famn�@e{zÌmgd�egj¼favUend�zovIy�end�vUyUe�tiq�qgfÌqscUd�~�hitud�vKq�½Utiqkd�Ã#tiqge��

��v"´«È��^É�½<qscUd@��zoe�qsd�m�egd�mnxod�m�~�mgd�zPqsd�e�z�vUd�� enhÂz�xad�egd�m�xad�m�jUmgf4~�d�ege�p fom�d�zo~�c"~�favIvUd�~�qstufovlUentuvU��qgcUd �8� � , en�4enqgd��û~�zohuh)�1¶·tue�qsd�yE»¼d�hif9�©zomgd«qgcUd}e�qsd�jIekqsc`z;q�z�~�favI~�lUmnmgd�v�q�egd�mnxod�m�lUend�ekp fam�z~�fovUvUd�~�qstifav#¢�fomgtud�v�qsd�yÍjUmnfoqsf4~�fah)�

�rfomk��z;enqsd�m�®®a��¤�mnd�z;qgd�z�egf4~��od�q�zovUy+»UtivUyNqsf�qgcUd���d�hih�¢��KvUf9�{v�zoyIyUmgd�ege}p fam�qscUd�end�m�x#ti~�dÌ»¼d�tivU�RfoË7d�mnd�y'�¶·d�z�xod�qgcUd�egf4~��od�qSlUvU~�favUvUd�~�qgd�y'�

¯�¹

Page 41: Introduction to Network Programming Jie Wang Department of

¸#�{�JhÂz;~�d�qscUd�enf#~��;d�qStuv�j`zoenegtixod��@f4yUdo½I��zo�KtivU�Ìtiq{mnd�zoyI��p fam�lUegd�»���z�egd�m�xad�m���I�ÊH{d�j¼d�z;qgd�yUh���~�zohih ÔPØ�Ø�à�2� qsf@mgd�~�d�t�xad�qscUd�vUd�Ã4q«mgd�|KlUd�enqSp mgfa� z�~�hitud�v�q�½rzovUy�~�mgd�z;qsd�z£vId��enhÂz�xad�jUmgf4~�d�ege�qsf£c`zovIyUhud}qgcUd�mgd�enj7fovUegd;�

�rfomkeghuz9xod�®®a�ÊH{d�~�d�tixod�zÌ~�favUvUd�~�qstifavÍmgd�|KlUd�enq��Ht)�Æd;�i½Uenf#~��;d�qSp famkqscUd�~�favUvUd�~�qstifavr��lUj¼favÍ~�mnd�z;qgtufav'�¸#����v�qsd�mszo~�q��{t�qsc+qscId£~�hutid�v�q�lUentuvU�EqscId£~�favUvUd�~�qgtufav�®~H{d�zoy�mnd�|KlUd�e�q[� e���z;vUy�egd�vIyú»`zo~��+mnd�¢enj7favIegd�� e��Ä�

�I��¤�hifaegd�qgcUd�~�favUvUd�~�qgtufav+z;vUy+d�Ã#tiq��«b�cUd�eghÂz�xod�jUmgf4~�d�ege}dÄÃ#tiqse}z;p qsd�mSc`z;vUyUhutivU�Rz;huh<mgd�|4lId�enqgep mnfa�ûfavUd�~�hutid�v�q��

�rfom�entu�£jUhud�zojIjUhuti~�z;qgtufavUe�½rz@entuvU�ahid�egd�m�xad�m}jUmgfo�amszo� ~�zovN~�fav�q�zotiv�zohih·qscUd�~�f4yUd�vId�d�yId�yNp fam»¼foqscúqgcUd��@zoe�qsd�m�zovUyúeghÂz�xod�jUmnf#~�d�egend�e��N�Sp qgd�m�qgcUd�~�zohuhJqgf �8� � , ½CqscId�famntu�ativ`zoh1jUmnf#~�d�ene�huf4fajUe»`zo~��Íqsf�zo~�~�d�jIq}qscIdÌvUd�Ã4q�tuvI~�fa�£tuvU�£~�fovUvUd�~�qstifav'½/�{cUtihud�qscUd�vId�� jUmgf4~�d�ege�»¼d�~�fo�@d�e«qscUdÌenhÂz�xadzovUy�c`zovUyIhud�e�qscIdÍ~�favUvUd�~�qgtufav'�¨�H��v�egfa�£d�~�zoend�e�½�cIf[��d�xod�m�½�t�q���z��"»¼dÍ�@famnd�~�fav�xad�vUtud�v�q�qsfc`z�xad}qgcUd«enhÂz�xad«jUmgf4~�d�egekdÄÃId�~�lIqgd�~�f4yUd«p mnfa� z�jUmnfa�amsz;� qgc`z;q�c`zoe�»¼d�d�vR�{mgt�qgqsd�vEzovUy�~�fa�£jUtuhid�ytuvIyUd�j¼d�vUyId�v�qsh��a�+´SÈS�^Éû~�zovÏc`z;vUyUhud@eglU~�c"~�zoegd�e�d�z;egtuh��>®Ì�^qÌzohihuf9�{e�qscUdRenhÂz�xad@jUmgf4~�d�ege�qgf�~�z;huhàED;à�Ø��[à z;p qsd�mkqscUd�~�zohuh/qgf �8� � , � �

æ ´¶µ æ aEæ?p{ã£äkj çfè gih Ík]�æêé¤ç p µ ãw_�äQf ë æ«å Äûã[b�r â-ã[h h Îo`äk_ p!g�åY_�ã£ä+ç

�ªdÌjUmgd�egd�v�q�zovUf;qscUd�m}d�ÃIzo�£jUhud�tuv�qgcUtue}end�~�qstufov'½/�{cUti~�cªz;huhuf9�{e�qscUd�~�hutid�v�q�jUmnfa�amsz;� qgfEegd�vUyúz�£d�egegzo�ad�qgfRqscUdÌend�mnxod�m�jUmnfa�amsz;��½/zovUyNqscIdÌegd�m�xad�m��{tihuhwd�~�cUfEqgcUdÌ�@d�egegzo�ad�qgfRqscUdÌ~�hutud�v�q��?�údlUend�z�egfa�£d��{cUz;q}yUt�Ë/d�mgd�vKq}jUmgfa�omszo�£�@tivU��enq��4hud;½'tuv��{cUtu~�cN��d�~�mnd�z;qgd�egd�j`zomgz;qsd�jImgfa�amgzo�£eSp famj`zoenegt�xad�egf4~��od�q�z;vUy�zo~�qgtixodÌegf4~��od�q�½wzovUy+tuvI~�hulIyUdÌzR�£famgd��od�vUd�mszohGd�mgmnfam}c`z;vUyUhutivU�RjUmnf#~�d�yUlImgdo���v�zoyUyUt�qstufov'½#��d�jImgf9x4tuyUd�zÌ�@fomgd��ad�vUd�mgzoh�O Ô ,sà�P¼Þ à p fam�~�fo�@jUtihutivU�U�

wK�+� ��_Ä���rªßª0�3ì�Ñí��î°ïoÃÄÀ~�����(ÈTÏÄÀ~�b�cUd�p lIvU~�qgtufavQ¬6á ᪬.; Ò ­ � �£tue�lUegd�yNqsf�cUzovUyUhid�d�mgmgfomge��{�^qStue�yUd��UvUd�y+tiv�qscId��`hidi¬á ᪬.; Ò ­¾Ü¤©Ezoep fahihuf9�{e��

Ú�ï ¬á ᪬�; Ò ­¾Ü¤©2C3¬á ᪬�; Ò ­ ï6Ú

Ñ*Ò Ó ©6ÔUÕªÖª¬ØקU­�Öªàá ã Ü/ÞÂßÑ*Ò Ó ©6ÔUÕªÖª¬ØקU­�Ö Ò ¨YÜ/ÞÂßÑ*Ò Ó ©6ÔUÕªÖª¬ØקU­�ÖÂÔ Ò âÉÜ/ÞÂß

Ú�ï3C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C

¯U®

Page 42: Introduction to Network Programming Jie Wang Department of

ï�¬á ᪬�; Ò ­MCÐÛ�á Ò Ó ­ à Ó ¬á á¨-á·ð~¬Â§ §�à ã ¬ à Ó Ö ¬.; Ò ­ï.C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�Cï Ú

Ò Ó ­ ¬á á�¬.; Ò ­ � ©6¨ Ó §U­ ©�ÞÂàáeï�å¨�á�ð~à�­� Ü Ü�Üð��

��à��ªÔ Ò §U­ëàá ã §&��à���§�­�àá6­ � àá ã §� å¨-á�ð~à­��O��åÛªá Ò Ó ­�å � §U­�Öª¬á�á� å¨�á�ð~à�­� �àá ã §��O��à�� ¬ Ó Ö � àá ã §��O¬.; Ò ­ � ì.�O

'ö ë "�"�Z4_oí ë ñ¼ì�ñ¼\S_añ·ô<Z

Î b�cUd�d�hihutujIegd�e Ü Ü Ü/tuvUyItu~�zPqsdJqsf�qscUd5~�fa�£jUtihud�m'qgc`z;q<qscId�vKlU��»¼d�mCzovUy�q��4j7d�fopIqgcUd�mnd��@zotuvUtivU�zomn�alU�£d�v�qse{�@z���x;zomn�o�

Îòñ zomntÂzo»Ihud�zomg�olU�@d�v�qse�®KקU­�Öªàá ã Ü/ÞÂßU�}b�cUtue�cUd�zoyUd�m��`hud�jUmnf[x4tiyUd�e�qscUd�jUmgfa�omszo�£�@d�m��{tiqscz�j¼famnqszo»Uhid}�@d�zovUekf;pw�{mntiqgtuvU��p lIvU~�qgtufavUe�eglU~�c�zoe 2 �/. Õ�H��FäG qscUz;q�c`z�xad�z�x;zomntÂzo»Uhid«vKlU��»¼d�mfop�zomn�alU�£d�v�qse���b�cIdÌcUd�zoyId�m}�`hid�~�fav�qszotuvUe«favUd �¯62aà�á�à�� zovUyNqscImgd�dÌ�@zo~�mgfae�� ��f9� qgcUd�endzomnd�tu�£jUhud��@d�vKqgd�yEtie�en�4enqgd�� yUd�j¼d�vIyUd�v�qK{`qgcUd�p fahuhif[�{tivU��tie�favUd��kz���t�q�~�zovÍ»¼d�yIfavUdo�

­�ÙÛ¬6Öª¬åe©�ÞÂàáeïL��à��ªÔ Ò §U­�Ñ Öª¬å Ò Ó ¬f��à���§�­�àá6­ � à-Û� 0��� ��� �~¨ Ò Ö � à-Ûv� � ��à��ªÔ Ò §U­���e���iا Ò:� ¬ª¨-å � �������Ñ Öª¬å Ò Ó ¬f��à�� à6á ã� à-Û� Q­�ÙÛ¬%� � ï ��� ­�ÙÛ~¬ ï�� � à-Ûr���:i�i#�Ñ Öª¬å Ò Ó ¬f��à�� ¬ Ó Ö � à-Û � ��� �~¨ Ò Ö@� � à�Û�� ù%���

��v�qscUd��@zo~�mnfó�Âà���§U­�à6á6­ � �K½CqscUdÌx;zomntÂzo»Uhidm�+tie}qscUd�hÂz;enq�zomn�alU�£d�v�q�qsc`zPq��od�qse�yUd�~�huzomgd�ytiv�qscId�cUd�zoyUd�m�qsf£�afalUm�x;zomgtuzo»Uhud�z;mg�alU�£d�v�q�p lUvU~�qstufov�yUd��`vUtiqgtufav/��b�cUtue�xoz;mgtÂz;»Uhud�~�zovUvUfoq»¼d�f;p1enqgfamsz;�ad�~�hÂzoene�� à�Ö . Ù1¦à �^½7zovUy�tiq�~�zovIvUfoq�»7d�zov�zomgmgz9�Eq��4j¼do½¼fam�z�q��4j¼d�enlU~�c+zoe Ø-5PÔ �qgc`z;qB�ad�qse1�{tuyId�vUd�y£»���z;lIqsfa�@z;qgtu~�~�fav�xad�mgegtifavUe��Jb�cUd{��zo~�mgfÅ��à���§U­Âàá6­ � ��tivUtiqgtÂzohit�Ê�d�e·qscUdzomn�alU�£d�v�q�j¼fatuv�qgd�mKà-Û7�Jb�cUd}�@zo~�mgfm��à�� à6á ã� �Ìzo~�~�d�enegd�e{qgcUd}vUdÄÃ4q�zomg�alI�@d�vKq�tuv�qgcUd}hituenq��b�cUdÌ�@zo~�mgf���à�� ¬ Ó Ö � ��j¼d�m�p famg�£e}z;vK��~�hid�zovKlUjNqgc`z;q«��z��Í»7d�mgd�|KlUtimgd�yN»7d�p famgd�p lUvU~�qgtufavdÄÃIt�q��Bb�cUd�p fahihuf9�{tuvU��tue{zovÍd�ÃIzo�£jUhud�tihuhilUenqgmsz;qgtuvU��qscUd�lUend�f;pGqgcUd�end�~�favUenqgmglU~�qse��

Ñ*Ò Ó © ÔUÕªÖª¬Ø×�§�­�Ö Ò ¨MÜCÞÂßÑ*Ò Ó © ÔUÕªÖª¬Ø×�§�­�Öªàá ã Ü/ÞÂß

Ò Ó ­j��à���§UÕ6ð ��Ò Ó ­ © Ó ­� Ü Ü Üß�O

¯K¸

Page 43: Introduction to Network Programming Jie Wang Department of

ð~à Ò Ó�� ��

Ò�Ó ­Øàf�eìx qâ��òú� ©p�òîÛ�á Ò Ó ­�å �EN ô Ò á*§U­ ©�àªÔ�Ô�/ §�Õ6ðM�fk Ö#l ÓON R��à��§�Õ6ð � ú +à� äâr���OÛ�á Ò Ó ­�å �EN õ ¬�© ¨ Ó Ö ©�à�Ô Ô�/�§�Õ6ðM�fk Ö#l ÓON R��à��§�Õ6ð � î� +à� äâ� E©����O

'Ò Ó ­j��à���§UÕ6ð ��Ò Ó ­ © Ó ­� Ü Ü Üß� Úªï3§�Õ ð ­6Þ~¬3àá ã Õ6ð~¬ Ó ­*§Øï6Ú�

Ò�Ó ­ Ò §UÕ6ðv� ù��Âà��ªÔ Ò §�­ à-Û��Âà���§U­�à6á6­ � à-Û� 7© Ó ­��� Úªï3§U­Âàá6­6Õ Û ï6Úå~¨-á ��Ò �òù� Ò × © Ó ­�gi�i Ò �

§�Õ ðvi��·��à�� à6á ã� à-Û� Ò Ó ­��� Úªï ã ¬­3­6Þ~¬ Ó ¬�;6­Øà6á ã Õ6ð~¬ Ó ­ ï6Ú�Âà�� ¬ Ó Ö � à-Ûr�O Úªï3©6Ô6¬ à Ó Õ Û ï6Úá�¬�­6Õªá Ó §�Õ ð�

'

�ªd��{tuhuh7egd�d�qgcUd�p fahuhif[�{tivU��fal#qsjUlIq{�{cUd�v���d�mglUv�qscUtie�jUmgfo�amszo�Í�

ô Ò á~§�­e©àªÔ Ô�/ §�Õ ðv�3îõ ¬�©6¨ Ó Öe©�àªÔ Ô�/ §�Õ ðv�j*

Î �`lUvU~�qstifav ���H2 ��. Õ�H� ~�famnmgd�j¼favUyIewqgf{p lIvU~�qgtufav �H2 �/. Õ�H� �wb�cUd���c`z�xadBqscUd1p fahihuf9�{tuvI�kjUmgf;qsfoq��4j¼d�e�®

Ò Ó ­ åÛ�á Ò Ó ­�å � ô*öUý6ø ï-åÛ� ©6¨ Ó §U­ ©�Þ~àáëï�© Ó ­�á¨���§U­�á Ò�Óªã Ü Ü�ÜÒ�OÒ Ó ­j��åÛªá Ò Ó ­�å � ô*öUý6ø ï-åÛ� ©6¨ Ó §U­ ©�Þ~àáëï�© Ó ­�áÂÔ���§U­�á Ò�Ӫ㠾��à��ªÔ Ò §U­ëà-Û �O�`lUvU~�qstifav �H2 ��. Õ�H� �{mgt�qsd�e}p famg�@z;qgqgd�y�qgd�Ã4q�tuv�qgf�qscUd��UhudÌzoenegf4~�tuz;qsd�yN�{tiqsc �H2 zovIy+mgd�qglUmgvIeqgcUd�vKlU��»¼d�m@fop}~�cUzomszo~�qsd�mge��{mntiqgqgd�v'�Î�^p�z;v�d�mnmgfam£f4~�~�lImge�½kqgcUd�d�mgmnfam@tivUyUti~�z;qgfam�tue£egd�qzovIy�z�vUd���zPqstixod}x;zohulUdStuekmnd�qglUmgvUd�y'���`fam�p lUvU~�qstifav ���H2 �/. Õ�H� ½ItuvUe�qsd�z;yEfopGz�x;zomgtuzo»UhudShud�vU�oqsczomn�alU�£d�v�q�hutienq�½#tiq�cUzoe�z£j¼fatuv�qgd�mkqsf£zovÍzomnmsz��EfopCzomn�alU�£d�v�qse�zoe{yUd��`vUd�y�tuv Ù�¦áKÔ � ÖUÚ²5 �

wK�H¹ "¶ÆY����¼�Ás�ë�����*�s���Ú�ï ÛÂà�§ § Ò ��¬�§6¨ª©U«¾Ü¤©jCÐÛÂà�§ § Ò ��¬�§6¨ª©U« ï6Ú

Ñ*Ò Ó ©6ÔUÕªÖª¬Øק�Ù~§6Ú�­ªÙÛ¬�§ÝÜCÞÂßÑ*Ò Ó ©6ÔUÕªÖª¬Øק�Ù~§6Ú�§ ¨�©U«�¬�­ÉÜ/ÞÂß

Ñ*Ò Ó ©6ÔUÕªÖª¬Ø× Ó ¬�­ Ò Ó ¬�­~Ú Ò Ó Ü/ÞÂß

¯6�

Page 44: Introduction to Network Programming Jie Wang Department of

Ñ*Ò Ó ©6ÔUÕªÖª¬ØקU­�ÖÂÔ Ò âÉÜ/ÞÂßÑ*Ò Ó ©6ÔUÕªÖª¬ØקU­�á Ò Ó�ã Ü/ÞÂßÑ*Ò Ó ©6ÔUÕªÖª¬Ø× Ó ¬�­�ÖâKÜ/ÞÂß

¬.;6­Â¬á Ó Ò Ó ­ ¬á á Ó ¨&Ò Ó ­ ¬á á�¬.; Ò ­ � ©6¨ Ó §U­ ©�ÞÂàáeï�å¨�á�ð~à�­� Ü Ü�Üð�OÕ%��§UÞ*¨-á6­ Û*¨�á6­6âÂà�§¬2�òù� Ú�ïRÛ>¨-á6­3âÂà�§�¬� Qå¨�á Ó ¨ Ó Cᨠ¨-­e§¬á���¬á*§Øï6Ú

Ú�ï3C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�CïRÛÂà�§ § Ò ��¬�§6¨ª©U«8C3à�Ô Ô ¨�©�à­�¬2e â Ò�Ó Ö à §�¬á���¬áe§6¨�©U«Â¬�­·Õ%§ Ò Óªã é�+æ ¨-á ó 5 æï.C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�Cï ÚÒ Ó ­3ÛÂà�§�§ Ò ��¬�§ ¨�©U« � © ¨ Ó §U­ ©�ÞÂàáeï §�¬6á�� Ò ©�¬ © ¨ Ó §U­ ©�ÞÂà6áëïU­ªáªà Ó §�Û>¨-á6­� Ò Ó ­���Ô6¬ Ó �Ú�ïïpD á ã Õ ð~¬ Ó ­*§�/ï §�¬6á�� Ò ©�¬ Cا�¬6á�� Ò ©�¬ à�§�§6¨�© Ò à­�¬Ö�9 Ò ­ Þò­6Þ~¬ Öª¬Â§ Ò áª¬Ö3Û*¨�á6­ï ­�á�à Ó §�Û*¨�á6­MC�­�á�à Ó §�Û*¨�á6­òÛªá¨�­~¨ª©6¨ Ô ­~¨4Õ>§�¬ �EN ­*©UÛ N ¨�á N Õ�ÖÛ N �ï ��Ô6¬ Ó C4ð~à�; Ò ð�Õ6ð §�¬6á���¬á ᪬��Õ¬�§U­v��Õ¬�Õ¬ Ô6¬ Ӫ㠭6Þï Ú�

§U­�áÕ%©U­ §�¬á���¬ Ó ­ ï�Û>§�¬ ÚªïRÛ*¨ Ò Ó ­�¬áò­~¨ §�¬á�� Ò ©�¬ Ò Ó å~¨-á�ð~à�­ Ò ¨ Ó ¬ Ó ­ªá Ù ï6Ú§U­�áÕ%©U­òÛªá¨�­~¨6¬ Ó ­ ï�Û Û¬ ÚªïRÛ*¨ Ò Ó ­�¬áò­~¨4Ûªá¨-­~¨�©6¨ Ô Ò Ó å¨-á�ð~à­ Ò ¨ Ó ¬ Ó ­�á Ùeï6Ú§U­�áÕ%©U­ §6¨�©U«�à6Ö Ö á�� Ò�Ó § Ò Ó Úªï�à Ó ö Ó ­Â¬á Ó ¬�­ë¬ Ó ÖÛ*¨ Ò Ó ­ à6Ö Ö áª¬�§�§ ï6ÚÒ Ó ­e§� o­�ÙÛ¬� Úªï3§6¨ª©U«�¬�­ØÖª¬�§�©�á Ò Û�­*¨-áëà Ó Ö §6¨�©U«Â¬�­ ­�ÙÛ¬ ï6Ú

ð~¬�ð%§¬�­ � e~§ Ò Ó ù� § Ò�� ¬�¨-å � § Ò�Ó ���O§ Ò Ó Ü § Ò Ó �å�à�ð Ò Ô-Ù8�fD ô6�ÂöUþ6ø é�§ Ò Ó Ü § Ò Ó � à6Ö Ö ásܤ§.� àÖ Ö á1� ö�þ�D 5�5 ç%�.D þ�q�Ú�ïLAÂà-Û §�¬á�� Ò ©�¬ Ó à�ð~¬·­~¨ Û*¨-á6­ Ó Õ6ðªâ¬á ï6ÚÒ å � Û>§�¬2� ã ¬�­*§�¬á��6âªÙ Ó à-ð~¬ � §�¬6á�� Ò ©�¬ ­�á�à Ó §�Û*¨�á6­����

§ Ò Ó Ü¤§ Ò Ó �-Û*¨�á6­M��Þª­~¨ Ó § ��Ó ­~¨UÞ>§ ��� Õ%��§UÞ*¨-á6­���Û>§�¬�Cªß�§3�-Û%¨-á6­���i Û*¨-á6­6â~à�§�¬%�O¬ªÔ�§�¬ Ò å ��� § Ò�Ó Ü¤§ Ò Ó �-Û*¨-á6­\��Þ�­*¨ Ó § ��� Õ%��§�Þ*¨�á6­��-à�­*¨ Òx� §�¬6á�� Ò ©6¬%��������� ù%�

¬á�᪬.; Ò ­ �EN ©�à Ó �H­ ã ¬�­8l N k*§�l N §�¬á�� Ò ©�¬Ø¬ Ó ­�á�Ù%l ÓON A§�¬6á�� Ò ©�¬#�OÚ�ïLAÂà-ÛòÛªá¨�­~¨ª©6¨ Ô Ó à�ð~¬·­~¨4Ûªá¨-­~¨�©6¨ Ô Ó Õ ð�â¬áeï6ÚÒ å ��� Û Û¬j� ã ¬�­6Ûªá~¨�­~¨UâªÙ Ó à�ð~¬ � ­�áªà Ó §UÛ*¨-á6­����j���òù%�

¬á ᪬.; Ò ­ �EN ©à Ó �H­ ã ¬�­Ml N k~§�l N Ûªá~¨�­~¨�©6¨�Ô·¬ Ó ­�á Ù%l ÓON Q­�áªà Ó §�Û*¨-á ­��OÚ�ïRó%§�¬�Ûªá¨�­~¨ª©6¨ Ô�­~¨ ©�Þ*¨ ¨�§¬òà §6¨�©�«�¬�­ò­�ÙÛ¬ëï6Ú

¯a¯

Page 45: Introduction to Network Programming Jie Wang Department of

Ò å � §U­�á~©�ð�Û � ­�á�à Ó §�Û*¨�á6­� N ÕªÖÛ N ����� ù%�­�ÙÛ¬2�òõ�è�+.|6� 5 Bç�D.A�

¬ªÔ�§�¬­�ÙÛ¬2�òõ�è�+.|6� õé ç ø�D.A�

Ú�ïPDÂÔ Ô ¨�©à�­�¬ àا ¨�©U«�¬�­ ï6Ú§P� §6¨�©U«Â¬�­ � æ�ô6�ÂöUþ6ø é� �­�ÙÛ~¬� qÛ�Û¬�C ß-Û#�-Ûªá¨�­*¨��OÒ å � §�×3ù%�

¬á ᪬.; Ò ­ �EN ©à Ó �H­ ©-᪬ à�­�¬ë§6¨ª©U«�¬�­�/¥k~§�l ÓON A§U­�á�¬á á¨-á � ¬á á Ó ¨����OÚ�ïÐñ Ò Ó Ö3­6Þ¬ §6¨�©U«Â¬�­ ï6ÚÒ å � â Ò Ó Ö � §� � §U­�á6Õ>©U­ §6¨�©�«�àÖ Ö áeï��:e~§ Ò Ó A§ Ò:� ¬ª¨-å � § Ò Ó ���·×òù%�

¬á ᪬.; Ò ­ �EN ©à Ó �H­Øâ Ò Ó Ö3­~¨Pk*§RÛ*¨�á6­�/�k~§�l ÓON §¬á�� Ò ©¬� #§U­�᪬6á á¨-á � ¬á á Ó ¨6���OÒ å � ­�ÙÛ¬j���òõ è�+.|%� õ�é ç ø�D.A8e�e Ô Ò §U­�¬ Ó�� §� ð��Ô6¬ Ó � ×·ù%�

¬á ᪬.; Ò ­ �EN ©à Ó �H­ Ô Ò §U­�¬ Ó ¨ Ó k~§RÛ*¨-á6­�/¥k~§�l ÓON A§�¬á�� Ò ©�¬� A§U­ªáª¬á á¨�á � ¬á á Ó ¨����O᪬�­6Õ�á Ó §�

'

wK��! ��_Ä�«Ü@Ô%�E��ÑÓ­@��ôXõ~öáî°ïoÃÄÀ~�����(ÈTÏÄÀ~�Ú�ï ÛÂà�§ § Ò ��¬�é�+6æ¾Ü¤©jCÐÛÂà�§ § Ò ��¬�é�+æ ï Ú

Ò Ó ­3ÛÂà�§�§ Ò ��¬�§ ¨�©U« � © ¨ Ó §U­ ©�ÞÂàáeï §�¬6á�� Ò ©�¬ © ¨ Ó §U­ ©�ÞÂà6áëïU­ªáªà Ó §�Û>¨-á6­� Ò Ó ­���Ô6¬ Ó �OÚ�ï3C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�CïRÛÂà�§ § Ò ��¬�é�+6æ8CØ©�á�¬ à�­�¬ à4Û~à�§ § Ò �¬ § ¨�©U«�¬�­Øå¨�á Õ>§¬ Ò Ó àÐé6+æ §�¬á���¬6áï.C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�Cï ÚÒ Ó ­3ÛÂà�§�§ Ò ��¬�é6+æ � ©6¨ Ó §U­ ©UÞÂàá ï §�¬á�� Ò ©�¬� Ò Ó ­���Ô6¬ Ó �Ú�ïïpD á ã Õ ð~¬ Ó ­*§�/ï §�¬6á�� Ò ©�¬�Cا�¬á�� Ò ©�¬ à�§ §6¨�© Ò à�­�¬Ö�9 Ò ­6ÞØ­6Þ¬·Öª¬�§ Ò áª¬Ö3Û*¨-á6­ï ��Ô6¬ Ó C4ð~à.; Ò ðªÕ6ð §�¬á���¬6áòá�¬���Õ¬�§�­��Õ¬-Õ¬ Ô¬ Ó�ã ­6Þï Ú�

᪬�­6Õ�á Ó ÛÂà�§ § Ò ��¬�§6¨�©�« � §�¬á�� Ò ©�¬� N ­*©UÛ N g��Ô¬ Ó ��'

wK�GF ��_Ä�Ø���(ÀÂÁs�NÀ·ÃÄÀ~��ÅsÀ~Æ�ÇÚ�ï4é�+æ�¬Â©�Þ*¨-ÖsÜ ©2C4ð~à Ò Ó oé�+æ�¬�©UÞ*¨-Ö ï6Ú

¯K±

Page 46: Introduction to Network Programming Jie Wang Department of

Ñ*Ò Ó ©6ÔUÕªÖª¬Øק�Ù~§6Ú�­ªÙÛ¬�§ÝÜCÞÂßÑ*Ò Ó ©6ÔUÕªÖª¬Øק�Ù~§6Ú�§ ÒUãÓ àªÔYÜ/ÞÂßÑ*Ò Ó ©6ÔUÕªÖª¬Øק�Ù~§6Ú�§ ¨�©U«�¬�­ÉÜ/ÞÂßÑ*Ò Ó ©6ÔUÕªÖª¬Øק�Ù~§6Ú�­ Ò ð~¬�Ü/Þ~ßÑ*Ò Ó ©6ÔUÕªÖª¬Øק�Ù~§6Ú-á�¬�§6¨UÕªá*©�¬�Ü/ÞÂßÑ*Ò Ó ©6ÔUÕªÖª¬Øק�Ù~§6Ú:9Âà Ò ­¾Ü/Þ~ßÑ*Ò Ó ©6ÔUÕªÖª¬Øק�Ù~§6Ú¬6á á Ó ¨MÜCÞÂßÑ*Ò Ó ©6ÔUÕªÖª¬Ø× Ó ¬�­ Ò Ó ¬�­~Ú Ò Ó Ü/ÞÂß

Ñ*Ò Ó ©6ÔUÕªÖª¬Ø×�Õ Ó%Ò §U­ªÖsÜ/ÞÂßÑ*Ò Ó ©6ÔUÕªÖª¬ØקU­�ÖÂÔ Ò âÉÜ/ÞÂßÑ*Ò Ó ©6ÔUÕªÖª¬ØקU­�Ö Ò ¨YÜ/ÞÂßÑ*Ò Ó ©6ÔUÕªÖª¬ØקU­�á Ò Ó�ã Ü/ÞÂß

Ñ Öª¬6å Ò Ó ¬Øüý ø�þ ê Ú�ï ð*à.; Ò ð�Õ ð © ¨ Ó Ó ¬�©�­ Ò ¨ Ó ��Õ~¬-Õ¬ Ô¬ Ӫ㠭6Þ ï6ÚÑ Öª¬6å Ò Ó ¬òñ�óÂôªõÂö-÷�ø ûªù í�*¬.;6­Â¬á Ó Ò Ó ­ ¬á á Ó ¨&�~¨ Ò Öòá�¬ à-Û¬á ��Ò Ó ­���Ò Ó ­ é6+æ�¬�©�Þ>¨-Ö ��Ò Ó ­ å Ö@�OÒ Ó ­ ¬6á ᪬.; Ò ­ � ©6¨ Ó §U­ ©�ÞÂàáeï�å~¨-á�ð~à�­� ØÜ�Ü ÜÒ�OÒ Ó ­ Û~à�§ § Ò �¬�é�+æ � ©6¨ Ó §U­ ©�ÞÂàáeï §�¬6á�� Ò ©�¬ Ò�Ó ­��ÂÔ¬ Ó �OÚ�ï3C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�Cï ð~à Ò Ó Cf+�¨ Ó ©�Õ�á ᪬ Ó ­Øé6+æ §¬á���¬á å¨�á·ø�+�o�èا¬á�� Ò ©¬ï.C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�Cï ÚÒ Ó ­·ð~à Ò�Ó���Ò Ó ­ à6á ã ©� ©�ÞÂàáeï�à6á ã ��������

©�ÞÂàá ï §�¬á�� Ò ©�¬j� N ¬�©�Þ*¨ N Úªï3§�¬6á�� Ò ©�¬ Ó à-ð~¬ ¨�á Û*¨�á6­ Ó Õ6ð�â¬6á ï6Ú§U­�áÕ%©U­ §6¨�©U«ÂàÖ Ö á�� Ò Ó å~§ Ò�Ó Úªï ­6Þ~¬3àÖ�Ö áª¬�§ §ò¨-åØà © Ô Ò ¬ Ó ­ ï6ÚÒ Ó ­ àªÔ¬ Ó Úªï·Ô¬ Ӫ㠭6Þ ¨-å ©6Ô Ò ¬ Ó ­��7§·àÖ Ö�᪬�§ § ï6ÚÒ Ó ­ ð%§6¨�©�«� Úªï ð~à§U­�¬áe§�¬á���¬áe§6¨�©U«Â¬�­ ï6ÚÒ Ó ­ § §6¨�©�«� Úªï3§6Ô6à3��¬ë§�¬á��¬áë§ ¨�©U«�¬�­ ï6Ú

§�9 Ò ­>©�Þ � àá ã ©�� �©�à�§�¬ ìO/

âªáª¬ à«�©�à�§�¬ ú�/

§�¬á�� Ò ©�¬j�òà6á ã ���EìE��âªáª¬ à«�

Öª¬åªà�Õ*Ô�­�/

¯�¿

Page 47: Introduction to Network Programming Jie Wang Department of

¬á ᪬�; Ò ­ �EN Õ>§�à ã ¬�/Qé�+æ¬�©�Þ*¨-Ö<�/Û>¨-á6­��%l ÓON �O'ð%§6¨�©�«���ÛÂà�§ § Ò ��¬�é�+6æ � §�¬á�� Ò ©�¬� ¡üý6øªþ@�O� �~¨ Ò Ö@�ò§ ÒUãÓ à�Ô � õÂö:B�+.o�ý 5 ᪬ à-Û¬6á@�O96Þ Ò Ô6¬ � ì.� �

àªÔ¬ Ó � § Ò�� ¬ª¨�å � å~§ Ò�Ó �O§ §6¨�©�«��òà�© ©�¬�Û�­ � ð%§ ¨�©U«� � §U­�áÕ>©�­e§ ¨�©U«�àÖ�Ö á ï���e å*§ Ò Ó geªàªÔ6¬ Ó �OÒ å � § §6¨�©�« ×3ù%� �

Ò å � ¬á á Ó ¨f���·ø>öUþ é ç��·Ú�ï ø%öUþ6é ç3ð~¬ à Ó § ­ ÞÂà�­ëà § Ò�ãÓ àªÔ3àá á Ò ��¬Ö3â¬å~¨-᪬ëï6ÚÚ�ï ­ Þ¬ á�¬ àÖ ¨UÛ¬á�à�­ Ò ¨ Ó ©6¨�Õ*Ô-Ö Öª¬ªÔ Ò ��¬á Öªà�­�à�Ü ï6Ú

© ¨ Ó ­ Ò Ó Õ¬�¬á ᪬.; Ò ­ �EN à© ©�¬-Û�­}/¾k~§�l ÓON §U­�᪬á�á¨-á � ¬6á á Ó ¨����O

'§�9 Ò ­>©�Þ � å¨-á6« � ��� �©�à�§�¬ ù�/ Ú�ï3©�Þ Ò Ô�Ö ï Ú

� �~¨ Ò Ö��3© Ô ¨�§�¬ � ð%§6¨�©U«r�O¬.; Ò ­ � é�+æ�¬�©UÞ*¨-Ö � §�§6¨�©U«����O

Öª¬åªà�Õ*Ô�­�/ Ú�ïRÛÂà᪬ Ó ­ ï6Ú� �~¨ Ò Ö��3© Ô ¨�§�¬ � § §6¨�©U«r�Oâªáª¬ à�«�

©�à�§�¬�C*ì�/¬á ᪬.; Ò ­ �EN å~¨-á6«�/gk*§�l ÓON A§U­ªáª¬á á¨�á � ¬á á Ó ¨����O

''

'Ú�ï3C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�Cï é�+æ�¬Â©�Þ*¨-ÖMC3¬�©�Þ*¨�Öªà�­�à Õ Ó ­ Ò Ô·¬ Ó Öë¨-å3å Ò Ô¬ï.C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�Cï ÚÒ Ó ­òé�+æ¬�©�Þ*¨-Ö ��Ò Ó ­ëå�Ö@��

©�ÞÂàá3â Õ�å��äñ�ó�ô�õÂö-÷.��Ò Ó ­ © ©&96Þ Ò Ô6¬ � © ©P�·áª¬ àÖ � å Ö� ¶â Õ�å� § Ò�� ¬ª¨-å3â Õ�å@��� �

Ò å � © ©�×3ù%�¬6á ᪬.; Ò ­ �EN ¬�©UÞ*¨3᪬ à6Ö�/�k*§�l ÓON A§U­ªáª¬á á¨�á � ¬á á Ó ¨����O

Ò å � 9�á Ò ­�¬ � å Ö� ¶â Õ�å� ©�©��Ð×òù%�¬6á ᪬.; Ò ­ �EN ¬�©UÞ*¨f9�á Ò ­�¬�/�k~§�l ÓON §�­�᪬á á~¨-á � ¬á�á Ó ¨�����

¯K²

Page 48: Introduction to Network Programming Jie Wang Department of

'᪬�­6Õ�á Ó ù�

'Ú�ï3C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�Cï4᪬ à-Û~¬ávCØ©6Ô6¬ à Ó Õ Û � ¨�ð�â Ò ¬ë©�Þ Ò Ô-Ö áª¬ Óï.C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�Cï Ú

Ú�ï:D ç�B�õ�ó~õø 5 ï6Ú�~¨ Ò Öòá�¬ à-Û¬á ��Ò Ó ­ § Ò�ã ��

Ò Ó ­e§U­�à�­ Õ>§�96Þ Ò Ô6¬ � 9�à Ò ­ªî � e~§U­�à­6Õ>§� g÷�þªè3o�D þ�B � §U­�áÕ%©U­ áÕ>§�à ã ¬Øï��-ù%� ß�� ù%�Ú�ï ¬�ð�Û�­�Ùeï6Ú$

'ö ë "�"�Z4_oí ë ñ¼ì�ñ¼\S_añ·ô<Z

�«e1qscId�dÄÃIzo�@jIhudkencUf9�{e�½KqscUd{~�z;huhuewqsc`zPqB~�fav�qsmnfahU~�favU~�lImgmgd�vU~���f4~�~�lUj���favUh���z�eg�@zohihIj¼famnqgtufavfop�qscUd�~�f#yUd;��� ��z;enqsd�mEegd�mnxad�m�jImgf4~�d�ene�»¼d��otuvUeEdÄÃId�~�lIqgtuvU��z;q Ý«Ô . Õ ���Sp qgd�m�tiqR~�cUd�~��Ke�t�qsezomn�alU�£d�v�qse�½BqgcUdR�@zoenqgd�m�end�m�xad�m�~�zohuhie 2PÔ[ÙnÙ . �[à�I�JÝL qgf+~�mgd�z;qsd�zNjUzoegentixadEenf#~��;d�qÌp fam�qscUdR��d�hih�¢�KvUf9�{v�jUmnfoqsf4~�foh'j7fomnq��J�^q{qgcUd�vÍd�v�qsd�mgeSzovÍtuvI�`vItiqsd«huf4faj'�

�}lUmgtivU��d�zo~�c"t�qsd�mgz;qstifav�fop�qgcUd�hif#foj'½·qscUd@��zoe�qsd�m�end�mnxod�m�~�zohuhie ÔPØ�Ø�à-2� qgfÍ��zot�q�p fam�z�~�fav#¢vUd�~�qstifavÍmgd�|KlUd�enq�p mgfa�§z£~�hutid�v�q�½I�{cItu~�cÍ»Uhuf4~��Ke�lIvKqgtuh·zÌmnd�|KlUd�e�q}z;mgmgt�xad�e��B�Sp qgd�m�qscUd�lUvIyUd�mnhi�4tuvU�b�¤k�¡jUmgfoqgf#~�fahregfop q���zomnd}mgd�~�d�t�xad�e�z�~�favUvUd�~�qstifavRmnd�|KlUd�e�q�½IqgcUd«e��4enqsd��§~�mgd�zPqsd�e�z�egf4~��od�qkp famBqscUdvUd��¨~�favIvUd�~�qstufov'½rzovUyEqscId�~�zohuh7qsf ÔPØ�Ø�à�2� mgd�qslUmnvUe�qgcUd�egf4~��od�q«yUd�eg~�mgtuj#qsfam��

�Sp qsd�m ÔPØ�Ø�à-2� mgd�qslUmnvUe�½`qscId��@zoe�qsd�m{end�mnxod�m�~�mnd�z;qgd�eSz�enhÂz�xad�jUmnf#~�d�ege{qsf�c`z;vUyUhud}qgcUd�~�favUvId�~�¢qstifav'�GbGf�yUf«egfU½aqgcUdk�@zoenqgd�m1jUmnf#~�d�eneJ~�zohihue �8� � , qsf«yUtix4tuyId�tiqgegd�hiprtuv�qgf«q���f�jUmnf#~�d�enegd�e��Jb�cUd�vUd��{hi�~�mnd�z;qgd�y�~�cUtihuy�jImgf4~�d�ene1�`mge�qJ~�hifaegd�eCqscIdk��z;enqsd�mCenf#~��;d�q�½4zovIy�qscUd�vÌ~�zohihuewjUmgf4~�d�yUlUmgd IKJÝLUà�Ø�5U�#á qsfc`zovIyUhud�qscId�~�favUvUd�~�qstifav'�5b�cUd�j`zomgd�v�qSjImgf4~�d�ene«~�hufaend�e�qscUd�egf4~��od�qSqgc`z;q{��zoeS~�mgd�z;qsd�y�qsf£c`zovIyUhudqscId�vUd��Ò~�favIvUd�~�qstufov'½`zovUy�~�fav�qstuvKlUd�e�d�Ã#d�~�lIqstivU�ÌqscUd�tivI�`vUt�qsdShuf4faj'�1b�cUd�vId�Ã4q�tiqsd�msz;qgtufav@fop<qscUdhuf4faj+�{tuhihG��zotiq�z;q�qgcUd ÔPØ�Ø�à�2� ~�zohihCp fam�zovUf;qscUd�m�vId���~�favUvUd�~�qgtufav�qsf�zomgmntixodo�£ÈSfoqgdÌqsc`z;q�»¼foqscqscIdEfamgti�atuv`z;h�z;vUy¡vUd��-jUmgf4~�d�egend�e£c`z�xad�zo~�~�d�eneÌqsf+faj¼d�v¡egf4~��od�qse@z;p qsd�m�qscIdE~�zohih5qgf �8� � , ½5zovIyqscUz;q�qgcUd��Ñ»¼foqscª��lUenq�~�hifaegd@z�enf#~��;d�q�»¼d�p famnd£qgcUd�e��#e�qsd�� yUdÄ¢¦zohihuf4~�z;qgd�e�tiq��Eb�cKlUe�½1�{cUd�vÏqscUd�@zoenqgd�m�jUmgf4~�d�ege�~�zohuhie ØPÞ �aÙ�à p fom�qgcUd�vId�Ã4q�~�favUvUd�~�qstifav'½wqscUd@egf4~��od�q�p fam�qsc`z;q�~�fovUvUd�~�qstifavÏfavUh��yUtieszojUj¼d�z;mge@p mnfa� qgcUd��@zoenqgd�m£jUmgf4~�d�ege���4tu�£tuhÂz;mghi�o½1�{cUd�v�qscUd�eghÂz�xod�jUmnf#~�d�ege@~�zohihue Ø;Þ �aÙ�à p famqscId��@zoenqgd�m�egf4~��od�q�½rqscUd�egf4~��od�q}favUh��EyUtieszojUj¼d�z;mge{p mgfa�§qgcUd�eghÂz�xod�jUmnf#~�d�ege��kb�cUd�eghÂz�xod�jUmnf#~�d�ene~�fovKqgtuvKlUd�e�qgf@mnd�q�z;tuvÍzo~�~�d�ene�qgf£qgcUd�egf4~��od�qSp famkqscId�vId��¨~�favUvUd�~�qstifavÍlUv�qstuh'qgcUd�eghuz9xod�dÄÃ#tiqse°{UqscUd�@zoenqgd�mJegd�mnxod�m5~�fav�qstivKlUd�eJqsf�mnd�q�z;tuv�zo~�~�d�eneJqsf�qscUd�enf#~��;d�q5qsc`zPqB~�famnmgd�enj7fovUyUeJqsf�qscIdk��d�huh�¢^�KvUf9�{vj¼famnq��

�Sp qsd�m5qgcUd«enhÂz�xad«~�hufoegd�e5qscUdS��z;enqsd�m�enf#~��;d�q�½Utiq5~�z;huhueBjUmnf#~�d�yUlImgd IKJMLIà�Ø-5U�4á ½#�{cItu~�cRjUmnf9x#tiyUd�eqscIdw�5¤É�«ÅÊegd�mnx4tu~�dÌp fam}favUdÌ~�favUvUd�~�qgtufav'���Bmnf#~�d�yUlImgd I�JÝLUà�Ø-5U�4á ~�favUegtienqge�f;p�zEhif#faj�qsc`z;q�mnd�¢

¯6�

Page 49: Introduction to Network Programming Jie Wang Department of

j¼d�z;qgd�yUh���~�zohuhie�� à�Ô[á qgfEfa»Iqszotuv�y`z;q�z£p mgfa� qscUd�~�favUvId�~�qgtufav�z;vUyNqscUd�v+~�zohihue Ó �/. ¦à qgfRegd�vUy+qscUdesz;�@d�y`z;qszÌ»`zo~��Ef9xad�m{qgcUd�~�favIvUd�~�qstufov'�

é�ê ZK]`ì ë ìwòúÿwþ�ZKY[Y[]`ì7í£þGY[ñ·_aZ�" "�Zª"

¤�favU~�lImgmgd�v�q�end�m�xad�mneB�ad�vUd�msz;qgd�jUmgf4~�d�egend�e5yI�4v`zo�£tu~�z;huhi�o½P�{cItu~�c�tuv�qsmnf#yIlU~�d�z}j¼foqgd�v�qstuzohIjUmnfa»#¢hud��ûfopGtuvU~�fa�£jUhud�qsd�h��@qgd�mn�@tiv`z;qsd�yEjUmgf4~�d�egend�e���´«È��^É enfahixod�e�qscId�jUmnfa»Uhid��§»��Eend�vUyItuvU�@z Ù . Ö#ÕPÔKÞqsf�qscId£jUzomgd�vKq��{cUd�vUd�xod�mÌzE~�cUtihuy�jUmnf#~�d�ege�d�Ã#t�qse���b�cUd£d�Ã#t�qstuvI�ÍjImgf4~�d�ene�mnd��@zotuvIe}tuvÑz�ø �IÝ 0. àenqsz;qsd�lUv�qstuh·qgcUd�j`z;mgd�v�q�dÄÃ#d�~�l#qsd�e�z ÓBÔ . Áù e��#e�qsd�� ~�zohuh)� ÓJÔ . Áù yUd�hÂz��4e«tiqge«~�zohuhid�m{lUv�qstihGz@egtu�ov`zohtueSmgd�~�d�t�xad�yÑfom«favUd�fopBtiqge«~�cUtihuyNjUmnf#~�d�enegd�e}qgd�mn�@tiv`z;qsd�e«famSenqgfajUe}yUlId�qsf�qgmszo~�tuvU�I�}�^p5zov���~�cItuhuyjUmnf#~�d�egeBc`z;e1yUtud�yÌfam1e�qsfajUj¼d�y�yUlId�qsf}qgmszo~�tuvU��z;vUy�qscUtie1c`zoeJvIfoqBzohimgd�z;yI��»7d�d�v�mgd�j7fam�qsd�y'½�mgd�qslUmnvtue�ti�@�£d�yItÂz;qgdo½Imnd�qglUmgvUtivU�ÌqscUd�jUmnf#~�d�ene��¦� zovUy�enqsz;qslIeSfopGfavUd�fopwqscIfaegd�~�cUtihuyUmnd�v'�J�^pGqsc`z;q{~�cItuhuyjUmnf#~�d�egeSc`zoe�yUtud�y'½`tiq{tie{yUtuen~�zomnyUd�y'���^pCqscId�mgd�zomnd�vIf�~�cUtihuyUmnd�v'½I¢s®�tie{mgd�qglUmgvId�yNti�@�£d�yUtuz;qsd�hi�o�1�^pqscId�mgd}zomgdSfavUhi�£mnlUvUvUtivU��fam�enqgfajUj¼d�yE»UlIq�mgd�j7fam�qsd�yR~�cUtuhiyUmgd�v'½#qgcUd«~�zoh�¢ChutivU��jUmgf4~�d�egektie�»Uhif#~��;d�y'�

bGf�qgd�mn�@tiv`z;qsd@z�~�cItuhuyú~�fa�£jUhud�qsd�hi��� tW�°do��½CqsfNd�huti�@tiv`z;qsd�z Ê�fa��»Utud@jUmgf4~�d�ege��ĽJfalUm�d�ÃIzo�£jUhud�5¤É�}Å�end�m�xad�mw~�zPqs~�cUd�e<qgcUdJ~�cUtihuy}qsd�mg�£tuv`zPqstufov«egti�av`zohazovUy�d�Ã#d�~�lIqsd�eCzkentu�avUzohoc`z;vUyUhutivU�kp lUvU~�qstifav'�b�cUdk~�zohuh§ ÒUãÓ à�Ô � õÂö:B�+.o�ý 5 ᪬ à-Û~¬á@��tuvIp famn�@e·qgcUd�foj7d�msz;qgtuvU��en�4enqgd��Ðqsc`z;qwqscId��@zoenqgd�mGegd�m�xad�mjUmnf#~�d�ege�egcIfalUhuyEdÄÃ#d�~�l#qsd�p lUvU~�qgtufavk� à�Ô62aà �·�{cId�vUd�xad�mStiq�mnd�~�d�tixod�e�zÌegti�av`zoh¼qsc`z;q�zÌ~�cUtihuyEjUmnf#~�d�enec`zoe«d�Ã#tiqgd�y��Hentu�avUzoh$� ±ûúYJ$ü °�ý5���/��p qsd�m«qscUd�~�zohihwqgf Ù . ÖIÕPÔ�Þ ½/qgcUd�en�4e�qsd�� zolIqgfa��zPqstu~�zohuh��Etuv�xofa�od�e� à�Ô 2oà �wd�z;~�c�qsti�@dSqscUd�egd�mnxod�m�jUmgf4~�d�ege�mgd�~�d�t�xad�eSzê� ±ûúYJ$ü °�ý�entu�av`z;hW��rlIvU~�qgtufav�� à�Ô 2oà �G~�zohihue{en�4enqgd�� p lUvU~�qstufov ÓBÔ . Áù qsf£~�fa�£jUhid�qsd�qsd�mg�£tuv`zPqstufovRp fam«z�~�cUtihuy�qgc`z;qd�Ã#t�qse��¡b�cUdEp lUvI~�qstifav ÓBÔ . Áù »Uhuf4~��Ke�lUv�qstuh�favUd�famÌ�£famgdE~�cUtihuyUmnd�v¡d�Ã#t�q�� p fam�zov��¡mnd�zoenfavr���"�^qmgd�qslUmnvUeÍzÏxoz;hulUd+tiv�qscUd+e�q�z;qglUe�enqsmnlU~�qglUmgd+qgc`z;q�~�z;v©»¼d�d�ÃIzo�£tuvUd�y�qsf"�`vUyÎfal#qÍzo»7folIqEqscUdjUmnf#~�d�egeSqsc`z;q«d�Ã#tiqgd�y'��bwfRd�vUenlUmgd�qsc`z;q«zovNd�mgmnfavUd�folUe«~�zohuh<yUf4d�eSvUfoq}yId�zoyUhif#~��EqgcUd�end�mnxod�m�½/qscUdjUmnfa�amsz;�-lUend�e�zomn�alU�£d�v�q�þp�� ü �}� ú ½U�{cUtu~�cE�£d�zovIe�egj¼d�~�t��`d�ekqgc`z;q�dÄÃ#d�~�l#qstufovÍf;pwqgcUd�~�z;huhutivU�jUmnf#~�d�ege@tue£vUfoq£eglIegj¼d�vUyUd�y�tip«enq�zPqslUe@tue�vUfoq£tu�£�£d�yUtuz;qsd�hi�úz9x;zotihÂzo»Ihud�p fam@zov��¡~�cUtihuy�jUmgf4~�d�ege���Sd�vU~�d;½'tiqSegj¼d�~�ti�`d�e«qscUz;q ÓJÔ . Áù egcIfalUhuy�vUfoqS»Uhuf4~��E�kzot�qstivU�£p fom«z�jImgf4~�d�ene«qsf@d�Ã#tiq�½7»IlIq}encUfalUhiymgd�qslUmnv�ti�@�£d�yItÂz;qgd�hi�o½#d�xad�v�tipGvUf�jUmnf#~�d�ege�c`zoe{dÄÃIt�qsd�y'�

wK�0S ÿ·� �¼�Ás� �����*�s���Ú�ïò©6¨ Ó Ó ¬�©U­*§6¨ª©U«¾Ü¤©jCØ©6¨ Ó Ó ¬�©U­*§6¨ª©U« ï6Ú

Ñ*Ò Ó ©6ÔUÕªÖª¬Øק�Ù~§6Ú�­ªÙÛ¬�§ÝÜCÞÂßÑ*Ò Ó ©6ÔUÕªÖª¬Øק�Ù~§6Ú�§ ¨�©U«�¬�­ÉÜ/ÞÂß

Ñ*Ò Ó ©6ÔUÕªÖª¬Ø× Ó ¬�­ Ò Ó ¬�­~Ú Ò Ó Ü/ÞÂßÑ*Ò Ó ©6ÔUÕªÖª¬Ø×�àáÛÂàªÚ Ò Ó ¬�­¾ÜCÞÂß

Ñ*Ò Ó ©6ÔUÕªÖª¬Ø× Ó ¬�­�ÖâKÜ/ÞÂßÑ*Ò Ó ©6ÔUÕªÖª¬ØקU­�á Ò Ó�ã Ü/ÞÂßÑ*Ò Ó ©6ÔUÕªÖª¬ØקU­�ÖÂÔ Ò âÉÜ/ÞÂß

¯�­

Page 50: Introduction to Network Programming Jie Wang Department of

Ñ*Ò å Ó Öª¬å öUþ�D 5�5 ç6�6þªèþ6øÑ Öª¬6å Ò Ó ¬eöUþ�D 5�5 ç6�6þªèþ6ø ù.;�å å å å å�å å åÑ ¬ Ó Ö Ò å Ú�ïòöUþ�D 5�5 ç6�þªè6þ6ø ï6Ú

¬.;6­Â¬á Ó Ò Ó ­ ¬á á Ó ¨&Ò Ó ­ ¬á á�¬.; Ò ­ � ©6¨ Ó §U­ ©�ÞÂàáeï�å¨�á�ð~à�­� Ü Ü�Üð�OÚ�ï3C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�Cï3©6¨ Ó Ó ¬�©U­*§6¨ª©U«8C3à�Ô Ô ¨�©�à­�¬2eë©6¨ Ó Ó ¬�©U­ëàا6¨�©U«�¬­3Õ%§ Ò Óªã é�+æ ¨-á ó 5 æï.C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�Cï ÚÒ Ó ­e©6¨ Ó�Ó ¬�©U­*§ ¨�©U« � © ¨ Ó §U­ ©�ÞÂàáeï�Þ*¨ª§U­� ©6¨ Ó §U­ ©�Þ~àáëï�§�¬á�� Ò ©�¬� #©6¨ Ó §U­ ©�ÞÂàá ïU­�áªà Ó §�Û*¨-á ­��Ú�ïïpD á ã Õ ð~¬ Ó ­*§�/ï Þ*¨ª§U­ C Ó à-ð~¬ ¨�å Þ*¨ª§U­3­*¨p96Þ Ò ©�Þ ©6¨ Ó Ó ¬�©U­ Ò ¨ Ó Ò §4Öª¬Â§ Ò áª¬Öï §�¬6á�� Ò ©�¬ Cا�¬6á�� Ò ©�¬ à�§�§6¨�© Ò à­�¬Ö�9 Ò ­ Þò­6Þ~¬ Öª¬Â§ Ò áª¬Ö3Û*¨�á6­ï ­�á�à Ó §�Û*¨�á6­MC Ó à-ð~¬ ¨�å·­�á�à Ó §�Û*¨�á6­òÛªá¨�­~¨ª©6¨ Ô ­~¨4Õ>§�¬ �EN ­*©UÛ N ¨-á N Õ�ÖÛ N �ï Ú�

§U­�áÕ%©U­òÞ*¨�§U­�¬ Ó ­ ïUÛ Þ¬� Ú�ï Û*¨ Ò�Ó ­�¬áò­~¨4Þ*¨�§U­ Ò Ó å~¨-á�ð~à�­ Ò ¨ Ó ¬ Ó ­ªá Ù ï Ú§U­�áÕ%©U­ §�¬á���¬ Ó ­ ïUÛ>§�¬� Ú�ï Û*¨ Ò�Ó ­�¬áò­~¨ §�¬á�� Ò ©�¬ Ò Ó å¨�á�ð~à�­ Ò ¨ Ó ¬ Ó ­�á�Ù ï Ú§U­�áÕ%©U­òÛªá¨�­~¨6¬ Ó ­ ïUÛ Û¬� Ú�ï Û*¨ Ò�Ó ­�¬áò­~¨4Ûªá¨�­*¨�©6¨ Ô Ò Ó å~¨-á�ð~à�­ Ò ¨ Ó ¬ Ó ­ªá Ù~ï6Ú§U­�áÕ%©U­ §6¨�©U«�à6Ö Ö á�� Ò�Ó § Ò Ó Ú�ï à Ó ö Ó ­�¬á Ó ¬�­ ¬ Ó Ö6Û*¨ Ò Ó ­ëàÖ�Ö áª¬�§ § ï ÚÒ Ó ­e§� o­�ÙÛ¬� Ú�ïò§6¨�©�«�¬�­ØÖª¬�§ ©-á Ò Û�­~¨�áØà Ó Öe§6¨�©U«�¬­3­�Ù6Û¬ ï Ú

ð~¬�ð%§¬�­ � e~§ Ò Ó ù� § Ò�� ¬�¨-å � § Ò�Ó ���O§ Ò Ó Ü § Ò Ó �å�à�ð Ò Ô-Ù8�fD ô6�ÂöUþ6ø é�Ú�ïLAÂà-Û §�¬á�� Ò ©�¬ Ó à�ð~¬·­~¨ Û*¨-á6­ Ó Õ6ðªâ¬á ï6ÚÒ å � Û>§�¬2� ã ¬�­*§�¬á��6âªÙ Ó à-ð~¬ � §�¬6á�� Ò ©�¬ ­�á�à Ó §�Û*¨�á6­����

§ Ò Ó Ü¤§ Ò Ó �-Û*¨�á6­M��Û%§�¬�C ß�§.�-Û*¨-á6­�¬ªÔ�§�¬ Ò å ��� § Ò�Ó Ü¤§ Ò Ó �-Û*¨-á6­\��Þ�­*¨ Ó § ��� Õ%��§�Þ*¨�á6­��-à�­*¨ Òx� §�¬6á�� Ò ©6¬%��������� ù%�

¬á�᪬.; Ò ­ �EN ©�à Ó �H­ ã ¬�­8l N k*§�l N §�¬á�� Ò ©�¬Ø¬ Ó ­�á�Ù%l ÓON A§�¬6á�� Ò ©�¬#�OÚ�ïLAÂà-ÛòÞ*¨�§U­ Ó à�ð~¬·­~¨Øö�æØàÖ Ö áª¬Â§ §� àªÔ Ô�¨:9 Ò Óªã å¨�á3Ö¨-­ ­�¬Ö Öª¬�© Ò ð~àªÔØï6ÚÒ å � Û Þ¬2� ã ¬�­6Þ*¨�§�­6âªÙ Ó à-ð~¬ � Þ*¨ª§U­����

ð~¬�ð%©�Û�Ù � e~§ Ò�Ó Ü¤§ Ò Ó � àÖ Ö á� �Û Þ~¬�C ß-Þ%��àÖ Ö á� ¶Û�Þ¬�C ß-Þ#�ªÔ¬ Ӫ㠭6Þr�O¬ªÔ�§�¬ Ò å ��� § Ò Ó Ü¤§ Ò Ó ��àÖ Ö ásÜ §3� àÖ Ö�á\� Ò Ó ¬�­6��àÖ Ö á � Þ*¨�§U­����2��� öUþ�D 5�5 ç6�þªè6þ6ø��

¬á ᪬�; Ò ­ �EN ©�à Ó �H­ ã ¬�­8l N k~§�l N Þ>¨�§U­ë¬ Ó ­�á�Ù%l ÓON oÞ*¨ª§U­��OÚ�ïLAÂà-Û ­�áªà Ó §UÛ*¨-á6­ Ûªá~¨�­~¨�©6¨�Ô Ó à�ð~¬ ­~¨ Û�á¨�­~¨�© ¨ Ô Ó Õ6ð�â~¬áëï Ú

±o¹

Page 51: Introduction to Network Programming Jie Wang Department of

Ò å ��� Û Û¬j� ã ¬�­6Ûªá~¨�­~¨UâªÙ Ó à�ð~¬ � ­�áªà Ó §UÛ*¨-á6­����j���òù%�¬á ᪬.; Ò ­ �EN ©à Ó �H­ ã ¬�­Ml N k~§�l N Ûªá~¨�­~¨�©6¨�Ô·¬ Ó ­�á Ù%l ÓON Q­�áªà Ó §�Û*¨-á ­��O

Ú�ïRó%§�¬�Ûªá¨�­~¨ª©6¨ Ô�­~¨ ©�Þ*¨ ¨�§¬òà §6¨�©�«�¬�­ò­�ÙÛ¬ëï6ÚÒ å � §U­�á~©�ð�Û � ­�á�à Ó §�Û*¨�á6­� N ÕªÖÛ N ����� ù%�

­�ÙÛ¬2�òõ�è�+.|6� 5 Bç�D.A�¬ªÔ�§�¬

­�ÙÛ¬2�òõ�è�+.|6� õé ç ø�D.A�Ú�ïPDÂÔ Ô ¨�©à�­�¬ àا ¨�©U«�¬�­ ï6Ú§P� §6¨�©U«Â¬�­ � æ�ô6�ÂöUþ6ø é� �­�ÙÛ~¬� qÛ�Û¬�C ß-Û#�-Ûªá¨�­*¨��OÒ å � §�×3ù%�

¬á ᪬.; Ò ­ �EN ©à Ó �H­ ©-᪬ à�­�¬ë§6¨ª©U«�¬�­�/¥k~§�l ÓON A§U­�á�¬á á¨-á � ¬á á Ó ¨����OÚ�ï�+�¨ Ó Ó ¬Â©U­ ­6Þ¬ §6¨�©U«�¬­eï ÚÒ å � ©6¨ Ó Ó ¬�©U­ � §& � §U­�áÕ%©U­ §6¨�©U«�à6Ö Ö á ï���e*§ Ò Ó A§ Ò�� ¬ª¨-å � § Ò Ó ���·×òù%�

¬á ᪬.; Ò ­ �EN ©à Ó �H­ © ¨ Ó Ó ¬�©�­ò­*¨Pk~§MÜ�k~§$/¥k~§�l ÓON oÞ*¨�§U­� §�¬6á�� Ò ©�¬ §U­�᪬6á á¨-á � ¬á á Ó ¨6���O

᪬�­6Õ�á Ó §�'

wK��Y ��_Ä��¬��$�x�#��¬��KôXõ~öÅîcï¶ÃÄÀ~�����(ÈTÏÄÀ~�Ú�ïò©6¨ Ó Ó ¬�©U­ é�+6æ¾Ü¤©jCØ©6¨ Ó Ó ¬Â©U­ é�+æ ï Ú

Ò Ó ­e©6¨ Ó�Ó ¬�©U­*§ ¨�©U« � © ¨ Ó §U­ ©�ÞÂàáeï�Þ*¨ª§U­� ©6¨ Ó §U­ ©�Þ~àáëï�§�¬á�� Ò ©�¬� ©6¨ Ó §U­e©�ÞÂàáeïU­�á�à Ó §�Û*¨�á6­��O

Ú�ï3C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�Cï3©6¨ Ó Ó ¬�©U­ é�+6æ8CØ©6¨ Ó Ó ¬�©U­ ­~¨·à §UÛ¬�© Ò å Ò ¬Ö é�+æe§�¬á�� Ò ©�¬ ¨ Ó à §�Û~¬�© Ò å Ò ¬ÖòÞ*¨�§U­ï.C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�Cï ÚÒ Ó ­e©6¨ Ó�Ó ¬�©U­ é6+æ � ©6¨ Ó §U­ ©UÞÂàá ï�Þ*¨�§U­� © ¨ Ó §U­ ©�ÞÂà6áëï §¬á�� Ò ©¬%�Ú�ïïpD á ã Õ ð~¬ Ó ­*§�/ï Þ*¨ª§U­ C Ó à�ð~¬ ¨-å Þ*¨�§U­ ­~¨p96Þ Ò ©�Þ ©6¨ Ó Ó ¬�©U­ Ò ¨ Ó Ò §ÐÖª¬�§ Ò áª¬Öï §�¬6á�� Ò ©�¬�Cا�¬á�� Ò ©�¬ à�§ §6¨�© Ò à�­�¬Ö�9 Ò ­6ÞØ­6Þ¬·Öª¬�§ Ò áª¬Ö3Û*¨-á6­ï Ú�

᪬�­6Õ�á Ó ©6¨ Ó Ó ¬Â©U­*§6¨�©�« � Þ*¨�§�­� §¬á�� Ò ©¬� N ­*©�Û N �O'

±#®

Page 52: Introduction to Network Programming Jie Wang Department of

wK�0s ��_Ä�Ø�(»+¼��N½¾� ÃÄÀ~��ÅsÀ~Æ�ÇÚ�ï4é�+æ�¬Â©�Þ*¨Mܤ©2C4ð~à Ò Ó oé6+æ�¬�©�Þ>¨ ï Ú

Ñ*Ò Ó ©6ÔUÕªÖª¬Ø×�Õ Ó%Ò §U­ªÖsÜ/ÞÂßÑ*Ò Ó ©6ÔUÕªÖª¬ØקU­�ÖÂÔ Ò âÉÜ/ÞÂßÑ*Ò Ó ©6ÔUÕªÖª¬ØקU­�á Ò Ó�ã Ü/ÞÂßÑ*Ò Ó ©6ÔUÕªÖª¬ØקU­�Ö Ò ¨YÜ/ÞÂß

¬.;6­Â¬á Ó Ò Ó ­ ¬á á Ó ¨&Ò Ó ­ é6+æ�¬�©�Þ>¨ � ©6¨ Ó §U­ ©�ÞÂàáeï�Þ>¨�§U­� A©6¨ Ó §U­ ©UÞÂàáeï §�¬á�� Ò ©�¬%��Ò Ó ­ ¬6á ᪬.; Ò ­ � ©6¨ Ó §U­ ©�ÞÂàáeï�å~¨-á�ð~à�­� ØÜ�Ü Üð��Ò Ó ­ © ¨ Ó Ó ¬�©�­ é�+æ � ©6¨ Ó §U­ ©�ÞÂàáeï�Þ*¨ª§U­� ©6¨ Ó §U­ ©�Þ~àáëï�§�¬á�� Ò ©�¬%�OÑ Öª¬6å Ò Ó ¬òý*ö�þ6ø�ý6ø�þ ìUú ÿ

Ú�ï3C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�Cï ð~à Ò Ó C�é�+æe©6Ô Ò ¬ Ó ­ å~¨-á·ø6+.o�è §�¬á�� Ò ©�¬ï.C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�Cï ÚÒ Ó ­·ð~à Ò�Ó���Ò Ó ­ à6á ã ©� ©�ÞÂàáeï�à6á ã ��������

©�ÞÂà6á ï�Þ*¨�§U­v� N Ô ¨�©�à�ÔUÞ*¨�§U­ N Ú�ï Þ*¨�§�­3­~¨4Õ>§�¬ Ò å Ó ¨ Ó ¬ §�Õ Û�Û*Ô Ò ¬Öeï6Ú©�ÞÂà6á ï §�¬á�� Ò ©�¬j� N ¬�©�Þ*¨ N Ú�ïÐÖª¬å�à-Õ*Ô�­ §�¬á�� Ò ©�¬ Ó à�ð*¬ ï6Ú

§�9 Ò ­*©�Þ � àá ã ©�� �©�à�§¬eì�/Þ*¨�§U­�� N Ô ¨�©�àªÔ�Þ*¨�§U­ N âªáª¬ à�«�

©�à�§¬3î�/§�¬á�� Ò ©�¬j�òàá ã ����ú.��Ú�ï4ô�D ý ý3é�o ç�è�ó#B.oMC�C�C ã ¬�­ò­6Þ¬�Þ*¨�§U­ Ó à�ð*¬ Ò Ó ©�à�§¬3ú ï6Ú

©�à�§¬òú�/Þ*¨�§U­��òà6á ã ���EìE�� Ú�ïRÕ%§�¬�­ Þ¬ Ö�¬åªà-Õ*Ô-­e§¬á�� Ò ©¬�Û>¨-á6­ ï6Úâªáª¬ à�«�

Öª¬å�à-Õ*Ô�­�/åÛªá Ò Ó ­�å � §U­ªÖª¬á á� N Õ>§�à ã ¬�/ é�+æ�¬�©UÞ*¨��/Þ*¨�§U­��/Û>¨-á6­����#l ÓON �O¬.; Ò ­ � ì.�O

'é�+æ¬�©�Þ*¨ � Þ*¨�§U­� §�¬á�� Ò ©�¬%�O¬.; Ò ­ � ù%�O

'

±a¸

Page 53: Introduction to Network Programming Jie Wang Department of

Ú�ï3C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�Cï é�+æ�¬Â©�Þ*¨2Cا¬ Ó Ö Ò Ó Û Õ�­ ­~¨Ðø�+.oÂèا�¬6á�� Ò ©�¬ ¨ Ó §�Û© Ò å Ò ¬6Ö·Þ>¨�§U­ëà Ó Ö·Ûªá Ò Ó ­ò᪬�Û*Ô-Ùï.C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�Cï ÚÒ Ó ­òé�+æ¬�©�Þ*¨ � ©6¨ Ó §U­ ©�ÞÂàáeï�Þ*¨ª§U­� ©6¨ Ó §U­ ©�Þ~àáëï�§�¬á�� Ò ©�¬%��

©�ÞÂà6á·â�Õªå��äý*ö�þ6ø�ý6ø�þ�i>ìK�� ÚªïRâ Õ�å 媬á å¨-áë¨ Ó ¬ØÔ Ò Ó ¬ ¨-å3­�¬.; ­ ï6ÚÒ Ó ­ §� Ó Úªï3§6¨ª©U«�¬�­ØÖª¬�§�©�á Ò Û�­*¨-á� k᪬ à6Öë©6¨�Õ Ó ­ ï6ÚÒ Ó ­e¨UÕª­*©�ÞÂàá*§� Ò Ó ©�ÞÂà6á~§� Úªï3©�Þ~àáªà�©U­Â¬á~§Ø§�¬ Ó ­Øà Ó Ö3᪬©�¬ Ò ��¬6Ö ï6Ú

§�� ©6¨ Ó Ó ¬�©U­�é�+æ � Þ>¨�§U­� ¡§¬á�� Ò ©¬%�O96Þ Ò Ô¬ � å ã ¬�­>§ � â Õªå� #§ Ò�� ¬ª¨�å � â Õªå��O ¡§U­�Ö Ò Ó ��� �

â Õ�å��äý*öUþ ø�ý6ø�þ��v���Òlù�� Ú�ï Ò Ó §�Õªá�¬ØÔ Ò Ó ¬ Ó Õ*Ô Ô�C�­�¬á�ð Ò Ó à�­�¬6Ö ï6Ú¨UÕª­*©�ÞÂàá*§�� §U­�áÂÔ6¬ Ó�� â Õ�å@�O� �*¨ Ò Ö@�L9�á Ò ­Â¬ � §� ¶â Õ�å� �¨�Õ�­*©�ÞÂà6á~§��OÚ�ï4᪬ àÖ Ò ­·âÂà�©U« ï6Úå¨�á ��Ò�Ó ©�ÞÂàá*§�� ù� Ò Ó ©�ÞÂà6á~§·× ¨UÕª­*©�ÞÂàá*§� Ò Ó ©�Þ~àá~§)i�� Ó � �

Ó �·áª¬�àÖ � §� geâ�Õªå�� Ò Ó ©�ÞÂàá~§)�� #¨UÕ�­>©�ÞÂàá~§fC Ò Ó ©�Þ~àá~§��OÒ å �HÓ ×3ù%�

¬á ᪬�; Ò ­ �EN §6¨�©U«�¬­ ᪬ à6Ö3åªà Ò Ô¬Ö�/¥k~§�l ÓON A§U­�á�¬á á¨-á � ¬á á Ó ¨����O'åÛ�Õ�­*§ � â�Õªå� A§U­�Ö¨�Õ�­��O

''

wK��w �òÔxÍ.���WÕÓ�bwf@~�fa�@jItuhud;½I~�mgd�zPqsd�qscUd�p fahihuf9�{tuvI� O Ô ,sà�P¼Þ à zovUy�q��4j7d Ý«Ô ,�à �Ñ å Ò Ô¬ Ó à�ð~¬�/�AÂà«�¬å Ò Ô6¬öUþ�+ ý�ó 5 øM�+6ý þ é�õj� é�+6æ�¬�©�Þ*¨õ�ø ç���õj� é�+6æ�¬�©�Þ*¨�Öè�é�o�ø çv�5 ø�ô�õ2�+6ô ý�D�B�õj�

±��

Page 54: Introduction to Network Programming Jie Wang Department of

o 5 ç��+�õ�ç6+j� é�+æ�¬Â©�Þ*¨Mܤ©+��ªõç�+�� ©6¨ Ó Ó ¬�©U­�é�+æ¾Ü¤©Ø© ¨ Ó Ó ¬�©�­*§6¨�©U«Éܤ©ò¬á á�¬.; Ò ­¾Ü ©õ õ�ç6+j� é�+æ�¬Â©�Þ*¨-ÖsÜ ©õ��ªõç�+���ÛÂৠ§ Ò ��¬é�+æ¾Ü¤©ÐÛ~à�§ § Ò �¬�§6¨�©U«Éܤ©+��ªè6ñ��·� ©6¨ Ó Ó ¬�©U­�é�+æ¾Ü+¨ © ¨ Ó Ó ¬�©�­*§6¨�©U«ÉÜ+¨ ¬á á�¬.; Ò ­¾Ü¤¨õ��ªè6ñ��·��ÛÂৠ§ Ò ��¬é�+æ¾Ü+¨�Û~à�§ § Ò �¬�§6¨�©U«ÉÜ+¨ ¬á á�¬.; Ò ­¾Ü¤¨æ ç�è�B�õj��- � +6ý þ6é�õ ' - � õ�ø ç�Âõ 'àªÔ Ô/¾- � æ ç�è�Bªõ '+�+j� ã © ©ý*öUñ�õ2�jCªÔ Ó § ÔfC�Ô�§6¨�©U«Â¬�­- � + ý þ6é�õ ' /h- � +��ªè6ñ�� '

- � +�+ ' C�¨2- , - � +6ô�ý�D�B�õ ' - , Ü+¨j- � +��ªè6ñ�� ' - � ý>öUñªõ%�- � õø ç��õ ' /h- � õ��ªè6ñ�� '

- � +�+ ' C�¨2- , - � +6ô�ý�D�B�õ ' - , Ü+¨j- � õ��ªè6ñ�� ' - � ý>öUñªõ%�©6Ô Ò ¬ Ó ­*§$/h- � +6ý þ6éÂõ '§�¬á���¬á~§$/h- � õ�ø ç�Âõ 'é�+æ¬�©�Þ*¨�/oé6+æ�¬�©�Þ>¨MÜ+¨é�+æ¬�©�Þ*¨-Ö�/oé�+æ�¬�©UÞ*¨-ÖsÜ+¨Ñ25 è þ�è�é 5 ø�ý6ø é ø é�o%ö-õ ý>öUþ6øvC4ð~à«�¬�­�Ö 5 ø æ�ø�þ 5 õ èþeö�é � é6Þ¬ ¬ Ó Öë¨-å3­6Þ¬·å Ò Ô¬%�

b�cUd�p fahuhif9�{tuvU�@tue}zRmnlUvUvUtivU�Eesz;�@jUhid�favNqgcUd�cUfae�q�v`zo�£d�y+cUfoenq�®o��¶·tuvId�e}tiv+»7fahiy�pHzo~�dÌzomgd�{c`z;q{qgcUd�lUegd�m�q��4j¼d�ec{rfoqgcUd�m{hituvUd�e�zomgd�d�~�cUf#d�y'�óú]U÷rZ� é X}Z4_��wñ'ô�ù X*X*X�� é X}Z4_��wñA�wñ>"�í è ù X>X*X��� ë " ë "Ì]Ñí�Zª"�íb�cUtie�tie{z�qgd�e�q��� ë " ë "Ì]A"�Z#_añ¼ìwô�í9Z�"�íb�cUtie�tie{z£end�~�favUy�qsd�e�q

±;¯

Page 55: Introduction to Network Programming Jie Wang Department of

� ´¶µ æ ´«µ _ b�j ç2è g�h Ík]�æ�é� _�çwåY_�äQf å µ æ âÊã£äRå1æ�äRåJç¨ã�u¡g n _E`bBæÄp{åCãwb�Ì ã@ä g � æ?h ãÌåCæ � ã£çGå

��v�qgcUtuewegd�~�qgtufav���d5�{tuhihaegcUf9�¡cUf9�Ïqgf«yUfSz�´«ÈS�^É�~�fa�£�@zovUy�fav�z{mgd��@f;qsdBcUfae�q��Cb�cId�~�fa�@�@zovUy��d{�{tihuh4tu�£jUhud��@d�v�q1tue Þ Ù ½a�{cUtu~�c£hutienqsewqscUd�~�fav�qsd�vKqge�f;p¼qgcUd�yUd�pHzolUhiq1yUtumnd�~�qgfamn��fav�z�mgd��@foqgdkcUfae�q��b�cUd�yUd�pHzolUh�q�yUtumnd�~�qsfam���tie�qscUd«yUtumnd�~�qgfamn�£�{cUd�mgd�qscUd«egd�m�xad�m�� y`zod��@fav`��jUmgfo�amszo�Êtue�tuvEmnlUvUvUtivU�U�

�«e�tuv+qscId£end�~�favUyúdÄÃIzo�@jIhudo½·��dÌ�{tuhuhClUegdÌqscId�p fohuhuf9�{tivU���`hid�e�jUmgf9x4tuyId�yÑtuvª�#d�~�qstifavA�ª® à � J� à7D . �Ú Ø ½ 2PÔ[ÙnÙ . �[à�Ù+�4Ø-,oÚ°Ø ½ 2PÔPÙ�Ù . �[à�IKJMLUÚ°Ø ½ Ø��IÕ�Õ[à�Ø�¦Ù1�#Ø�,aÚ Ø ½7zovUy Ø��IÕ�Õ[à�Ø��IKJMLUÚ°Ø �

�K�+� ��_Ä�Ø���(ÀÂÁs�NÀ·ÃÄÀ~��ÅsÀ~Æ�ÇÚ�ï4é�+æ~Ôª§�Ösܤ©2C4ð~à Ò Ó ¶é�+6æ~Ô�§�Öeï6Ú

Ñ*Ò Ó ©6ÔUÕªÖª¬Øק�Ù~§6Ú�­ªÙÛ¬�§ÝÜCÞÂßÑ*Ò Ó ©6ÔUÕªÖª¬Øק�Ù~§6Ú�§ ÒUãÓ àªÔYÜ/ÞÂßÑ*Ò Ó ©6ÔUÕªÖª¬Øק�Ù~§6Ú�§ ¨�©U«�¬�­ÉÜ/ÞÂßÑ*Ò Ó ©6ÔUÕªÖª¬Øק�Ù~§6Ú�­ Ò ð~¬�Ü/Þ~ßÑ*Ò Ó ©6ÔUÕªÖª¬Øק�Ù~§6Ú-á�¬�§6¨UÕªá*©�¬�Ü/ÞÂßÑ*Ò Ó ©6ÔUÕªÖª¬Øק�Ù~§6Ú:9Âà Ò ­¾Ü/Þ~ßÑ*Ò Ó ©6ÔUÕªÖª¬Øק�Ù~§6Ú¬6á á Ó ¨MÜCÞÂßÑ*Ò Ó ©6ÔUÕªÖª¬Ø× Ó ¬�­ Ò Ó ¬�­~Ú Ò Ó Ü/ÞÂßÑ*Ò Ó ©6ÔUÕªÖª¬Ø×6Ö Ò áª¬ Ó ­¾Ü/ÞÂß

Ñ*Ò Ó ©6ÔUÕªÖª¬Ø×�Õ Ó%Ò §U­ªÖsÜ/ÞÂßÑ*Ò Ó ©6ÔUÕªÖª¬ØקU­�ÖÂÔ Ò âÉÜ/ÞÂßÑ*Ò Ó ©6ÔUÕªÖª¬ØקU­�Ö Ò ¨YÜ/ÞÂßÑ*Ò Ó ©6ÔUÕªÖª¬ØקU­�á Ò Ó�ã Ü/ÞÂß

Ñ Öª¬6å Ò Ó ¬Øüý ø�þ ê Ú�ï ð~à.; Ò ðªÕ6ð ©6¨ Ó Ó ¬�©U­ Ò ¨ Ó �Õ¬-Õ¬ Ô¬ Ó�ã ­6Þ ï6ÚÑ Öª¬6å Ò Ó ¬òñ�óÂôªõÂö-÷�ø û�ù í�*¬.;6­Â¬á Ó Ò Ó ­ ¬6á á Ó ¨&�~¨ Ò Ö áª¬�à-Û¬á ��Ò Ó ­��OÒ Ó ­ é�+6æ~Ô�§�Ö ��Ò Ó ­Øå Ö@�OÒ Ó ­ © ðÂÖ��ªÔ�§ ��Ò Ó ­Øå Ö@�OÒ Ó ­ ¬á�᪬.; Ò ­ � ©6¨ Ó §�­ ©�ÞÂàáeï�å¨�á�ð~à�­� Ü Ü�ÜÒ�OÒ Ó ­ ÛÂৠ§ Ò ��¬é�+æ � © ¨ Ó §U­ ©UÞÂàá ï §�¬á�� Ò ©�¬� Ò Ó ­���Ô6¬ Ó �O

Ú�ï3C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�Cï ð~à Ò Ó Cf+�¨ Ó ©�Õ�á ᪬ Ó ­Øé6+æ §¬á���¬á å¨�á3ýªõ §�¬á�� Ò ©�¬ï.C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C

±a±

Page 56: Introduction to Network Programming Jie Wang Department of

ï ÚÒ Ó ­·ð~à Ò�Ó���Ò Ó ­ à6á ã ©� ©�ÞÂàáeï�à6á ã ��������

©�ÞÂàá ï §¬á�� Ò ©¬2� N ¬�©�Þ>¨ N Ú�ïò§�¬á�� Ò ©�¬ Ó à�ð*¬ ¨-á·Û*¨-á ­ Ó Õ ð�â¬á ï6Ú§U­�áÕ>©�­e§ ¨�©U«�àÖ�Ö á�� Ò Ó å*§ Ò Ó Ú�ï4­6Þ¬òàÖ Ö�᪬�§ §ò¨-åØà ©6Ô Ò ¬ Ó ­ ï6ÚÒ Ó ­ àªÔ¬ Ó Ú�ï3Ô¬ Ó�ã ­6Þ ¨-å © Ô Ò ¬ Ó ­��7§3àÖ Ö á�¬�§ § ï6ÚÒ Ó ­·ð%§6¨�©U«� Ú�ïRð~à�§�­�¬áe§�¬á��¬áë§ ¨�©U«�¬�­ ï6ÚÒ Ó ­e§ §6¨�©U«� Ú�ïò§6Ôà.��¬Ø§¬á���¬áe§6¨ª©U«�¬�­ ï6Ú

§�9 Ò ­*©UÞ � àá ã ©�� �©�à�§�¬ ìO/âªáª¬�à�«�

©�à�§�¬ ú�/§�¬á�� Ò ©�¬��òàá ã ����ìK��âªáª¬�à�«�

Öª¬åªà-Õ>Ô�­�/¬á á�¬.; Ò ­ ��N Õ>§�à ã ¬�/Qé�+6æ~Ô�§�Ö<�/Û*¨�á6­��%l Ó�N �O

'ð%§6¨�©U«v��ÛÂà�§ § Ò ��¬�é�+æ � §�¬á�� Ò ©�¬� #üý6ø�þ@��� �~¨ Ò Ö��3§ ÒUãÓ àªÔ � õÂö:B�+�o�ý 5 �á�¬ à-Û¬á��O96Þ Ò Ô¬ � ì�� �

àªÔ¬ Ó � § Ò�� ¬�¨-å � å~§ Ò Ó �O§ §6¨ª©U«v�òà�©�©�¬-Û�­ � ð%§6¨�©U«� � §U­�áÕ%©U­ §6¨�©U«�à6Ö Ö á ï���e�å~§ Ò Ó geªà�Ô¬ Ó �OÒ å � § §6¨ª©U«ë×3ù%� �

Ò å � ¬á á Ó ¨f��� ø>öUþ6é�ç��©6¨ Ó ­ Ò Ó Õ¬¬á ᪬.; Ò ­ �EN à© ©�¬-Û�­}/¾k~§�l ÓON §U­�᪬á�á¨-á � ¬6á á Ó ¨����O

'§�9 Ò ­*©�Þ � å¨-á « � ��� �©�à�§¬òù�/ Ú�ï3©�Þ Ò Ô�Ö ï Ú� �~¨ Ò Ö��3© Ô ¨�§�¬ � ð%§6¨�©U«r�O¬.; Ò ­ � é�+æ~Ô�§-Ö � § §6¨ª©U«����O

Öª¬å�à-Õ*Ô�­�/ Ú�ïRÛÂà᪬ Ó ­ ï6Ú� �~¨ Ò Ö��3© Ô ¨�§�¬ � § §6¨�©U«r�Oâªáª¬ à�«�

©�à�§¬jC>ìO/¬á ᪬.; Ò ­ �EN å~¨-á6«�/gk*§�l ÓON A§U­ªáª¬á á¨�á � ¬á á Ó ¨����O

''

'

±o¿

Page 57: Introduction to Network Programming Jie Wang Department of

Ú�ï3C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�Cï é�+æ~Ôª§�ÖvC Ô Ò §U­ © ¨ Ó ­�¬ Ó ­*§ò¨-å à·Ö Ò á�¬�©U­~¨-á�Ùï.C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�Cï Ú

Ò Ó ­òé�+æ*Ô�§�Ö ��Ò�Ó ­ å Ö@��

©�ÞÂàá © ðÂÖ��äñ�ó�ô�õÂö-÷�ø���96Þ Ò Ô¬ � ì�� �

᪬ à6Ö � å Ö� #©�ð�Ö� § Ò�� ¬ª¨�å � © ð�Ö����OÒ å � §U­�á*© ð�Û � ©�ð�Ö� N ý�õ N �P���òù#� �

© ð�Ö��ªÔª§ � å Ö@��' ¬ªÔ�§�¬

¬á ᪬.; Ò ­ �EN k*§$/ Õ Ó §�Õ�Û*¨-á6­�¬6Öe¨UÛ¬áªà­ Ò ¨ Ó Ü�l ÓON ¡©�ð�Ö@�O'

'Ú�ï3C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�Cï3© ð�Ö���Ô�§fC áÕ Ó ­6Þ~¬ N Ôª§ N © ¨�ð ð~à Ó Öï.C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�Cï Ú

Ò Ó ­e© ð�Ö6�ªÔ�§ ��Ò�Ó ­ å Ö@��5 ö�çeï�Ö Ò áÛ�§U­�áÕ>©�­ Ö Ò áª¬ Ó ­ ï�Ö Ò áª¬ Ó ­ Û�©�ÞÂàá §�¬á��¬áâ Õªå��äñ�ó�ôªõ~ö-÷�ø���ð~¬�ð%§�¬­ � §�¬á���¬áâ Õ�å� Aù� ¶ñ�ó�ô�õÂö-÷�ø���Ò å ��� Ö Ò áÛM�بUÛ¬ Ó Ö Ò á �EN Ü N ���f���3þ�ó�ý�ý@�

§UÛªá Ò Ó ­ªå � §�¬á���¬áâ Õ�å� N æ¬á�ð Ò §�§ Ò ¨ Ó Öª¬ Ó%Ò ¬Ö}ãÁl ÓON �O¬ªÔ�§�¬ �96Þ Ò Ô¬ ��� Ö Ò á�¬ Ó ­6Û8�·áª¬ àÖ Ö Ò á � Ö Ò áÛr��� ã��·þ�óÂý ý@�

§�Ûªá Ò Ó ­�å � §�¬6á���¬áâ�Õªå� N k~§�l Ó k*§ N #§�¬á���¬áâ Õ�å� kÖ Ò áª¬ Ó ­6Û%C ß6Ö�� Ó à�ð*¬1�O§�Ûªá Ò Ó ­�å � §�¬á���¬6áâ Õªå� N k~§�l ÓON A§�¬á���¬áâ Õ�å@�O©6Ô ¨ª§�¬Ö Ò á � Ö Ò áÛ �O

'Ò å � §�¬ Ó Ö � å Ö� A§�¬á��¬áâ Õªå� #§ Ò�� ¬ª¨�å � §�¬á���¬áâ Õ�å@�O Aù#�Ð×òù%�

¬á ᪬.; Ò ­ �EN §¬ Ó Ö�/gk*§�l ÓON A§U­ªáª¬á á¨�á � ¬á á Ó ¨����O᪬�­6Õªá Ó ù

±a²

Page 58: Introduction to Network Programming Jie Wang Department of

'

Ú�ï3C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�Cï4᪬ à-Û~¬ávCØ©6Ô6¬ à Ó Õ Û � ¨�ð�â Ò ¬ë©�Þ Ò Ô-Ö áª¬ Óï.C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�Cï Ú

Ú�ï:D ç�B�õ�ó~õø 5 ï6Ú�~¨ Ò Öòá�¬ à-Û¬á ��Ò Ó ­ § Ò�ã ��

Ò Ó ­ §U­Âà�­6Õ>§�96Þ Ò Ô¬ � 9Âà Ò ­ªî � e~§U­�à�­ Õ>§� g÷ªþ�è3o�D þ�B� � §U­�áÕ>©�­ á6Õ>§�à ã ¬ëï���ù%�Ðß��òù%�

Ú�ï ¬�ð�Û�­ªÙ ï Ú&'

�K�H¹ ��_Ä�Ø�(»+¼��N½¾� ÃÄÀ~��ÅsÀ~Æ�ÇÚ�ï4é�+æ~Ôª§Ýܤ©fC4ð*à Ò Ó oé�+æ~Ôª§òï Ú

Ñ*Ò Ó ©6ÔUÕªÖª¬Ø×�Õ Ó%Ò §U­ªÖsÜ/ÞÂßÑ*Ò Ó ©6ÔUÕªÖª¬ØקU­�ÖÂÔ Ò âÉÜ/ÞÂßÑ*Ò Ó ©6ÔUÕªÖª¬ØקU­�á Ò Ó�ã Ü/ÞÂßÑ*Ò Ó ©6ÔUÕªÖª¬ØקU­�Ö Ò ¨YÜ/ÞÂß

¬.;6­Â¬á Ó Ò Ó ­ ¬á�á Ó ¨&Ò Ó ­ é�+6æ~Ô�§ � © ¨ Ó §U­ ©�Þ~àáëïUÞ*¨�§U­� A©6¨ Ó §U­e©�ÞÂàáeï §�¬6á�� Ò ©�¬#�OÒ Ó ­ ¬á�᪬.; Ò ­ � ©6¨ Ó §�­ ©�ÞÂàáeï�å¨�á�ð~à�­� Ü Ü�ÜÒ�OÒ Ó ­ ©6¨ Ó Ó ¬�©U­�é�+æ � © ¨ Ó §U­ ©UÞÂàá ï�Þ*¨�§U­� © ¨ Ó §U­ ©�ÞÂà6áëï §¬á�� Ò ©¬%�O

Ñ Öª¬6å Ò Ó ¬òý*ö�þ6ø�ý6ø�þ ìUú6ÿÑ Öª¬6å Ò Ó ¬òñ�óÂôªõÂö-÷�ø ûªù í�*Ú�ï3C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�Cï ð~à Ò Ó C�é�+æe©6Ô Ò ¬ Ó ­ å~¨-á3ý�õا�¬6á�� Ò ©�¬ï.C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�Cï ÚÒ Ó ­·ð~à Ò�Ó���Ò Ó ­ à6á ã ©� ©�ÞÂàáeï�à6á ã ��������

©�ÞÂàá ï�Þ>¨�§U­�� N Ô�¨�©�àªÔUÞ>¨�§U­ N Ú�ï Þ*¨�§�­3­~¨4Õ>§�¬ Ò å Ó ¨ Ó ¬ §�Õ Û�Û*Ô Ò ¬Öeï6Ú

±��

Page 59: Introduction to Network Programming Jie Wang Department of

©�ÞÂàá ï §¬á�� Ò ©¬2� N Ô�§ N Ú�ïÐÖª¬å�à-Õ*Ô�­ §�¬á�� Ò ©�¬ Ó à�ð*¬ ï6Ú

§�9 Ò ­*©UÞ � àá ã ©�� �©�à�§�¬eìO/âªáª¬�à�«�

©�à�§�¬3î�/§�¬á�� Ò ©�¬��òàá ã ���1ú.��Þ*¨�§�­��òàá ã �}�EìK��âªáª¬�à�«�

©�à�§�¬òú�/§�¬á�� Ò ©�¬��òàá ã ����ìK��âªáª¬�à�«�

Öª¬åªà-Õ>Ô�­�/åÛªá Ò Ó ­�å � §U­�Öª¬á�á� N Õ%§�à ã ¬�/ ð�Ù�å6­6Û��/Þ*¨�§U­��/Û>¨-á6­����#l ÓON �Oâªáª¬�à�«�

'é�+æ~Ô�§ � Þ*¨�§U­� #§�¬á�� Ò ©�¬%�O¬.; Ò ­ � ù%�O

'Ú�ï3C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�Cï é�+æ~Ôª§·Cا�¬ Ó Ö Ò Ó Û Õ�­ò­~¨Ðý�õا�¬6á�� Ò ©�¬ ¨ Ó §�Û© Ò å Ò ¬6Ö·Þ>¨�§U­ëà Ó Ö·Ûªá Ò Ó ­ò᪬�Û*Ô-Ùï.C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�Cï ÚÒ Ó ­òé�+æ*Ô�§ � ©6¨ Ó §U­ ©�Þ~àáëïUÞ*¨�§U­� A©6¨ Ó §U­e©�ÞÂàáeï §�¬6á�� Ò ©�¬#��

©�ÞÂàá © ðÂÖ��äý*öUþ ø�ý6ø�þ���©�ÞÂàá +3A 5 �äý*öUþ ø�ý6ø�þ���©�ÞÂàá â Õ�å��äñ�ó�ô�õÂö-÷�ø���Ò Ó ­ §�Ö� Ó Ú�ïò§6¨�©�«�¬�­ Öª¬�§ ©�á Ò Û�­~¨-á� QâªÙ6­�¬ ©6¨UÕ Ó ­ ï6Ú

Ûªá Ò Ó ­ªå �EN�� á~Ô�§�� N ��ã ¬�­*§ � © ð�Ö@�O§U­�á~©�Û�Ù � +3A 5 #© ð�Ö@�O§�Öj� ©6¨ Ó Ó ¬�©U­ é�+6æ � Þ*¨�§�­� §�¬6á�� Ò ©�¬#�OÒ å � §�Ö ×3ù%�¬á á�¬.; Ò ­ ��N ©6¨ Ó Ó ¬�©U­�/ðk~§�l ÓON §�­�᪬á á~¨-á � ¬á�á Ó ¨�����

Ò å � §U­�á~© ðªÛ � © ð�Ö� N Ô�§ N ����� ù%�§U­�á*©�ÛªÙ � +.A 5 N ý�õ N �O

±o­

Page 60: Introduction to Network Programming Jie Wang Department of

Ò å � 9�á Ò ­�¬ � §�Ö� ð+3A 5 § Ò�� ¬ª¨-å � +3A 5 ���·×3ù%�¬á ᪬.; Ò ­ �EN 9ªá Ò ­�¬�/¾k~§�l ÓON §�­�᪬á á~¨-á � ¬á�á Ó ¨�����

Ò å � ᪬�©�� � §�Ö� oâ Õªå� A§ Ò:� ¬ª¨-å � â Õªå@�O ¤ù%�3×·ù#�¬á á�¬.; Ò ­ ��N ᪬�©��}/gk~§�l Ó�N A§U­�᪬á�á¨-á � ¬6á á Ó ¨����O

Û Õ�­*§ � â Õªå@�O©6Ô ¨�§�¬ � §�Ö@�O

'

�K��! �òÔxÍ.���WÕÓ�Ñ AÂà�«�¬å Ò Ô¬öUþ�+ ý�ó 5 øM�+6ý þ é�õj� é�+6æ~Ô�§õ�ø ç���õj� é�+6æ~Ô�§�Öè�é�o�ø çv�5 ø�ô�õ2�+6ô ý�D�B�õj�o 5 ç��+�õ�ç6+j� é�+æ~Ôª§Ýܤ©+��ªõç�+�� ©6¨ Ó Ó ¬�©U­�é�+æ¾Ü¤©Ø© ¨ Ó Ó ¬�©�­*§6¨�©U«Éܤ©ò¬á á�¬.; Ò ­¾Ü ©õ õ�ç6+j� é�+æ~Ôª§�Ösܤ©õ��ªõç�+���ÛÂৠ§ Ò ��¬é�+æ¾Ü¤©ÐÛ~à�§ § Ò �¬�§6¨�©U«Éܤ©+��ªè6ñ��·� ©6¨ Ó Ó ¬�©U­�é�+æ¾Ü+¨ © ¨ Ó Ó ¬�©�­*§6¨�©U«ÉÜ+¨ ¬á á�¬.; Ò ­¾Ü¤¨õ��ªè6ñ��·��ÛÂৠ§ Ò ��¬é�+æ¾Ü+¨�Û~à�§ § Ò �¬�§6¨�©U«ÉÜ+¨ ¬á á�¬.; Ò ­¾Ü¤¨æ ç�è�B�õj��- � +6ý þ6é�õ ' - � õ�ø ç�Âõ 'àªÔ Ô/¾- � æ ç�è�Bªõ '+�+j� ã © ©ý*öUñ�õ2�jCªÔ Ó § ÔfC�Ô�§6¨�©U«Â¬�­- � + ý þ6é�õ ' /h- � +��ªè6ñ�� '

- � +�+ ' Cª¨2- , - � +6ô ý�D�Bªõ ' - , Ü+¨�- � +�ªèñ�� ' - � ý*öUñªõ%�

¿a¹

Page 61: Introduction to Network Programming Jie Wang Department of

- � õø ç��õ ' /h- � õ��ªè6ñ�� '- � +�+ ' Cª¨2- , - � +6ô ý�D�Bªõ ' - , Ü+¨�- � õ��ªèñ�� ' - � ý*öUñªõ%�

©6Ô Ò ¬ Ó ­*§$/h- � +6ý þ6éÂõ '§�¬á���¬á~§$/h- � õ�ø ç�Âõ 'é�+æ*Ô�§$/ é�+æ~Ôª§ÝÜ+¨é�+æ*Ô�§�Ö�/oé�+6æ~Ô�§�Ösܤ¨

Ñ25 è þ�è�é 5 ø�ý6ø é ø é�o%ö-õ ý>öUþ6øvC4ð~à«�¬�­�Ö 5 ø æ�ø�þ 5 õ èþeö�é

\�� Ì ÍkÍúæ�äkjk_¢è±é å µ æ ��������� åY_�] _�å=̤-jUmnfa�amgzo�@e�z;mgd�lUeglUzohuh��ú�{mgt�qgqgd�v�tuv¡��lUh�qstujIhud Ú Ø �`hud�e���b�cUd���zomnd�~�fa�£jUtuhid�y¡egd�j`zomgz;qsd�hi�¡zoevUd�d�yUd�y'��b�cUd Ý}Ô6,�à lIqstihutiq���tue�lUend�y�qgf@�;d�d�j�qsmgzo~��Efop1enfalUmn~�d��`hud�e«zovIyÍqgf@jUmnf9x#tiyUd�~�fav�xad�vUtud�v�qzo~�~�d�ene�qsfNhitu»Umgzomgtid�e�zovUyÏzoegenf#~�tÂz;qgd�yÏcUd�zoyUd�m��`hud�e��Nb�cId Ý}Ô6,�à ~�fa�£��zovIyúmgd�zoyUe�z��`hud£�{cUfaendyUd�pHzolUhiq�v`z;�@d�tue�O Ô6,�à�P¼Þ à �kb�cUtie��`hid�~�fav�q�z;tuvUe�qscId�yUd�j7d�vUyUd�vU~�tid�e«f;pCqscId�x;zomntufalUe{�£f#yIlUhud�e�½`fam�`hid�e�½I��zo�KtivU��lUjRqgcUd}jUmnfa�amsz;��½IzohufavI���{tiqgc�zojUjUmnfajUmntÂz;qgd}zo~�qstufovUe�qsf�»7d}qszo�od�v'�B��vEj`zomnqgtu~�lUhÂzom�½tiq{~�fav�q�zotivUe�qscUd�tivUenqgmglU~�qstufovUekp fam�~�fo�@jUtihutivU��fam�mnd�~�fa�@jItuhutivU�U�

���µ�1� ÿ �¼1Ç Ã?»1�ë�=�<Æ�Ç Ã?»���`fam�egtu�£jUhitu~�t�q��a½·��dRtu�@zo�ativUd�qsc`zPq���d�c`z�xadRz�jUmgfo�amszo� ~�fav�q�zotivUd�yútuvªq���f��`hid�e�® Ý}Ô . Õ4Ú Ø zovIyÙÄÛ�Ý�Ú Ø ½GzovUy+qscUz;q�zEcUd�zoyId�m��`hud�v`zo�£d�y Ù�Û�Ý�Úz5 tue�tivU~�hilUyUd�y+tuv�d�zo~�cÑfop5qscUd Ú Ø �`hud�e����ªd���zov�qqscId«d�Ã#~�lIq�zo»Ihud}~�f#yUd�p famBqscUtie�jUmnfa�amgzo��qsf�»7dStuv@qgcUdS�Uhud Ù�Û�Ý ���Sd�mgd«tie�z�egtu�£jUhid O Ô6,�à�P7Þ à qsf�»7dlUend�y�p fom�jUmgfa�omszo�-yUd�xod�hufojU�@d�v�q}zovIyÍ�@zotivKqgd�v`z;vU~�d;�

Ñ AÂà�«�¬å Ò Ô¬§�Õ6ðÊ/´ð*à Ò Ó Ü+¨Ø§�Õ ðKÜ+¨

ã © ©·Cª¨ò§UÕ6ð3ð*à Ò Ó Ü+¨Ø§�Õ ðKÜ+¨

ð~à Ò�Ó Ü+¨�/qð~à Ò Ó Ü¤©ò§�Õ6ðKÜCÞã © ©·C�© ð*à Ò Ó Ü¤©

§�Õ6ð�Ü+¨�/ §�Õ6ðKÜ ©ò§UÕ6ðKÜ/Þã © ©·C�©3§UÕ6ðKܤ©

b�cUd��`mnenq�hituvUd�tuvUyUti~�z;qgd�e�qsc`z;qSqscUd��`hud Ù�Û�Ý yUd�j¼d�vUyIe�favNqscUd�q���fEfa»�Qnd�~�q«�`hud�e Ý}Ô . Õ4Ú � zovIyÙÄÛ�Ý�Ú � �Í�^q�tie�zovªd�ÃIzo�£jUhud£fop{zÍyUd�j¼d�vIyUd�vU~��ÏhituvUd){Ctiq���lUe�q�e�q�zom�q�tivú~�fahulU�£v�®a��b�cUd�end�~�fovUyhutivUd}tivUyUtu~�z;qsd�ekcUf9�©qscUd�jUmnfa�amgzo�§tie�qsfÌ»¼d�~�fa�£jUtihud�y�tipwfavUd�fam��@famnd}fop<qscId Ú � �`hid�e�c`z�xad�»¼d�d�v~�c`zovI�ad�y'�S�^q}tieS~�zohuhid�yNz;vNzo~�qstufov�hutivUd�fam}z£~�fa�£�@zovUy'�{b�cUd�mgd�~�zovN»¼d��£famgd�qsc`z;v�favUd�zo~�qgtufav

¿I®

Page 62: Introduction to Network Programming Jie Wang Department of

p fahihuf9�{tuvU��z�yUd�j¼d�vIyUd�vU~���hutivUdo�G�¨yUd�j¼d�vUyId�vU~���hutuvId}zovUyRqgcUd�zo~�qstufovRhutivUd�e5qsc`z;q�p fahuhif[�Ît�qk�@zo�odlUj��{c`z;q�tue�~�zohuhid�yÍzÌmglUhido� é ]`ÿ·í ë ñ7ì�=K�Bzo~�c�zo~�qgtufavEhituvUd���lIenq{»¼d��ativ��{t�qscÍzÌq�zo»��od��a�

���ÍyUd�pHzolIhiq�½rqscId Ý«Ô ,�à ~�fa�£�@zovUy��{tihuh·�@zo�od�qscUd��`mge�q}mnlUhud�qsc`z;qStiq��`vUyIe«tuvÍqscUd´O Ô ,�à�P7Þ à ���lIq{yId�j¼d�vUyUd�v�q��Uhud�e�tiv�qscUz;q{mglUhid}�@z9�£qscId��£egd�h�xad�e�»7d�yUd�j7d�vUyUd�vKq�fav�foqgcUd�m��`hud�e{zoekegj¼d�~�ti�`d�ytuv�foqscUd�m«mnlUhud�e�½/~�zolUentuvU��qgcUd�foqgcUd�mSmglUhid�e�qsfR»¼d��@zoyUd��Umgenq��}b�cUd�egd��`hid�e�½7tuvÍqslUmnv'½/�@z���~�zolUend�ad�q«f;qscUd�m�mnlUhud�ekqsf�»¼d��@zoyUd;�

b�cUd�end�~�fovUy"mglUhid�tivúfalUmwO Ô6,�à�P¼Þ à enq�zPqsd�e�qsc`z;q Ý}Ô . Õ4Ú � yId�j¼d�vUyUe�favúqscId@q���f��`hud�e Ý«Ô . Õ4Ú°ØzovUy Ù�Û�Ý�Úz5 �k�^p1d�tiqscId�m�fopCqgcUd�end�q���f@�`hid�e{tue{~�c`zovI�ad�y'½rqscId�v�qgcUd�zo~�qgtufavÍhutivUd�egcUf9�{e��{c`z;qS��lUenq»¼dRyUfavUdRqgfNlUj¼y`z;qgd Ý}Ô . Õ4Ú � �+��p qsd�m�qscUtie´O Ô6,�à�P¼Þ à cUzoeÌ»7d�d�v"~�mgd�zPqsd�y/½BqgcUdRjUmnfa�amgzo�@�£d�m�~�z;v~�fo�@jUtihud}fom�mgd�~�fa�£jUtuhid«qscUd�jUmnfa�amgzo� ÙÄÛ�Ý »K�R�atix4tuvI��qscUd�~�fo�@�@zovUy Ý«Ô ,sà �

¤�d�mnqszotuv¡mnlUhud�e�zomgdE»UlItuhiq�tuv�qsf Ý«Ô ,sà ½�tivU~�hilUyUtivU��qscIdÍmnlUhud@qsc`z;q£z Ú � �`hudEyUd�j7d�vUyUe£fav"qscUd~�fomgmgd�egj¼favUyUtivU� Ú°Ø �`hido�B��d�~�zolUend�f;pGqgcUtue�½IqscUd�p fahihuf9�{tuvI��tue{zovÍd�|KlUt�x;zohud�vKq�O Ô6,�à�P7Þ à �§�Õ6ðÊ/´ð*à Ò Ó Ü+¨Ø§�Õ ðKÜ+¨

ã ©�©�Cª¨ò§�Õ6ðòð~à Ò Ó Ü+¨Ø§�Õ6ðKÜ+¨

ð~à Ò�Ó Ü+¨�/ §�Õ ðKÜ/Þã ©�©�C�© ð~à Ò Ó Ü¤©

§�Õ6ð�Ü+¨�/ §�Õ6ðKÜCÞã ©�©�C�©3§�Õ6ðKÜ ©

b�cUd Ý«Ô6,�à l#qstuhitiq���mgd�~�fa�avUt Ê�d�e«z�vKlU��»¼d�m�fop1»UlItuhiq�¢�tivR��z;~�famne��k´�egtivU�@fovUd�f;pGqgcUd��ͽ`��d��ad�q�ad�q}z;vUfoqscId�m{d�|KlUt�xoz;hud�v�q�O Ô6,�à�P¼Þ à ®§�Õ6ðÊ/´ð*à Ò Ó Ü+¨Ø§�Õ ðKÜ+¨

ã ©�©�Cª¨ò§�Õ6ðòð~à Ó%Ò�Ó Ü+¨ §�Õ6ð�Ü+¨

ð~à Ò�Ó Ü+¨Ø§�Õ6ðKܤ¨�/ §�Õ6ðKÜ/Þã ©�©�C�©f-�ïÝܤ©

b�cUd�end�~�fovUy+mglUhid�cUd�mnd�enqsz;qsd�eSqscUz;qSqgcUd�q���f Ú � �`hid�e�yUd�j¼d�vIy+fav ÙÄÛ�Ý�Úz5 �{�^p1��d�d�yUt�q ÙÄÛ�Ý�Ú²5 ½qscId�v�»¼foqgc Ý«Ô . Õ4Ú � zovUy Ù�Û�Ý�Ú � ��lUe�q�»7d�mgd���zoyIdo�5b�cUd��@zo~�mnfX-ªïÝܤ©£d�Ã#j`zovIyUeSqgf Ý«Ô . Õ4Ú°Ø �{cUd�vÝ«Ô . Õ4Ú � tue�»¼d�tivU����zoyIdo½`zovIyÍt�q{d�Ã#j`zovIyUe�qgf Ù�Û�Ý�Ú°Ø �{cUd�v ÙÄÛ�Ý�Ú � tie�»7d�tuvU���@zoyUd;�

� O Ô6,�à�P¼Þ à ~�favIegtue�qse�fop{z�end�mntud�e�fop�d�vKqgmgtid�e�~�zohuhid�yÑmglUhid�e�qsc`zPq�enj7d�~�tip �ÑyUd�j7d�vUyUd�vU~�tid�eÌzovIyzo~�qstufovUe��J�¨mnlUhud�»¼d��ativUektivE~�fahilU�@v+®��{t�qsc�zÌegd�mgtud�e�fopw»UhÂz;vU�a¢�egd�j`zomgz;qsd�yÍqszomg�ad�qk�`hid�e�½#p fahuhif[��d�y»��Rz�~�fahifav={4tiq5tueBqscId�v�p fahihuf9��d�y�»��@z�»IhÂzovU�a¢^egd�jUzomsz;qgd�yRend�mntud�e�fop·jUmnd�mnd�|KlUtuentiqgdS�`hid�e�½#zohiegf�~�zohihud�yegfolUmg~�d��`hid�e��

���µ�ä¹ ÿ Ç �sÀ~�ëÆYÈÄÁYÆ�½Ä���(È��=�µÆ�Ç Ã?»���ªd«�KvUf9��qsc`zPq�� Ù1� � EFHG tueBqscUdSen�4enqgd��Ì¢�enlUjUjUhitud�y@|KlUtu~��Kegfomnq�mnfalIqstivUdo�1�#lUjUj¼faend«��dSc`z�xad��{mgtiqnqsd�vfalUm�f9�{v�� Û . Ø�,�Ù1� � EFäG mgfolIqstivUd�z;vUyÏzovúzovUfoqgcUd�m�� Ù1� � EFHG mgfalIqgtuvUdÌp mnfa� z�yUt�Ë/d�mgd�vKq�en�4e�qsd�� p fam�{cUti~�c���dS��d�mgd�zo»Ihud{qsf�»¼famnmgf9��qscId«~�f4yUd;�M�úd���falIhuy�hitu�;d�qgf�~�fo�@j`z;mgd{qscUdSmglUvUvItuvU��qstu�£d�eBp famqscId�egd�qscImgd�d�egfomnqstivU�ÌmgfolIqstivUd�e��5b�cId�p fohuhuf9�{tivU��tue{zqO Ô6,�à�P¼Þ à p famkqgcUtue�jUlImgj¼faegd;�

¿�¸

Page 63: Introduction to Network Programming Jie Wang Department of

Ñ AÂà�«�¬å Ò Ô¬·­~¨ ©6¨�ð�ÛÂà6᪬ë§6¨-á6­ Ò�Óªã á¨UÕ�­ Ò�Ó ¬�§

ñ�Dªõø��ØÚàå~§ ÚUÕ Ó © ã Ü�¬ÖÕ*Ú�Õ>§�¬áÂÚ�dªÚ.dª¨ Ó ¬Ö¨¬ÂÚ�©+�+j� ã © ©+6ô ý�D�B�õj�jC�èø�ô*ö�ý6øv��- � ñ�Dªõ�ø��6ÚUâ Ò Ó Úª©6¨�ð�ÛÂà6᪬���§6¨�á6­*§öUþ�+ ýªõj�jCÂö�- � ñ�Dªõø��Ú Ò Ó ©6ÔUÕªÖª¬ý*öUñ�õ2��- � ñ�D�õ�ø��Ú Ô Ò â*Ú ã ��Ô Ò âÉÜ�à«- � ñ�Dªõ�ø��Ú�Ô Ò â*ÚUÕ#�ªÔ Ò âÉÜ1àèñ��õ2�Ðð~à Ò Ó Ü+¨ à Ó ¨�­ Þ¬á����~§6¨-á6­¾Ü¤¨ ©�Þ�«%�ª¨-á Öª¬6ásÜ+¨ ©6¨�ðªÛÂà᪬�ܤ¨·�Õ Ò ©U«*§ ¨-á6­¾Ü+¨- � øªô*öUý6ø��$/h- � èñ��õ%�

, ¬�©�Þ*¨ N Ô Ò Ó « Ò Óªã Ü Ü�Ü N, - � +�+#�2- � +6ô ý�D�Bªõ%�·Cª¨2- � ø�ô*öUý ø��2- � èñ��õ%�j- � ý*ö�ñªõ%�

- � è6ñ���õ%�&/ © ¨�ð�ÛÂàá�¬���§6¨-á ­*§ÝÜ/Þ- � +�+#�f- � +6ô�ý�D�B�õ%�j- � öUþ�+6ý�õ%�·C�©f-ªïÝܤ©

ö ë "�"�Z4_oí ë ñ¼ì�ñ¼\{íU�<Z#O Ô6,�à�P¼Þ à \^ñrY�í��wZ © ¨�ð�ÛÂàá�¬���§6¨-á ­*§�þGY[ñròrY[]`óÎ Ñ A~à�«�¬å Ò Ô¬·­~¨ò© ¨�ð�ÛÂàá�¬ § ¨-á6­ Ò Ó�ã á~¨UÕ�­ Ò Ó ¬�§¤�fa�£�£d�v�qse�~�zov�»¼d�jUlIq�tiv�z O Ô6,�à�P7Þ à ½`»¼d��ativUvUtuvI���{tiqscÍz Ñ z;vUy�d�Ã4qsd�vUyUe{qsfÌqscUd�d�vUy�f;pqgcUd�hutuvIdo�

Î ñ�Dªõ�øv�ØÚàå~§6Ú�Õ Ó © ã Ü1¬ÖÕ*ÚUÕ%§�¬áÂÚ.d�Ú.dª¨ Ó ¬Ö¨¬ÂÚ�©b�cUtie�tie�z;v@dÄÃUz;�@jUhidSf;p·z��@zo~�mgf�yUd��UvUtiqgtufav'�Cb�cUdS�od�vUd�mszohrp famg� fop<z���zo~�mgf�yUd��UvUtiqgtufav£tue

ð~à�©�á~¨.� Ó à�ð*¬��·áª¬�Û*Ôà�©�¬-ð~¬ Ó ­6�§U­�á Ò Ó�ã����~�fav�xod�v�qstifav'½'�@zo~�mnfRv`zo�£d�e}zomgd�lIegl`zohihi�Í~�z;jUtiqszohut Ê�d�y/½7»Ul#q}qscUd���yIfEvUfoq�c`z�xod�qsfR»¼do�b�cUdSmgd�jUhÂzo~�d��£d�v�q5enqgmgtuvI��~�zov�~�fav�q�zotiv£�{cUt�qsd{egjUzo~�d;�5�^p'z�»Uzo~��KeghÂz;egc¥l�f4~�~�lUmge�z;qBqscUd�d�vIyfop¼qscId�hituvUd;½aqscUd�v£qgcUd{mgd�jUhÂzo~�d��£d�v�qBenqgmgtivU��~�fav�qstivKlUd�eBqsf�qscId�vId�Ã4q�hituvUd;�Gb�cIdS�@zo~�mnf?ñ�D�õ�ømnd�jUmnd�egd�v�qse}z�cUfa�£d�yUtimgd�~�qsfam��Rfav�´«È«¤�Ç ��z;~�cUtuvUd;�

Î +�+j� ã ©�©+6ô ý�D�B�õj�jC èb�cUd��Umgenq��@zo~�mgfRenj7d�~�ti�Ud�e}qscId�¤$~�fa�£jUtuhid�m{qsc`z;q«��d�zomnd�lUentuvU�U½7tuvNqgcUtueS~�zoend�qscUd£Ç�È«´¤�~�fa�£jUtihud�m��Cb�cUd�end�~�favUyÍ��zo~�mgf�enj7d�~�t��`d�e�qscId}fajIqgtufavUe�qsc`z;q��{tuhuh¼»¼d�lUegd�y��{t�qscRqgcUd ÖaØ�Ø~�fa�@�@zovUy/�

Î ø�ô*öUý ø���- � ñ�D�õ�ø��ÚUâ Ò Ó Ú�©6¨Uð�ÛÂà᪬���§6¨-á�­*§öUþ�+6ý�õ2�jCÂö.- � ñ�Dªõ�ø��6Ú Ò Ó ©6Ô�ÕªÖª¬ý*öUñªõj��- � ñ�Dªõø��Ú Ô Ò â*Ú ã �ªÔ Ò âÉÜ�à1- � ñ�Dªõø��Ú Ô Ò â*ÚUÕ%�ªÔ Ò âÉÜ�à

¿�

Page 64: Introduction to Network Programming Jie Wang Department of

b�cUd�egd��@zo~�mnfae«enj7d�~�tip �ÍqscId�d�Ã#d�~�lIq�z;»Uhud��`hido½/z�yUtumnd�~�qsfam���p famStuvU~�hulUyId��`hid�e}jUmnd�~�d�yUd�yÑ»��qgcUd�CÂö�fajIqgtufav/½JzovUy"q���fÑhitu»Umgzomgtid�e�½1mgd�egj¼d�~�qgtixod�hi�o�ªb�cId��Umgenq�hitu»Umgzomn�o½ ã �ªÔ Ò âÉÜ�àU½�tie�qscUd�amgzo~�d�p lUh�huti»Umsz;mn��{}qsc�qsdÑegd�~�favIyÒhitu»Umgzomn�o½�Õ%�ªÔ Ò âÉÜ�àU½�tueRqgcUd�lIqstihutiq���hitu»Umgzomn�o� �#tuvI~�d+falUmjUmnfa�amgzo� tivKxofa�od�e�p lIvU~�qgtufavUe�qgc`z;q�zomndÌtuv+qscUd�egd�huti»Umsz;mgtud�e�½/qgcUdÌhuti»Umsz;mgtud�e}��lUe�q�»7d��@zoyUdz�x;zotuhuzo»UhidCqsf{qscUd5~�fo�@jUtihud�m����úd5�od�d�j�qgcUd�zoegenf#~�tÂz;qgd�y�cId�zoyUd�mw�Uhud�e ã �ªÔ Ò âÉÜ/Þ�zovUy�Õ%�ªÔ Ò âKÜ/Þtiv�qscId�yUtumnd�~�qsfam�� ' - � ñ�D�õ�ø��Ú Ò�Ó ©6ÔUÕªÖ�¬U��b�cUd�~�fa�£jUtuhid�m��{tuhihwcUz9xod�qsf�»7d�qsfahiy�qsf@huf4fa�EtuvqgcUtue�yUtimgd�~�qsfomn�Rp fam�cId�zoyUd�m��`hud�e��

Î èñ���õj�Ðð~à Ò Ó Ü¤¨ à Ó ¨�­6Þ~¬á����§ ¨-á6­¾Ü+¨e©�Þ�«6��¨-á Öª¬á¾Ü+¨ ©6¨�ð�Û~à᪬�Ü+¨f��Õ Ò ©U«*§6¨�á6­¾Ü+¨��v�qgcUtue5�@zo~�mnf�yUd��`vUt�qstufov£qgcUd«mnd�jUhuzo~�d��@d�vKq�enqgmgtivU��tieBqgcUd«hitue�q�f;p'fa»�Qnd�~�q��`hud�e�qscUz;q�f4~�~�lUmgefav�qscId�mntu�ac�q{egtiyUd�fopGqgcUd�d�|Kl`zoh<egti�av'�5�«h�qscUfalI�acÍ��d�jUlIq Ý}Ô . Õ4Ú � �`mge�q}zovIyÍqgcUd�v�hutue�q�qscUdfoqgcUd�mne�zohujUcUzo»7d�qsti~�zohihi�a½4famnyUd�m{tue�vIfoq{tu�£j7fomnq�z;vKq��

Î - � ø�ô>öUý6ø��&/h- � èñ���õ#�, ¬Â©�Þ*¨ N Ô Ò Ó « Ò Óªã Ü Ü Ü N, - � +�+#�2- � + ô ý�D�B�õ#��C�¨2- � ø�ô*öUý6ør�f- � èñ���õ#�f- � ý*öUñªõ#�

b�cUd��`mge�q�hutuvId�tue�z£yId�j¼d�vUyUd�vU~���hutivUdo�5b�cUd�egd�~�favUyNzovUy�qscUtimgyÍhutuvId�e�egj¼d�~�tip �EqgcUd�z;~�qstifavUeqgf@»¼d}q�zo�;d�v'��ÈSf;qsd�~�zomnd�p lUhihi�@qsc`z;q�qgcUd��R»7d��atuvE�{tiqgc�z�qszo»'�Bb�cUd , en�4��»¼fah·�£d�zovIe{qgc`z;qqgcUdÌzo~�qstufovNhutivUd�t�qsend�hipBtie«vUf;q«qsf�»7d�d�~�cUf4d�y�fav�qgcUd�eg~�mgd�d�v'��µ�zo~�mgfRtivKxof#~�z;qstifavNc`z;e«qscUdp famn�

- � ð~à�©�á~¨.� Ó à�ð*¬%�b�cKlUe�½rqgcUd�~�favIenqsmnlU~�q¹- � øªô*öUý6ø��£tie�mgd�jUhÂzo~�d�yÍ»��

- � ñ�Dªõ�ør�ÚUâ Ò Ó Ú�©6¨�ð�Û~à᪬���§ ¨-á6­*§�{cUti~�c�tivEqslUmnv�tie�mgd�jIhÂzo~�d�yÍ»K�

Ú6àå~§6ÚUÕ Ó © ã Ü�¬6ÖÕ*ÚUÕ>§¬áÂÚ.dªÚ�dª¨UÞ Ó Ö¨¬ªÚ�©6ÚUâ ÒUÓ Ú�©6¨�ð�ÛÂàá¬���§ ¨�á6­*§�#ti�@tihÂzomnhi�o½�- � èñ���õ#�Ñtue£mgd�jUhÂz;~�d�y�»K�¡qgcUd�hituenq�f;p�fa»�Qnd�~�q��Uhud�e�½{zovUy�egfÏfav/��b�c4lIe�½�qscUdyUd�j7d�vUyUd�vU~���hutuvId�e�q�z;qgd�eSqgc`z;q�qscUd�d�Ã#d�~�lIq�z;»Uhud��Uhud�yUd�j¼d�vUyIe}fav�qgcUd�fa»�Qnd�~�qS�`hud�e����^pJfavUdfam��@fomgd�fop'qscId«fa»�Qnd�~�q��`hud�e�c`zoe�»7d�d�vElUj¼y`z;qgd�y'½KqscId�vRqscId«egj¼d�~�ti�`d�yEzo~�qstufovUe�f4~�~�lUm��1b�cIdend�~�fovUyNzo~�qstifav�hutuvId}�ad�qge{d�Ã#j`zovUyId�y�qgf

,6ã © ©fC èjCª¨3Úàå~§6Ú�Õ Ó © ã Ü1¬ÖÕ*ÚUÕ%§�¬áÂÚ.d�Ú.dª¨UÞ Ó Ö¨¬ÂÚ�©6Ú�â Ò Ó Úª© ¨�ð�Û~à6᪬��§ ¨-á ­*§·ð~à Ò�Ó Ü+¨�là Ó ¨�­6Þ~¬á����§ ¨-á6­¾Ü+¨ ©�Þ�«6�ª¨�á Öª¬ásܤ¨ë©6¨�ð�Û~à᪬�Ü+¨f��Õ Ò ©U«*§6¨�á6­¾Ü+¨�lÚàå~§6Ú�Õ Ó © ã Ü1¬ÖÕ*ÚUÕ%§�¬áÂÚ.d�Ú.dª¨UÞ Ó Ö¨¬ÂÚ�©6Ú Ô Ò â*Ú ã �ªÔ Ò âKÜ�à¶lÚàå~§6Ú�Õ Ó © ã Ü1¬ÖÕ*ÚUÕ%§�¬áÂÚ.d�Ú.dª¨UÞ Ó Ö¨¬ÂÚ�©6Ú Ô Ò â*ÚUÕ@�ªÔ Ò âKÜ�à

�ShiqscIfalU�ac���d�c`z�xod��{mgtiqnqsd�vNtiq«fav�p falUmShutivUd�eSyUlUd�qgfRegj`z;~�d�hitu�£tiq�zPqstufovUe�½Ut�q}tie}zo~�qslUmgzohuh���ad�vUd�mgz;qsd�yNzoe{z�egtivU�ahid}hutivUdo�

¿o¯

Page 65: Introduction to Network Programming Jie Wang Department of

Î - � èñ���õ%�&/ ©6¨Uð�ÛÂà᪬���§6¨-á6­>§ÝÜ/Þ- � +�+#�f- � +6ô ý�D�B�õ%�j- � öUþ�+6ýªõ#��C©f-�ïMܤ©

b�cUdByUd�j7d�vUyUd�vU~���hituvUd1egz��#e·qgc`z;q<zohih;qgcUdJfa»�Qnd�~�q<�`hud�e'yUd�j7d�vUy�fov�qgcUdJcUd�zoyUd�m·�`hid¾©6¨�ð*à-۪᪬��§6¨-á6­*§MÜ/Þ7�b�cUd�~�favUe�qsmglI~�q�-�ï�tie�z�jUmgd�yUd��UvUd�yÍ��z;~�mgf�~�zohihud�y@qscUdê`7£���{Ý��x�{?|>£3T¸{�T[£�v�� �P½K�{cUtu~�c�dÄÃ4¢j`z;vUyUeBqsf�qscUd��`hid�vUzo�@d{»¼d�tivU��»UlUtuh�q�½�dÄÃI~�hulUyItuvU��zov���d�Ã4qgd�vUentufav'���`famJdÄÃIzo�@jIhudo½Kt�p Ý«Ô . Õ4Ú �tie�»7d�tuvU��»UlUtihiq�½#qscId�vh-�ïÝܤ©Ìd�Ã#j`z;vUyUe{qsf Ý}Ô . Õ4Ú Ø ½`z;vUyÍqgcUd�zo~�qgtufav�hituvUd}»¼d�~�fa�£d�e

ã © ©·C èjCÂöÚ�©6Ú Ò Ó ©6ÔUÕ�Öª¬vC�©Rð~à Ò Ó Ü¤©

¤�d�mnq�z;tuv�yUd�j7d�vUyUd�vI~�tud�e�zomgd�»UlUtuh�q�tiv�qsfúqgcUd Ý«Ô ,�à l#qstuhitiq��o�ò�`fam@d�ÃIzo�£jUhud;½�d�zo~�c Ú � �`hudyUd�j7d�vUyUe}fov�qscUd�~�fomgmgd�egj¼favUyUtivU� Ú Ø �`hido��b�cUtie«�£d�zovIe�qgc`z;qStipBz Ú°Ø �`hud�tue�~�c`zovU�od�y'½¼qscUd�vt�q��{tuhuhC»7d�mgd�~�fa�£jUtihud�y+qgfÍjImgf4yUlU~�d@z�vUd�� Ú � �`hud;½wzovUy�qscUtie�tiv+qslUmnvÑ�{tihuh1~�zolUegd@zohihCqscUdfa»�Qnd�~�q��`hid�ekqsf�»¼d�mgd�hituvU�;d�y'�

Î CÂöÚ�© Ú Ò Ó ©6Ô�ÕªÖª¬�Sv�faj#qstufovÍf;pGqgcUd�p famg� C~öª��y¦�ktivUenqgmglU~�qse�qscId�~�fa�£jUtuhid�m�qgf£hif#fo��tuvEqgcUd�yUtumnd�~�qgfamn�k��y¦��p famÑ*Ò Ó © ÔUÕªÖª¬��`hud�e���b�cItue{fajIqgtufav�~�fo�@jUhid��£d�v�qse�folUm{lUegd�fop1hitu»Umgzomgtid�e��J�kq�qgcUd�qsfajÍfopwqscUd Ú°Ø�`hid�e{�@zo�KtuvU�ÌlUj�qscItue�jUmnfa�amsz;��½4��d�c`z�xad�qscUd�hituvUd

Ñ*Ò Ó © ÔUÕªÖª¬ N © ¨�ð�ÛÂàá�¬���§6¨-á ­*§ÝÜ/Þ NzovIy�z;q�qgcUd�qsfajÍfop�©6¨Uð�ÛÂà᪬���§6¨-á6­>§ÝÜ/Þ���d�c`z�xad�qscUd�hituvUd�eÑ*Ò Ó © ÔUÕªÖª¬ N�ã �ªÔ Ò âÉÜCÞ NÑ*Ò Ó © ÔUÕªÖª¬ N Õ#�ªÔ Ò âÉÜCÞ Nb�cUd�egd{cUd�zoyUd�mJ�`hid�e1~�fav�q�zotiv�qscUdkp lIvU~�qgtufavÌjUmnfoqsf;q��#j¼d�e1p fomCqscUdkp lIvU~�qgtufavUeCtuvÌfalUmChutu»Imszomntud�e��b�cUdmCÂö�fajIqgtufavRqgd�hihuekqscId�~�fa�£jUtuhid�m��{cId�mgd�qsfÌ�`vIy�qscId�egd�cUd�zoyUd�m��`hid�e��

ÈSfoqgdkqsc`z;qBqgcUd Ý}Ô6,�à lIqstihut�q���tieJvUfoqBmnd�enqgmgti~�qsd�y£qgf�¤«���^qB~�zov£»7d�lUend�y£qsf���z;tuv�q�zotiv�jUmnfa�amsz;�@etuv�z;vK��hÂzovI�al`zo�ad;��µ�famnd��ad�vId�msz;huhi�o½/t�q}~�z;vÑ»¼d�lUend�y�tuv�z;vK���KtuvUy�fopBjImgf:Qnd�~�q�qscUz;q�~�fovUegtienqse�f;p�`hid�e��{tiqgcÍyId�j¼d�vUyUd�vU~�tid�e«zovUyÍzoegenf#~�tÂz;qgd�y�zo~�qgtufavIe��

� æÄuaæÄbBæ}äkp�æ�ç

¾°¤�fa��­a²PÁû���`¤�fa�@d�m�� �s�:T<��V�}�{��"!�{�}�¥¾���7����£�|>�$#�|~}H{���| {�}¦���`�Jmgd�v�qstu~�d��Szohuh)½7®�­a­�²#�¾°¤��I­a¿;Á ���a¤�fa�£d�mJzovIy@���a�4qsd�xad�vUe��%#�|~}H{��E| {�}/¥¾��� ��y¦|��T¥Yy¦}'&)(*�,+(¢-#.+ /10>��xûV�T¸{2#3#4#657�MxzyC{�|~}/�

8 {��E��{��"+s� �����+£3TUT�y¦|��´£�|>�:9¾�6�>xzyCv¤£�}/yC��|����`�Jmnd�v�qsti~�d��«zohihW½7®9­a­a¿I�¾ À��B­a¹PÁ ���<À�d�huhid��NzovUyÑ���<�GfacUh)�;9=<<�����Q��|>� ? +s� �����+£3TUT�y¦|��oy¦|)9"! 8 #@�1½w¸;vUyÑd�yUt�qstufov'½

��d�v:Qgzo�£tuv`¥a¤�lU�£�@tivU�aek�JlU»IhutuencUtuvI�£¤�fa�@jUzov��a½·®9­a­o¹I�

¿�±