ÓÑÇéÌáʾ£ºÈç¹û±¾ÍøÒ³´ò¿ªÌ«Âý»òÏÔʾ²»ÍêÕû£¬Çë³¢ÊÔÊó±êÓÒ¼ü¡°Ë¢Ð¡±±¾ÍøÒ³£¡ÔĶÁ¹ý³Ì·¢ÏÖÈκδíÎóÇë¸æËßÎÒÃÇ£¬Ð»Ð»£¡£¡ ±¨¸æ´íÎó
Ò»ÊÀÊé³Ç ·µ»Ø±¾ÊéĿ¼ ÎÒµÄÊé¼Ü ÎÒµÄÊéÇ© TXTÈ«±¾ÏÂÔØ ½øÈëÊé°É ¼ÓÈëÊéÇ©

Java±à³Ì˼ÏëµÚ4°æ[ÖÐÎÄ°æ](PDF¸ñʽ)-µÚ173ÕÂ

°´¼üÅÌÉÏ·½Ïò¼ü ¡û »ò ¡ú ¿É¿ìËÙÉÏÏ·­Ò³£¬°´¼üÅÌÉ쵀 Enter ¼ü¿É»Øµ½±¾ÊéĿ¼ҳ£¬°´¼üÅÌÉÏ·½Ïò¼ü ¡ü ¿É»Øµ½±¾Ò³¶¥²¿£¡
¡ª¡ª¡ª¡ªÎ´ÔĶÁÍꣿ¼ÓÈëÊéÇ©ÒѱãÏ´μÌÐøÔĶÁ£¡




»òÕß¡°¿Í»§¡±¡£ËüÃÇÖ®¼äµÄÇø±ðÖ»ÓÐÔÚ¿Í»§»úÊÔͼͬ·þÎñÆ÷Á¬½ÓµÄʱºò²ÅÏԵ÷dz£Ã÷ÏÔ¡£Ò»µ©Á¬Í¨£¬¾Í±ä³É¡¡

ÁËÒ»ÖÖË«ÏòͨÐÅ£¬Ë­À´°çÑÝ·þÎñÆ÷»òÕß¿Í»§»ú±ãÏԵò»ÄÇôÖØÒªÁË¡£¡¡¡¡

ËùÒÔ·þÎñÆ÷µÄÖ÷ÒªÈÎÎñÊÇÕìÌý½¨Á¢Á¬½ÓµÄÇëÇó£¬ÕâÊÇÓÉÎÒÃÇ´´½¨µÄÌض¨·þÎñÆ÷¶ÔÏóÍê³ÉµÄ¡£¶ø¿Í»§»úµÄÈÎÎñ¡¡

ÊÇÊÔ×ÅÓëһ̨·þÎñÆ÷½¨Á¢Á¬½Ó£¬ÕâÊÇÓÉÎÒÃÇ´´½¨µÄÌض¨¿Í»§»ú¶ÔÏóÍê³ÉµÄ¡£Ò»µ©Á¬½Ó½¨ºÃ£¬ÄÇôÎÞÂÛÔÚ·þÎñ¡¡

Æ÷¶Ë»¹ÊÇ¿Í»§»ú¶Ë£¬Á¬½ÓÖ»ÊÇħÊõ°ãµØ±ä³ÉÁËÒ»¸ö¡¡IOÊý¾ÝÁ÷¶ÔÏó¡£´ÓÕâʱ¿ªÊ¼£¬ÎÒÃÇ¿ÉÒÔÏó¶Áдһ¸öÆÕͨµÄ¡¡

ÎļþÄÇÑù¶Ô´ýÁ¬½Ó¡£ËùÒÔÒ»µ©½¨ºÃÁ¬½Ó£¬ÎÒÃÇÖ»ÐèÏóµÚ¡¡10ÕÂÄÇÑùʹÓÃ×Ô¼ºÊìϤµÄ¡¡IO¡¡ÃüÁî¼´¿É¡£ÕâÕýÊÇ¡¡Java¡¡

Á¬Íø×î·½±ãµÄÒ»¸öµØ·½¡£¡¡¡¡

¡¡¡¡

1¡£¡¡ÔÚûÓÐÍøÂçµÄÇ°ÌáϲâÊÔ³ÌÐò¡¡¡¡

