±Ï Òµ ÂÛ ÎÄ
ÂÛÎÄÌâÄ¿£º¼´Ê±Í¨Ñ¶ÏµÍ³µÄÉè¼ÆÓëʵÏÖ
¿ª Ìâ ±¨ ¸æ
ÂÛÎÄÌâÄ¿£º ÐÕÃû£º_____________ ѧºÅ£º________________ ѧԺ£º___________________
¿ªÌⱨ¸æÕýÎÄÓ¦°üº¬ÒÔϼ¸·½ÃæµÄÄÚÈÝ£º 1.1 ÂÛÎÄÑ¡ÌâµÄÄ¿µÄºÍÒâÒå
½üÄêÀ´£¬Ëæ×ÅInternetµÄ·ÉËÙ·¢Õ¹£¬¼ÆËã»úÍøÂçµÃµ½ÁËÔ½À´Ô½¹ã·ºµÄÓ¦Ó㬲¢ÇÒÒѾÖð²½×ß½øÇ§¼ÒÍò»§¡£×ÔÂõÈëÐÅϢʱ´úÒÔÀ´£¬¾àÀëÒѾ²»ÔÙÊÇÈËÃÇÖ®¼äÁªÂ繵ͨµÄÕϰ£¬Ò²ÕýÒòΪÈç´Ë£¬ÈËÃǶԹµÍ¨½»Á÷µÄÐèÇóºÍÒÀÀµÒ²Ô½À´Ô½Ç¿ÁÒ£¬¸÷Ðи÷Òµ¶ÔÐÅÏ¢½»Á÷µÄÒªÇóÒ²Ô½À´Ô½¸ß¡£Èç½ñ£¬Í¨¹ý¸÷ÖÖ¼´Ê±Í¨ÐÅÈí¼þ£¬ÈËÃÇÒѾ¿ÉÒÔÔÚ×ã²»³ö»§µÄÇé¿öÏ£¬ÓëÔ¶¾àÀëÉõÖÁÊÀ½ç¸÷µØµÄÈ˽øÐÐʵʱµÄÁÄÌì½»Á÷£¬ÕâÑùµÄ½»Á÷²»½öÂú×ãÁËÈËÃǶԽ»Á÷¹µÍ¨µÄÐèÇó£¬Í¬Ê±Ò²¸øÈËÓëÈËÖ®¼äµÄ½»Á÷´øÀ´Á˼«´óµÄ±ã½ÝºÍ´óÁ¿µÄ¾¼Ã½ÚÊ¡¡£Òò´Ë£¬¼´Ê±Í¨ÐÅ£¨Instant Messaging£©ÔÚÈËÃǵÄÉú»î¹¤×÷ºÍѧϰÖеõ½Á˸ü¹ã·ºµÄÓ¦Óá£
Ŀǰ£¬ÒѾÓв»ÉÙ¼´Ê±Í¨ÐÅÈí¼þÔÚÉç»á¹«ÖÚÖÐÁ÷ÐУ¬ÏñMSN£¬ÌÚѶQQ£¬ÐÂÀËUCµÈ£¬¶¼ÊǹúÄÚÈËÃÇËùÊìÖªµÄÖªÃûÁ÷Ðм´Ê±Í¨ÐÅÈí¼þ£¬Æä¼¼Êõ·½ÃæÒ²¶¼´¦ÓÚ¹ú¼ÊÁìÏÈˮƽ¡£Í¬Ê±£¬ÓÉÓÚ¼´Ê±Í¨ÐÅÈí¼þµÄ±ãÀû£¬ÆäÓ¦ÓÃÒѾÓÉ×î³õµÄ¼òµ¥µÄÁÄÌì½»Óѵõ½Á˾޴óµÄÍØÕ¹¡£ÊÊÓ¦¸÷ÖÖ³¡ºÏµÄ¸÷ʽ¼´Ê±Í¨ÐÅÈí¼þÒ²¿ªÊ¼³öÏÖÔÚÈí¼þÊг¡ÉÏ£¬Õâ¾Í°üÀ¨ÁËһЩÓëÆóÒµ¹ÜÀíÏà¹ØµÄ¼´Ê±Í¨ÐÅÈí¼þ£¬Ò»¸ö¾ßÓÐÆóÒµ×Ô¼ºÌØÉ«µÄ¼¯ÐÅÏ¢¹ÜÀíºÍ¼´Ê±Í¨ÐÅΪһÌåµÄÄÚ²¿Ó¦ÓÃÈí¼þ£¬Äܹ»Ê¹Ò»¸öÆóÒµ»òÕßÍŶӸüÏñÒ»¸öÕûÌ壬ͬʱҲÄܹ»¸øÆóÒµµÄ¹ÜÀíºÍÐÅÏ¢½»Á÷´øÀ´¼«´óµÄ±ãÀû£¬ÔÚÒ»¶¨³Ì¶ÈÉÏÌá¸ß¹¤×÷ЧÂÊ¡£
ͬÑùµÄ£¬¶ÔÓÚÈí¼þÉè¼ÆÓ뿪·¢µÄÐÐÒµÀ´Ëµ£¬¹ýÈ¥µÄÄÇÖÖ½öÊÊÓÃÓÚPC»úÉϵÄÓ¦ÓóÌÐòµÄ¿ª·¢ÒѾԶԶ²»ÄÜÂú×ãÊг¡µÄ¶àÑù»¯µÄÐèÇó£¬ÍøÂç³ÌÐòµÄ¹ã·ºÓ¦Óú͹ã´óÐèÇóʹѧϰÓëÕÆÎÕÓëÍøÂçÏà¹ØµÄ±à³Ì¼¼ÊõÏÔµÃÓÈÎªÖØÒª¡£
±¾ÂÛÎĽ«½áºÏÒ»¸ö¾ßÌåµÄ¾ÖÓòÍø¼´Ê±Í¨ÐÅϵͳµÄ¿ª·¢±àд£¬ÒÔÏÖÓеĸ÷ÖÖ¼¼Êõ£¬½éÉܽ²½âÍøÂçIMÈí¼þ¿ª·¢ÖеÄÖØÒªÖªÊ¶£¬²¢ÌÖÂÛÆäÖйؼü»·½ÚµÄ¼¼ÊõÎÊÌâºÍ¸÷ÖÖ½â¾ö·½°¸ºÍÉè¼Æ²ßÂÔ
1.2 Ïà¹Ø¼¼Êõ֪ʶ¼ò½é
1.2.1 »ùÓÚSOCKETµÄÍøÂç±à³Ì
SOCKETÔÚÓ¢ÎÄÖеÄÒâ˼ÊDzå×ù£¬ÔÚÍøÂç±à³ÌÖУ¬Æäʵ¼ÊÒâÒå¿ÉÒÔÀí½âÎªÍøÂçͨÐÅÁ¬½ÓµÄ²å×ù£¬Í¨³£³ÆÖ®ÎªÌ×½Ó×Ö¡£Èç¹û½«ÍøÂçÁ¬½ÓµÄ¸÷ÖÕ¶ËÀà±ÈΪµç»°£¬ÔòSOCKET¼´Ï൱Óڵ绰Ïß²å×ù£¬Îª¸÷ÖÕ¶ËÌṩ»òÕß´´½¨ÓëÆäËûÖÕ¶ËͨÐÅÁ¬½ÓµÄÇÅÁº»òͨµÀ¡£ËùÓеÄÖն˶¼±ØÐë½Óͨ´Ë¡°²å×ù¡±À´Íê³ÉÓëÆäËûÖն˵ÄÁ¬½Ó»òͨÐÅ£¬·ñÔò£¬Ëü½«¶ÀÁ¢ÓÚÍøÂçÖ®Íâ¡£
ÓÉ´Ë¿ÉÒÔÖªµÀÖªµÀ£¬SOCKETÊÇÖն˼佨Á¢Á¬½ÓµÄºËÐĶÔÏó¡£ÄÇô£¬¶ÔÓÚÒ»¸öSOCKET¶ÔÏó£¬Ëüµ½µ×¾ß±¸Ê²Ã´ÑùµÄ¹¦ÄÜÄØ£¿
ͨ³££¬ÓÃWINSOCK¿âÀ´´´½¨ºÍʹÓÃSOCKET£¬ÔËÓÃWINSOCK¿âµÄ»ù±¾API£¬¾Í¿ÉÒÔʵÏÖ¼òµ¥µÄÊý¾ÝÊäÈëºÍÊä³ö£¨¼´·¢ËÍÊý¾ÝºÍ½ÓÊÜÊý¾Ý£©¡£ÔÚ´´½¨Ò»¸öSOCKET¶ÔÏóºó£¬Í¨¹ýÖ¸¶¨IPµØÖ·À´È·¶¨¸ÃSOCKETÓëÄĄ̈»úÆ÷·¢Éú½»Á÷£¬Í¨¹ýÖ¸¶¨»úÆ÷¶Ë¿ÚºÅ£¨Ò»°ãΪ1024ÒÔÉÏ£©È·¶¨Óë¸Ã»úÆ÷ÉÏÄĸöÓ¦ÓóÌÐò½øÐн»Á÷¡£ÔÚÈ·¶¨Á˽»Á÷¶ÔÏóºó£¬±ã¿ÉÒÔʹÓÃSOCKETÓë¶ÔÏó»úÆ÷ÉϵÄÓ¦ÓóÌÐò½øÐÐÊý¾ÝµÄ´«ÊäºÍÐÅÏ¢µÄ½»Á÷¡£ÔÚÃæÏòÁ¬½ÓµÄÍøÂçͨÐÅÖУ¬»¹±ØÐëʹÓÃSOCKET½øÐÐÁ¬½ÓµÄ¼àÌýºÍ´´½¨£¬Ö»Óд´½¨ÁËÎȶ¨µÄÁ¬½Óºó£¬²Å¿ªÊ¼½øÐÐÊý¾ÝµÄ´«Êä¡£
ÓÉÓÚ½»»¥·½Ê½µÄ²»Í¬£¬SOCKETÒ²·ÖΪÁ½ÖÖ£¬Ò»ÖÖÊÇÎÞÁ¬½ÓµÄÊý¾Ý±¨ÐÎʽµÄ£¬Ò»ÖÖÔòÊÇÃæÏòÁ¬½ÓµÄÁ÷ʽÌ×½Ó×Ö£¬ÕâÒ²ÊǽÓÏÂÀ´Á½Ð¡½ÚÒª²ûÊöµÄÄÚÈÝ¡£ 1.2.2 UDPÐÒéÓëTCPÐÒéµÄ¼òµ¥½éÉÜ
UDPÐÒéÊÇÒ»¸ö¼òµ¥µÄÃæÏòÊý¾Ý±¨µÄÔËÊä²ãÐÒ飺½ø³ÌµÄÿ¸öÊä³ö²Ù×÷¶¼ÕýºÃ²úÉúÒ»¸öUDPÊý¾Ý±¨£¬²¢×é×°³ÉÒ»·Ý´ý·¢Ë͵ÄIPÊý¾Ý±¨¡£ÕâÓëÃæÏòÁ÷×Ö·ûµÄÐÒ鲻ͬ£¬ÈçTCP£¬Ó¦ÓóÌÐò²úÉúµÄÈ«ÌåÊý¾ÝÓëÕæÕý·¢Ë͵ĵ¥¸öIPÊý¾Ý±¨¿ÉÄÜûÓÐʲôÁªÏµ¡£UDP²»Ìṩ¿É¿¿ÐÔ£ºËü°ÑÓ¦ÓóÌÐò´«¸øIP²ãµÄÊý¾Ý·¢ËͳöÈ¥£¬µ«ÊDz¢²»±£Ö¤ËüÃÇÄܵ½´ïÄ¿µÄµØ£¬Æä¹ý³Ì¿ÉÒÔ±È×öͶµÝÐżþ£¬ËüÖ»¹ØÐÄÐżþȷʵͶ·Åµ½ÐÅÏ䣬ÖÁÓÚ¶Ô·½ÊÇ·ñÕýÈ·¡¢°´Ê±ÊÕµ½Ðżþ£¬UDP²¢²»¹ØÐÄ¡£
¾¡¹ÜTCPºÍUDP¶¼Ê¹ÓÃÏàͬµÄÍøÂç²ã£¨IP£©£¬TCPÈ´ÏòÓ¦ÓòãÌṩÓëUDPÍêÈ«²»Í¬µÄ·þÎñ¡£TCPÌṩһÖÖÃæÏòÁ¬½ÓµÄ¡¢¿É¿¿µÄ×Ö½ÚÁ÷·þÎñ¡£ÃæÏòÁ¬½ÓÒâζ×ÅÁ½¸öʹÓÃTCPµÄÓ¦Óã¨Í¨³£ÊÇÒ»¸ö¿Í»§ºÍÒ»¸ö·þÎñÆ÷£©Ôڱ˴˽»»»Êý¾Ý֮ǰ±ØÐëÏȽ¨Á¢Ò»¸öTCPÁ¬½Ó¡£ÕâÒ»¹ý³ÌÓë´òµç»°ºÜÏàËÆ£¬ÏȲ¦ºÅÕñÁ壬µÈ´ý¶Ô·½Õª»ú˵¡°Î¹¡±£¬È»ºó²Å˵Ã÷ÊÇ˲¢ÓëÖ®¿ªÊ¼¶Ô»°¡£
1.2.3 WINSOCKÌ×½Ó×ÖAPIµ÷Óõļòµ¥Á÷³Ì
±¾ÂÛÎÄËùÒªÌÖÂ۵ļ´Ê±Í¨ÐÅϵͳÔòÊÇͨ¹ýWINSOCK¿âµÄÓ¦ÓÃÀ´Éè¼ÆºÍʵÏÖ»ùÓÚTCPµÄC/S½á¹¹µÄÍøÂ缴ʱͨÐųÌÐò¡£ÕâÀÓÃͼµÄ·½Ê½¼òµ¥µÄ±íʾ³ö¶ÔWINSOCK¿âÌṩµÄAPIº¯Êýµ÷Óùý³Ì¡£
ÃæÏòÁ¬½ÓµÄÁ÷·½Ê½µ÷Óùý³ÌÈçͼ1-1Ëùʾ¡£
SERVER¶Ë
µ÷ÓÃWSAStartup()³õʼ»¯SOCKET µ÷ÓÃsocket()´´½¨SOCKET µ÷ÓÃbind()Ö¸¶¨Í¨Ñ¶¶Ë¿Ú µ÷ÓÃlisten()ÉèÖõȴýÁ¬½Ó״̬ µ÷ÓÃaccept()½ÓÊÕÁ¬½Ó²¢Éú³É»á»°socket µ÷ÓÃaccept()½ÓÊÕÁ¬½Ó²¢Éú³É»á»°socket µ÷ÓÃsendºÍrecv½øÐÐͨѶ»á»° µ÷ÓÃclosesocket¹Ø±Õ»á»°socket µ÷ÓÃsendºÍrecv½øÐÐͨѶ»á»° µ÷ÓÃclosesocket¹Ø±Õ»á»°socket CLIENT¶Ë µ÷ÓÃWSAStartup()³õʼ»¯SOCKET µ÷ÓÃsocket()´´½¨SOCKET
ͼ1-1 ÃæÏòÁ¬½ÓµÄÁ÷ʽͨÐŹý³Ì
ÃæÏòÎÞÁ¬½ÓµÄÊý¾Ý±¨·½Ê½µÄµ÷Óùý³ÌÈçͼ1-2Ëùʾ
µ÷ÓÃWSAStartup()³õʼ»¯SOCKET µ÷ÓÃsocket()´´½¨SOCKET µ÷ÓÃsendtoºÍrecvfrom½øÐÐͨѶ»á»° µ÷ÓÃclosesocket¹Ø±Õ»á»°socket
ͼ1-2 ÃæÏòÎÞÁ¬½ÓµÄÊý¾Ý±¨¹ý³Ì
´ÓͼÖпÉÒÔ¿´³ö£¬ÃæÏòÁ¬½ÓµÄÁ÷·½Ê½¸üÄÜÊÊÓ¦C/S½á¹¹ÏµÍ³µÄ·Ç¶Ô³Æ½á¹¹µÄʵÏÖ¡£