ÓÑÇéÌáʾ£ºÈç¹û±¾ÍøÒ³´ò¿ªÌ«Âý»òÏÔʾ²»ÍêÕû£¬Çë³¢ÊÔÊó±êÓÒ¼ü¡°Ë¢Ð¡±±¾ÍøÒ³£¡
Java±à³Ì˼ÏëµÚ4°æ[ÖÐÎÄ°æ](PDF¸ñʽ)-µÚ126²¿·Ö
¿ì½Ý²Ù×÷: °´¼üÅÌÉÏ·½Ïò¼ü ¡û »ò ¡ú ¿É¿ìËÙÉÏÏ·ҳ °´¼üÅÌÉ쵀 Enter ¼ü¿É»Øµ½±¾ÊéĿ¼ҳ °´¼üÅÌÉÏ·½Ïò¼ü ¡ü ¿É»Øµ½±¾Ò³¶¥²¿! Èç¹û±¾ÊéûÓÐÔĶÁÍ꣬ÏëÏ´μÌÐø½Ó×ÅÔĶÁ£¬¿ÉʹÓÃÉÏ·½ "Êղص½ÎÒµÄä¯ÀÀÆ÷" ¹¦ÄÜ ºÍ "¼ÓÈëÊéÇ©" ¹¦ÄÜ£¡
¡¡¡¡¡¡¡¡£ý¡¡¡¡
¡¡¡¡¡¡¡¡InetAddress¡¡a¡¡=¡¡¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡InetAddress¡£getByName£¨args£§0£§£©£»¡¡¡¡
¡¡¡¡¡¡¡¡System¡£out¡£println£¨a£©£»¡¡¡¡
¡¡¡¡£ý¡¡¡¡
£ý¡¡///£º~¡¡¡¡
¡¡¡¡
¾ÍÎÒ×Ô¼ºµÄÇé¿öÀ´Ëµ£¬»úÆ÷µÄÃû×Ö½Ð×÷¡°Colossus¡±£¨À´×ÔͬÃûµçÓ°£¬¡°¾ÞÈË¡±µÄÒâ˼¡£ÎÒÔÚÕą̂»úÆ÷ÉÏÓС¡
Ò»¸öºÜ´óµÄÓ²ÅÌ£©¡£ËùÒÔÒ»µ©Á¬Í¨ÎÒµÄISP£¬¾ÍÏóÏÂÃæÕâÑùÖ´ÐгÌÐò£º¡¡¡¡
java¡¡whoAmI¡¡Colossus¡¡¡¡
µÃµ½µÄ½á¹ûÏóÏÂÃæÕâ¸öÑù×Ó£¨µ±È»£¬Õâ¸öµØÖ·¿ÉÄÜÿ´Î¶¼ÊDz»Í¬µÄ£©£º¡¡¡¡
Colossus/202¡£98¡£41¡£151¡¡¡¡
¼ÙÈçÎÒ°ÑÕâ¸öµØÖ·¸æËßһλÅóÓÑ£¬Ëû¾Í¿ÉÒÔÁ¢¼´µÇ¼µ½ÎҵĸöÈËWeb¡¡·þÎñÆ÷£¬Ö»ÐèÖ¸¶¨Ä¿±êµØÖ·¡¡
http£º//202¡£98¡£41¡£151¡¡¼´¿É£¨µ±È»£¬ÎÒ´Ëʱ²»ÄܶÏÏߣ©¡£ÓÐЩʱºò£¬ÕâÊÇÏòÆäËûÈË·¢ËÍÐÅÏ¢»òÕßÔÚ×Ô¼ºµÄ¡¡
Web¡¡Õ¾µãÕýʽ³ǫ̈ÒÔÇ°½øÐвâÊÔµÄÒ»ÖÖ·½±ãÊֶΡ£¡¡¡¡
15¡£1¡£1¡¡·þÎñÆ÷ºÍ¿Í»§»ú¡¡¡¡
ÍøÂç×î»ù±¾µÄ¾«Éñ¾ÍÊÇÈÃÁ½Ì¨»úÆ÷Á¬½Óµ½Ò»Æ𣬲¢Ï໥¡°½»Ì¸¡±»òÕß¡°¹µÍ¨¡±¡£Ò»µ©Á½Ì¨»úÆ÷¶¼·¢ÏÖÁ˶ԡ¡
·½£¬¾Í¿ÉÒÔÕ¹¿ªÒ»´ÎÁîÈËÓä¿ìµÄË«Ïò¶Ô»°¡£µ«ËüÃÇÔõÑù²ÅÄÜ¡°·¢ÏÖ¡±¶Ô·½ÄØ£¿Õâ¾ÍÏóÔÚÓÎÀÖÔ°ÀïÄÇÑù£ºÒ»Ì¨¡¡
»úÆ÷²»µÃ²»Í£ÁôÔÚÒ»¸öµØ·½£¬ÕìÌýÆäËû»úÆ÷˵£º¡°ºÙ£¬ÄãÔÚÄÄÀïÄØ£¿¡±¡¡¡¡
¡¡¡°Í£ÁôÔÚÒ»¸öµØ·½¡±µÄ»úÆ÷½Ð×÷¡°·þÎñÆ÷¡±£¨Server£©£»µ½´¦¡°ÕÒÈË¡±µÄ»úÆ÷Ôò½Ð×÷¡°¿Í»§»ú¡±£¨Client£©¡¡
»òÕß¡°¿Í»§¡±¡£ËüÃÇÖ®¼äµÄÇø±ðÖ»ÓÐÔÚ¿Í»§»úÊÔͼͬ·þÎñÆ÷Á¬½ÓµÄʱºò²ÅÏԵ÷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£¨£©Ê±£¬·½·¨»áÔÝʱÏÝÈëÍ£¶Ù״̬£¨¶ÂÈû£©£¬Ö±µ½Ä³¸ö¿Í»§³¢ÊÔͬËü½¨Á¢Á¬½Ó¡£»»ÑÔÖ®£¬¾¡¹ÜËüÔÚÄÇÀï¡¡
µÈºòÁ¬½Ó£¬µ«ÆäËû½ø³ÌÈÔÄÜÕý³£ÔËÐУ¨²Î¿¼µÚ¡¡14Õ£©¡£½¨ºÃÒ»¸öÁ¬½ÓÒÔºó£¬accept£¨£©¾Í»á·µ»ØÒ»¸ö¡¡Socket¡¡
¶ÔÏó£¬ËüÊÇÄǸöÁ¬½ÓµÄ´ú±í¡£¡¡¡¡
Çå³ýÌ×½Ó×ÖµÄÔðÈÎÔÚÕâÀïµÃµ½Á˺ÜÒÕÊõµÄ´¦Àí¡£¼ÙÈçServerSocket¡¡¹¹½¨Æ÷ʧ°Ü£¬Ôò³ÌÐò¼òµ¥µØÍ˳ö£¨×¢Òâ±Ø¡¡
Ðë±£Ö¤¡¡ServerSocket¡¡µÄ¹¹½¨Æ÷ÔÚʧ°ÜÖ®ºó²»»áÁôÏÂÈκδò¿ªµÄÍøÂçÌ×½Ó×Ö£©¡£Õë¶ÔÕâÖÖÇé¿ö£¬main£¨£©»á¡¡
¡¡¡°ÖÀ¡±³öÒ»¸öIOException¡¡Î¥Àý£¬ËùÒÔ²»±ØʹÓÃÒ»¸ötry¡¡¿é¡£Èô¡¡ServerSocket¡¡¹¹½¨Æ÷³É¹¦Ö´ÐУ¬ÔòÆäËûËùÓС¡
·½·¨µ÷Óö¼±ØÐëµ½Ò»¸ö¡¡try¡finally´úÂë¿éÀïÑ°Çó±£»¤£¬ÒÔÈ·±£ÎÞÂÛ¿éÒÔʲô·½Ê½ÁôÏ£¬ServerSocket¡¡¶¼ÄÜ¡¡
ÕýÈ·µØ¹Ø±Õ¡£¡¡¡¡
ͬÑùµÄµÀÀíÒ²ÊÊÓÃÓÚÓÉ¡¡accept£¨£©·µ»ØµÄ¡¡Socket¡£Èôaccept£¨£©¡¡Ê§°Ü£¬ÄÇôÎÒÃDZØÐë±£Ö¤Socket¡¡²»ÔÙ´æÔÚ»òÕß¡¡
º¬ÓÐÈκÎ×ÊÔ´£¬ÒԱ㲻±ØÇå³ýËüÃÇ¡£µ«¼ÙÈôÖ´Ðгɹ¦£¬ÔòºóÐøµÄÓï¾ä±ØÐë½øÈëÒ»¸ötry¡finally¡¡¿éÄÚ£¬ÒÔ±£¡¡
ÕÏÔÚËüÃÇʧ°ÜµÄÇé¿öÏ£¬Socket¡¡ÈÔÄܵõ½ÕýÈ·µÄÇå³ý¡£ÓÉÓÚÌ×½Ó×ÖʹÓÃÁËÖØÒªµÄ·ÇÄÚ´æ×ÊÔ´£¬ËùÒÔÔÚÕâÀï±Ø¡¡
ÐëÌرð½÷É÷£¬±ØÐë×Ô¼º¶¯ÊÖ½«ËüÃÇÇå³ý£¨Java¡¡ÖÐûÓÐÌṩ¡°ÆÆ»µÆ÷¡±À´°ïÖúÎÒÃÇ×öÕâ¼þÊÂÇ飩¡£¡¡¡¡
ÎÞÂÛServerSocket¡¡»¹ÊÇÓÉ¡¡accept£¨£©²úÉúµÄ¡¡Socket¡¡¶¼´òÓ¡µ½¡¡System¡£out¡¡Àï¡£ÕâÒâζ×ÅËüÃǵġ¡toString·½·¨¡¡
»áµÃµ½×Ô¶¯µ÷Óá£ÕâÑù±ã²úÉúÁË£º¡¡¡¡
¡¡¡¡
ServerSocket£§addr=0¡£0¡£0¡£0£»PORT=0£»localport=8080£§¡¡¡¡
Socket£§addr=127¡£0¡£0¡£1£»PORT=1077£»localport=8080£§¡¡¡¡
¡¡¡¡
´ó¼Ò²»¾Ã¾Í»á¿´µ½ËüÃÇÈçºÎÓë¿Í»§³ÌÐò×öµÄÊÂÇéÅäºÏ¡£¡¡¡¡
³ÌÐòµÄÏÂÒ»²¿·Ö¿´À´Ëƺõ½ö½öÊÇ´ò¿ªÎļþ£¬ÒÔ±ã¶ÁÈ¡ºÍдÈ룬ֻÊÇ¡¡InputStreamºÍ¡¡OutputStream¡¡ÊÇ´Ó¡¡
Socket¡¡¶ÔÏó´´½¨µÄ¡£ÀûÓÃÁ½¸ö¡°×ª»»Æ÷¡±Àà¡¡InputStreamReader¡¡ºÍOutputStreamWriter¡¡£¬InputStreamºÍ¡¡
OutputStream¡¡¶ÔÏóÒѾ·Ö±ðת»»³ÉΪ¡¡Java¡¡1¡£1¡¡µÄReader¡¡ºÍ¡¡Writer¡¡¶ÔÏó¡£Ò²¿ÉÒÔÖ±½ÓʹÓá¡Java1¡£0¡¡µÄ¡¡
InputStreamºÍ¡¡OutputStream¡¡À࣬µ«¶ÔÊä³öÀ´Ëµ£¬Ê¹ÓÃWriter¡¡·½Ê½¾ßÓÐÃ÷ÏÔµÄÓÅÊÆ¡£ÕâÒ»ÓÅÊÆÊÇͨ¹ý¡¡
PrintWriter¡¡±íÏÖ³öÀ´µÄ£¬ËüÓÐÒ»¸ö¹ýÔصĹ¹½¨Æ÷£¬ÄÜ»ñÈ¡µÚ¶þ¸ö²ÎÊý¡ª¡ªÒ»¸ö²¼¶ûÖµ±êÖ¾£¬Ö¸ÏòÊÇ·ñÔÚÿ¡¡
Ò»´Îprintln£¨£©½áÊøµÄʱºò×Ô¶¯Ë¢ÐÂÊä³ö£¨µ«²»ÊÊÓÃÓÚprint£¨£©Óï¾ä£©¡£Ã¿´ÎдÈëÁËÊä³öÄÚÈݺó£¨Ð´½ø¡¡
out£©£¬ËüµÄ»º³åÇø±ØÐëˢУ¬Ê¹ÐÅÏ¢ÄÜÕýʽͨ¹ýÍøÂç´«µÝ³öÈ¥¡£¶ÔÄ¿Ç°Õâ¸öÀý×ÓÀ´Ëµ£¬Ë¢ÐÂÏÔµÃÓÈΪÖØÒª£¬¡¡
ÒòΪ¿Í»§ºÍ·þÎñÆ÷ÔÚ²ÉÈ¡ÏÂÒ»²½²Ù×÷֮ǰ¶¼ÒªµÈ´ýÒ»ÐÐÎı¾ÄÚÈݵĵ½´ï¡£ÈôË
¿ì½Ý²Ù×÷: °´¼üÅÌÉÏ·½Ïò¼ü ¡û »ò ¡ú ¿É¿ìËÙÉÏÏ·ҳ °´¼üÅÌÉ쵀 Enter ¼ü¿É»Øµ½±¾ÊéĿ¼ҳ °´¼üÅÌÉÏ·½Ïò¼ü ¡ü ¿É»Øµ½±¾Ò³¶¥²¿!
ÎÂÜ°Ìáʾ£º ο´Ð¡ËµµÄͬʱ·¢±íÆÀÂÛ£¬Ëµ³ö×Ô¼ºµÄ¿´·¨ºÍÆäËüС»ï°éÃÇ·ÖÏíÒ²²»´íŶ£¡·¢±íÊéÆÀ»¹¿ÉÒÔ»ñµÃ»ý·ÖºÍ¾Ñé½±Àø£¬ÈÏÕæдԴ´ÊéÆÀ ±»²ÉÄÉΪ¾«ÆÀ¿ÉÒÔ»ñµÃ´óÁ¿½ð±Ò¡¢»ý·ÖºÍ¾Ñé½±ÀøŶ£¡