ÓÉÓÚ¶àÖÖDZÔÚµÄÔ­Òò£¬ÎÒÃÇ¿ÉÄÜûÓÐһ̨¿Í»§»ú¡¢·þÎñÆ÷ÒÔ¼°Ò»¸öÍøÂçÀ´²âÊÔ×Ô¼º×öºÃµÄ³ÌÐò¡£ÎÒÃÇÒ²ÐíÊÇ¡¡

ÔÚÒ»¸ö¿ÎÌû·¾³ÖнøÐÐÁ·Ï°£¬»òÕßд³öµÄÊÇÒ»¸ö²»Ê®·Ö¿É¿¿µÄÍøÂçÓ¦Ó㬻¹ÄÜÄõ½ÍøÂçÉÏÈ¥¡£IP¡¡µÄÉè¼ÆÕß×¢¡¡

Òâµ½ÁËÕâ¸öÎÊÌ⣬²¢½¨Á¢ÁËÒ»¸öÌØÊâµÄµØÖ·¡ª¡ªlocalhost¡ª¡ªÀ´Âú×ã·ÇÍøÂç»·¾³ÖеIJâÊÔÒªÇó¡£ÔÚ¡¡Java¡¡ÖС¡

²úÉúÕâ¸öµØÖ·×îÒ»°ãµÄ×ö·¨ÊÇ£º¡¡¡¡

InetAddress¡¡addr¡¡=¡¡InetAddress¡£getByName£¨null£©£»¡¡¡¡

Èç¹ûÏò¡¡getByName£¨£©´«µÝÒ»¸önull¡¡£¨¿Õ£©Öµ£¬¾ÍĬÈÏΪʹÓÃlocalhost¡£ÎÒÃÇÓÃInetAddress¡¡¶ÔÌض¨µÄ»úÆ÷¡¡

½øÐÐË÷Òý£¬¶øÇÒ±ØÐëÔÚ½øÐнøÒ»²½µÄ²Ù×÷֮ǰµÃµ½Õâ¸ö¡¡InetAddress¡¡£¨»¥ÁªÍøµØÖ·£©¡£ÎÒÃDz»¿ÉÒÔ²Ù×ÝÒ»¸ö¡¡

InetAddress¡¡µÄÄÚÈÝ£¨µ«¿É°ÑËü´òÓ¡³öÀ´£¬¾ÍÏóÏÂÒ»¸öÀý×ÓÒªÑÝʾµÄÄÇÑù£©¡£´´½¨¡¡InetAddress¡¡µÄΨһ;¾¶¡¡

¾ÍÊÇÄǸöÀàµÄstatic¡¡£¨¾²Ì¬£©³ÉÔ±·½·¨getByName£¨£©¡¡£¨ÕâÊÇ×î³£Óõģ©¡¢getAllByName£¨£©»òÕß¡¡

getLocalHost£¨£©¡£¡¡¡¡

ΪµÃµ½±¾µØÖ÷»úµØÖ·£¬Òà¿ÉÏòÆäÖ±½Ó´«µÝ×Ö´®¡¨localhost¡¨£º¡¡¡¡

InetAddress¡£getByName£¨¡¨localhost¡¨£©£»¡¡¡¡

»òÕßʹÓÃËüµÄ±£Áô¡¡IP¡¡µØÖ·£¨ËĵãÐÎʽ£©£¬¾ÍÏóÏÂÃæÕâÑù£º¡¡¡¡

InetAddress¡£getByName£¨¡¨127¡£0¡£0¡£1¡¨£©£»¡¡¡¡

ÕâÈýÖÖ·½·¨µÃµ½µÄ½á¹ûÊÇÒ»ÑùµÄ¡£¡¡¡¡



¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡538¡¡


¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­Page¡¡540¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­

15¡£1¡£2¡¡¶Ë¿Ú£º»úÆ÷ÄÚ¶ÀÒ»ÎÞ¶þµÄ³¡Ëù¡¡¡¡



ÓÐЩʱºò£¬Ò»¸ö¡¡IPµØÖ·²¢²»×ãÒÔÍêÕû±êʶһ¸ö·þÎñÆ÷¡£ÕâÊÇÓÉÓÚÔÚһ̨ÎïÀíÐԵĻúÆ÷ÖУ¬ÍùÍùÔËÐÐ×Ŷà¸ö·þ¡¡

ÎñÆ÷£¨³ÌÐò£©¡£ÓÉ¡¡IP¡¡±í´ïµÄÿ̨»úÆ÷Ò²°üº¬ÁË¡°¶Ë¿Ú¡±£¨Port¡¡£©¡£ÎÒÃÇÉèÖÃÒ»¸ö¿Í»§»ú»òÕß·þÎñÆ÷µÄʱºò£¬¡¡

±ØÐëÑ¡ÔñÒ»¸öÎÞÂÛ¿Í»§»ú»¹ÊÇ·þÎñÆ÷¶¼ÈÏ¿ÉÁ¬½ÓµÄ¶Ë¿Ú¡£¾ÍÏóÎÒÃÇÈ¥°Ý»áijÈËʱ£¬IP¡¡µØÖ·ÊÇËû¾ÓסµÄ·¿×Ó£¬¡¡

¶ø¶Ë¿ÚÊÇËûÔÚµÄÄǸö·¿¼ä¡£¡¡¡¡

×¢Òâ¶Ë¿Ú²¢²»ÊÇ»úÆ÷ÉÏÒ»¸öÎïÀíÉÏ´æÔڵij¡Ëù£¬¶øÊÇÒ»ÖÖÈí¼þ³éÏó£¨Ö÷ÒªÊÇΪÁ˱íÊöµÄ·½±ã£©¡£¿Í»§³ÌÐòÖª¡¡

µÀÈçºÎͨ¹ý»úÆ÷µÄ¡¡IP¡¡µØַͬËüÁ¬½Ó£¬µ«ÔõÑù²ÅÄÜͬ×Ô¼ºÕæÕýÐèÒªµÄÄÇÖÖ·þÎñÁ¬½ÓÄØ£¨Ò»°ãÿ¸ö¶Ë¿Ú¶¼ÔËÐÐ×Å¡¡

Ò»ÖÖ·þÎñ£¬Ò»Ì¨»úÆ÷¿ÉÄÜÌṩÁ˶àÖÖ·þÎñ£¬±ÈÈçHTTP¡¡ºÍ¡¡FTP¡¡µÈµÈ£©£¿¶Ë¿Ú±àºÅÔÚÕâÀï°çÑÝÁËÖØÒªµÄ½ÇÉ«£¬Ëü¡¡

ÊDZØÐèµÄÒ»ÖÖ¶þ¼¶¶¨Ö·´ëÊ©¡£Ò²¾ÍÊÇ˵£¬ÎÒÃÇÇëÇóÒ»¸öÌض¨µÄ¶Ë¿Ú£¬±ãÏ൱ÓÚÇëÇóÓëÄǸö¶Ë¿Ú±àºÅ¹ØÁªµÄ·þ¡¡

Îñ¡£¡°±¨Ê±¡±±ãÊÇ·þÎñµÄÒ»¸öµäÐÍÀý×Ó¡£Í¨³££¬Ã¿¸ö·þÎñ¶¼Í¬Ò»Ì¨Ìض¨·þÎñÆ÷»úÆ÷ÉϵÄÒ»¸ö¶ÀÒ»ÎÞ¶þµÄ¶Ë¿Ú¡¡

±àºÅ¹ØÁªÔÚÒ»Æ𡣿ͻ§³ÌÐò±ØÐëÊÂÏÈÖªµÀ×Ô¼ºÒªÇóµÄÄÇÏî·þÎñµÄÔËÐж˿ںš£¡¡¡¡

ϵͳ·þÎñ±£ÁôÁËʹÓö˿ڡ¡1¡¡µ½¶Ë¿Ú¡¡1024¡¡µÄȨÁ¦£¬ËùÒÔ²»Ó¦ÈÃ×Ô¼ºÉè¼ÆµÄ·þÎñÕ¼ÓÃÕâЩÒÔ¼°ÆäËûÈκÎÒÑÖªÕýÔÚ¡¡

ʹÓõĶ˿ڡ£±¾ÊéµÄµÚÒ»¸öÀý×Ó½«Ê¹Óö˿Ú8080¡¡£¨Îª×·ÒäÎҵĵÚһ̨»úÆ÷ʹÓõÄÀÏʽ8¡¡Î»¡¡Intel¡¡8080о¡¡

Ƭ£¬ÄÇÊÇÒ»²¿Ê¹ÓÃCP/M¡¡²Ù×÷ϵͳµÄ»ú×Ó£©¡£¡¡¡¡



15¡£2¡¡Ì×½Ó×Ö¡¡¡¡



¡¡¡°Ì×½Ó×Ö¡±»òÕß¡°²å×ù¡±£¨Socket£©Ò²ÊÇÒ»ÖÖÈí¼þÐÎʽµÄ³éÏó£¬ÓÃÓÚ±í´ïÁ½Ì¨»úÆ÷¼äÒ»¸öÁ¬½ÓµÄ¡°Öնˡ±¡£¡¡

Õë¶ÔÒ»¸öÌض¨µÄÁ¬½Ó£¬Ã¿Ì¨»úÆ÷É϶¼ÓÐÒ»¸ö¡°Ì×½Ó×Ö¡±£¬¿ÉÒÔÏëÏóËüÃÇÖ®¼äÓÐÒ»ÌõÐéÄâµÄ¡°ÏßÀ¡±¡£ÏßÀµġ¡

ÿһ¶Ë¶¼²åÈëÒ»¸ö¡°Ì×½Ó×Ö¡±»òÕß¡°²å×ù¡±Àï¡£µ±È»£¬»úÆ÷Ö®¼äµÄÎïÀíÐÔÓ²¼þÒÔ¼°µçÀÂÁ¬½Ó¶¼ÊÇÍêȫδ֪¡¡

µÄ¡£³éÏóµÄ»ù±¾×ÚÖ¼ÊÇÈÃÎÒÃǾ¡¿ÉÄܲ»±ØÖªµÀÄÇЩϸ½Ú¡£¡¡¡¡

ÔÚJava¡¡ÖУ¬ÎÒÃÇ´´½¨Ò»¸öÌ×½Ó×Ö£¬ÓÃËü½¨Á¢ÓëÆäËû»úÆ÷µÄÁ¬½Ó¡£´ÓÌ×½Ó×ֵõ½µÄ½á¹ûÊÇÒ»¸ö¡¡InputStream¡¡ÒÔ¡¡

¼°OutputStream¡¡£¨ÈôʹÓÃÇ¡µ±µÄת»»Æ÷£¬Ôò·Ö±ðÊÇReader¡¡ºÍ¡¡Writer£©£¬ÒԱ㽫Á¬½Ó×÷Ϊһ¸öIOÁ÷¶ÔÏó¶Ô¡¡

´ý¡£ÓÐÁ½¸ö»ùÓÚÊý¾ÝÁ÷µÄÌ×½Ó×ÖÀࣺServerSocket£¬·þÎñÆ÷ÓÃËü¡°ÕìÌý¡±½øÈëµÄÁ¬½Ó£»ÒÔ¼°Socket£¬¿Í»§Óá¡

Ëü³õʼһ´ÎÁ¬½Ó¡£Ò»µ©¿Í»§£¨³ÌÐò£©ÉêÇ뽨Á¢Ò»¸öÌ×½Ó×ÖÁ¬½Ó£¬ServerSocket¡¡¾Í»á·µ»Ø£¨Í¨¹ýaccept£¨£©·½¡¡

·¨£©Ò»¸ö¶ÔÓ¦µÄ·þÎñÆ÷¶ËÌ×½Ó×Ö£¬ÒÔ±ã½øÐÐÖ±½ÓͨÐÅ¡£´Ó´ËʱÆð£¬ÎÒÃǾ͵õ½ÁËÕæÕýµÄ¡°Ì×½Ó×Ö£­Ì×½Ó×Ö¡±¡¡

Á¬½Ó£¬¿ÉÒÔÓÃͬÑùµÄ·½Ê½¶Ô´ýÁ¬½ÓµÄÁ½¶Ë£¬ÒòΪËüÃDZ¾À´¾ÍÊÇÏàͬµÄ£¡´Ëʱ¿ÉÒÔÀûÓá¡getInputStream£¨£©ÒÔ¼°¡¡

getOutputStream£¨£©´Óÿ¸öÌ×½Ó×Ö²úÉú¶ÔÓ¦µÄ¡¡InputStream¡¡ºÍOutputStream¡¡¶ÔÏó¡£ÕâЩÊý¾ÝÁ÷±ØÐë·â×°µ½»º¡¡

³åÇøÄÚ¡£¿É°´µÚ¡¡10Õ½éÉܵķ½·¨¶ÔÀà½øÐиñʽ»¯£¬¾ÍÏó¶Ô´ýÆäËûÈκÎÁ÷¶ÔÏóÄÇÑù¡£¡¡¡¡

¶ÔÓÚJava¡¡¿âµÄÃüÃû»úÖÆ£¬ServerSocket¡¡£¨·þÎñÆ÷Ì×½Ó×Ö£©µÄʹÓÃÎÞÒÉÊÇÈÝÒײúÉú»ìÏýµÄÓÖÒ»¸öÀýÖ¤¡£´ó¼Ò¿É¡¡

ÄÜÈÏΪServerSocket¡¡×îºÃ½Ð×÷¡°ServerConnector¡±£¨·þÎñÆ÷Á¬½ÓÆ÷£©£¬»òÕßÆäËûʲôÃû×Ö£¬Ö»ÊDz»ÒªÔÚÆä¡¡

Öа²²åÒ»¸ö¡°Socket¡±¡£Ò²¿ÉÄÜÒÔΪServerSocket¡¡ºÍ¡¡Socket¡¡¶¼Ó¦´ÓһЩͨÓõĻù´¡Àà¼Ì³Ð¡£ÊÂʵÉÏ£¬ÕâÁ½¡¡

ÖÖÀàȷʵ°üº¬Á˼¸¸öͨÓõķ½·¨£¬µ«»¹²»¹»×ʸñ°ÑËüÃǸ³¸øÒ»¸öͨÓõĻù´¡Àà¡£Ïà·´£¬ServerSocket¡¡µÄÖ÷Òª¡¡

ÈÎÎñÊÇÔÚÄÇÀïÄÍÐĵصȺòÆäËû»úÆ÷ͬËüÁ¬½Ó£¬ÔÙ·µ»ØÒ»¸öʵ¼ÊµÄSocket¡£ÕâÕýÊÇ¡°ServerSocket¡±Õâ¸öÃüÃû¡¡

²»Ç¡µ±µÄµØ·½£¬ÒòΪËüµÄÄ¿±ê²»ÊÇÕæµÄ³ÉΪһ¸öSocket£¬¶øÊÇÔÚÆäËûÈËͬËüÁ¬½ÓµÄʱºò²úÉúÒ»¸öSocket¡¡¶Ô¡¡

Ï󡣡¡¡¡

È»¶ø£¬ServerSocket¡¡È·Êµ»áÔÚÖ÷»úÉÏ´´½¨Ò»¸öÎïÀíÐԵġ°·þÎñÆ÷¡±»òÕßÕìÌýÓõÄÌ×½Ó×Ö¡£Õâ¸öÌ×½Ó×Ö»áÕìÌý¡¡

½øÈëµÄÁ¬½Ó£¬È»ºóÀûÓá¡accept£¨£©·½·¨·µ»ØÒ»¸ö¡°Òѽ¨Á¢¡±Ì×½Ó×Ö£¨±¾µØºÍÔ¶³Ì¶Ëµã¾ùÒѶ¨Ò壩¡£ÈÝÒ×»ìÏýµÄ¡¡

µØ·½ÊÇÕâÁ½¸öÌ×½Ó×Ö£¨ÕìÌýºÍÒѽ¨Á¢£©¶¼ÓëÏàͬµÄ·þÎñÆ÷Ì×½Ó×Ö¹ØÁªÔÚÒ»Æð¡£ÕìÌýÌ×½Ó×ÖÖ»ÄܽÓÊÕеÄÁ¬½Ó¡¡

ÇëÇ󣬲»ÄܽÓÊÕʵ¼ÊµÄÊý¾Ý°ü¡£ËùÒÔ¾¡¹Ü¡¡ServerSocket¡¡¶ÔÓÚ±à³Ì²¢ÎÞÌ«´óµÄÒâÒ壬µ«ËüȷʵÊÇ¡°ÎïÀíÐÔ¡±¡¡

µÄ¡£¡¡¡¡

´´½¨Ò»¸öServerSocket¡¡Ê±£¬Ö»ÐèΪÆ丳ÓèÒ»¸ö¶Ë¿Ú±àºÅ¡£²»±Ø°ÑÒ»¸ö¡¡IP¡¡µØÖ··ÖÅäËü£¬ÒòΪËüÒѾ­ÔÚ×Ô¼º´ú¡¡

±íµÄÄÇ̨»úÆ÷ÉÏÁË¡£µ«ÔÚ´´½¨Ò»¸ö¡¡Socket¡¡Ê±£¬È´±ØÐëͬʱ¸³ÓèIP¡¡µØÖ·ÒÔ¼°ÒªÁ¬½ÓµÄ¶Ë¿Ú±àºÅ£¨ÁíÒ»·½Ã棬¡¡

´ÓServerSocket¡£accept£¨£©·µ»ØµÄ¡¡Socket¡¡ÒѾ­°üº¬ÁËËùÓÐÕâЩÐÅÏ¢£©¡£¡¡¡¡



15¡£2¡£1¡¡Ò»¸ö¼òµ¥µÄ·þÎñÆ÷ºÍ¿Í»§»ú³ÌÐò¡¡¡¡



Õâ¸öÀý×Ó½«ÒÔ×î¼òµ¥µÄ·½Ê½ÔËÓÃÌ×½Ó×Ö¶Ô·þÎñÆ÷ºÍ¿Í»§»ú½øÐвÙ×÷¡£·þÎñÆ÷µÄÈ«²¿¹¤×÷¾ÍÊǵȺò½¨Á¢Ò»¸öÁ¬¡¡

½Ó£¬È»ºóÓÃÄǸöÁ¬½Ó²úÉúµÄSocket¡¡´´½¨Ò»¸ö¡¡InputStream¡¡ÒÔ¼°Ò»¸öOutputStream¡£ÔÚÕâÖ®ºó£¬Ëü´Ó¡¡

InputStream¶ÁÈëµÄËùÓж«Î÷¶¼»á·´À¡¸øOutputStream£¬Ö±µ½½ÓÊÕµ½ÐÐÖÐÖ¹£¨END£©ÎªÖ¹£¬×îºó¹Ø±ÕÁ¬½Ó¡£¡¡¡¡

¿Í»§»úÁ¬½ÓÓë·þÎñÆ÷µÄÁ¬½Ó£¬È»ºó´´½¨Ò»¸öOutputStream¡£Îı¾ÐÐͨ¹ýOutputStream¡¡·¢ËÍ¡£¿Í»§»úÒ²»á´´¡¡

½¨Ò»¸ö¡¡InputStream£¬ÓÃËüÊÕÌý·þÎñÆ÷˵Щʲô£¨±¾ÀýÖ»²»¹ýÊÇ·´À¡»ØÀ´µÄͬÑùµÄ×־䣩¡£¡¡¡¡

·þÎñÆ÷Óë¿Í»§»ú£¨³ÌÐò£©¶¼Ê¹ÓÃͬÑùµÄ¶Ë¿ÚºÅ£¬¶øÇÒ¿Í»§»úÀûÓñ¾µØÖ÷»úµØÖ·Á¬½ÓλÓÚͬһ̨»úÆ÷ÖеķþÎñ¡¡



¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡539¡¡


¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­Page¡¡541¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­

Æ÷£¨³ÌÐò£©£¬ËùÒÔ²»±ØÔÚÒ»¸öÎïÀíÐÔµÄÍøÂçÀïÍê³É²âÊÔ£¨ÔÚijЩÅäÖû·¾³ÖУ¬¿ÉÄÜÐèҪͬÕæÕýµÄÍøÂ罨Á¢Á¬¡¡

½Ó£¬·ñÔò³ÌÐò²»Äܹ¤×÷¡ª¡ª¾¡¹Üʵ¼Ê²¢²»Í¨¹ýÄǸöÍøÂçͨÐÅ£©¡£¡¡¡¡

ÏÂÃæÊÇ·þÎñÆ÷³ÌÐò£º¡¡¡¡

¡¡¡¡

//£º¡¡JabberServer¡£java¡¡¡¡

//¡¡Very¡¡simple¡¡server¡¡that¡¡just¡¡¡¡

//¡¡echoes¡¡whatever¡¡the¡¡client¡¡sends¡£¡¡¡¡

import¡¡java¡£io¡£*£»¡¡¡¡

import¡¡java¡£*£»¡¡¡¡

¡¡¡¡

public¡¡class¡¡JabberServer¡¡£û¡¡¡¡¡¡¡¡

¡¡¡¡//¡¡Choose¡¡a¡¡port¡¡outside¡¡of¡¡the¡¡range¡¡1¡­1024£º¡¡¡¡

¡¡¡¡public¡¡static¡¡final¡¡int¡¡PORT¡¡=¡¡8080£»¡¡¡¡

¡¡¡¡public¡¡static¡¡void¡¡main£¨String£§£§¡¡args£©¡¡¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡throws¡¡IOException¡¡£û¡¡¡¡

¡¡¡¡¡¡¡¡ServerSocket¡¡s¡¡=¡¡new¡¡ServerSocket£¨PORT£©£»¡¡¡¡

¡¡¡¡¡¡¡¡System¡£out¡£println£¨¡¨Started£º¡¡¡¨¡¡£«¡¡s£©£»¡¡¡¡

¡¡¡¡¡¡¡¡try¡¡£û¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡//¡¡Blocks¡¡until¡¡a¡¡connection¡¡occurs£º¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡Socket¡¡socket¡¡=¡¡s¡£accept£¨£©£»¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡try¡¡£û¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡System¡£out¡£println£¨¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¨Connection¡¡accepted£º¡¡¡¨£«¡¡socket£©£»¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡BufferedReader¡¡in¡¡=¡¡¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡new¡¡BufferedReader£¨¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡new¡¡InputStreamReader£¨¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡socket¡£getInputStream£¨£©£©£©£»¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡//¡¡Output¡¡is¡¡automatically¡¡flushed¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡//¡¡by¡¡PrintWriter£º¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡PrintWriter¡¡out¡¡=¡¡¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡new¡¡PrintWriter£¨¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡new¡¡BufferedWriter£¨¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡new¡¡OutputStreamWriter£¨¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡socket¡£getOutputStream£¨£©£©£©£»true£©£»¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡while¡¡£¨true£©¡¡£û¡¡¡¡¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡String¡¡str¡¡=¡¡in¡£readLine£¨£©£»¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡if¡¡£¨str¡£equals£¨¡¨END¡¨£©£©¡¡break£»¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡System¡£out¡£println£¨¡¨Echoing£º¡¡¡¨¡¡£«¡¡str£©£»¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡out¡£println£¨str£©£»¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£ý¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡//¡¡Always¡¡close¡¡the¡¡two¡¡sockets¡£¡£¡£¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡£ý¡¡finally¡¡£û¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡System¡£out¡£println£¨¡¨closing¡£¡£¡£¡¨£©£»¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡socket¡£close£¨£©£»¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡£ý¡¡¡¡

¡¡¡¡¡¡¡¡£ý¡¡finally¡¡£û¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡s¡£close£¨£©£»¡¡¡¡

¡¡¡¡¡¡¡¡£ý¡¡¡¡

¡¡¡¡£ý¡¡¡¡¡¡

£ý¡¡///£º~¡¡¡¡

¡¡¡¡

¿ÉÒÔ¿´µ½£¬ServerSocket¡¡ÐèÒªµÄÖ»ÊÇÒ»¸ö¶Ë¿Ú±àºÅ£¬²»ÐèÒª¡¡IPµØÖ·£¨ÒòΪËü¾ÍÔÚÕą̂»úÆ÷ÉÏÔËÐУ©¡£µ÷Óá¡



¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡540¡¡


¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­Page¡¡542¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­

accept£¨£©Ê±£¬·½·¨»áÔÝʱÏÝÈëÍ£¶Ù״̬£¨¶ÂÈû£©£¬Ö±µ½Ä³¸ö¿Í»§³¢ÊÔͬËü½¨Á¢Á¬½Ó¡£»»ÑÔÖ®£¬¾¡¹ÜË
·µ»ØĿ¼ ÉÏÒ»Ò³ ÏÂÒ»Ò³ »Øµ½¶¥²¿ ÔÞ£¨0£© ²È£¨0£©
δÔĶÁÍꣿ¼ÓÈëÊéÇ©ÒѱãÏ´μÌÐøÔĶÁ£¡
ÎÂÜ°Ìáʾ£º ο´Ð¡ËµµÄͬʱ·¢±íÆÀÂÛ£¬Ëµ³ö×Ô¼ºµÄ¿´·¨ºÍÆäËüС»ï°éÃÇ·ÖÏíÒ²²»´íŶ£¡·¢±íÊéÆÀ»¹¿ÉÒÔ»ñµÃ»ý·ÖºÍ¾­Ñé½±Àø£¬ÈÏÕæдԭ´´ÊéÆÀ ±»²ÉÄÉΪ¾«ÆÀ¿ÉÒÔ»ñµÃ´óÁ¿½ð±Ò¡¢»ý·ÖºÍ¾­Ñé½±ÀøŶ£¡