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

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

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




Ëü£©¡£fflush£¨£©ÓÃÓÚ¶ÔÊä³ö»º³åÇø½øÐÐˢС£¡¡¡¡

Èç¹ûÃû×Ö²»ÔÚÁбíÖУ¬¾ÍÓÃfseek£¨£©ÒƵ½Áбíĩ⣬²¢Óá¡fprintf£¨£©½«Ãû×Ö¡°´òÓ¡¡±µ½Áбíĩβ¡£Ëæºó£¬Óá¡

printf£¨£©Ö¸³öÃû×ÖÒѳɹ¦¼ÓÈëÁÐ±í£¨Í¬ÑùÐèҪˢбê×¼Êä³ö£©£¬ÎÞÏÞÑ­»··µ»Ø£¬¼ÌÐøµÈºòÒ»¸öÐÂÃû×ֵĽø¡¡

Èë¡£¡¡¡¡

¼Çסһ°ã²»ÄÜÏÈÔÚ×Ô¼ºµÄ¼ÆËã»úÉϱàÒë´Ë³ÌÐò£¬ÔٰѱàÒëºÃµÄÄÚÈÝÉÏÔØµ½¡¡Web¡¡·þÎñÆ÷£¬ÒòΪÄÇ̨»úÆ÷ʹÓõġ¡

¿ÉÄÜÊDz»Í¬ÀàµÄ´¦ÀíÆ÷ºÍ²Ù×÷ϵͳ¡£ÀýÈ磬ÎÒµÄWeb¡¡·þÎñÆ÷°²×°µÄÊÇ¡¡Intel¡¡µÄCPU£¬µ«²Ù×÷ϵͳÊÇLinux£¬Ëù¡¡

ÒÔ±ØÐëÏÈÏÂÔØÔ´Â룬ÔÙÓÃÔ¶³ÌÃüÁͨ¹ýtelnet£©Ö¸»ÓLinux¡¡×Ô´øµÄC¡¡±àÒëÆ÷£¬ÁîÆäÔÚ·þÎñÆ÷¶Ë±àÒëºÃ³Ì¡¡

Ðò¡£¡¡¡¡

¡¡¡¡

2¡£¡¡Java¡¡³ÌÐò¡¡¡¡

Õâ¸ö³ÌÐòÏÈÆô¶¯ÉÏÊöµÄ¡¡C¡¡³ÌÐò£¬ÔÙ½¨Á¢±ØÒªµÄÁ¬½Ó£¬ÒÔ±ãͬËü¡°½»Ì¸¡±¡£Ëæºó£¬Ëü´´½¨Ò»¸öÊý¾Ý±¨Ì×½Ó×Ö£¬¡¡

ÓÃËü¡°¼àÊÓ¡±»òÕß¡°ÕìÌý¡±À´×Ô³ÌÐòƬµÄÊý¾Ý±¨°ü¡£¡¡¡¡

¡¡¡¡

//£º¡¡NameCollector¡£java¡¡¡¡

//¡¡Extracts¡¡email¡¡names¡¡from¡¡datagrams¡¡and¡¡stores¡¡¡¡

//¡¡them¡¡inside¡¡a¡¡file£»¡¡using¡¡Java¡¡1¡£02¡£¡¡¡¡

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

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

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

¡¡¡¡

public¡¡class¡¡NameCollector¡¡£û¡¡¡¡

¡¡¡¡final¡¡static¡¡int¡¡COLLECTOR_PORT¡¡=¡¡8080£»¡¡¡¡

¡¡¡¡final¡¡static¡¡int¡¡BUFFER_SIZE¡¡=¡¡1000£»¡¡¡¡

¡¡¡¡byte£§£§¡¡buf¡¡=¡¡new¡¡byte£§BUFFER_SIZE£§£»¡¡¡¡

¡¡¡¡DatagramPacket¡¡dp¡¡=¡¡¡¡¡¡

¡¡¡¡¡¡¡¡new¡¡DatagramPacket£¨buf£»¡¡buf¡£length£©£»¡¡¡¡

¡¡¡¡//¡¡Can¡¡listen¡¡&¡¡send¡¡on¡¡the¡¡same¡¡socket£º¡¡¡¡

¡¡¡¡DatagramSocket¡¡socket£»¡¡¡¡

¡¡¡¡Process¡¡listmgr£»¡¡¡¡

¡¡¡¡PrintStream¡¡nameList£»¡¡¡¡

¡¡¡¡DataInputStream¡¡addResult£»¡¡¡¡

¡¡¡¡public¡¡NameCollector£¨£©¡¡£û¡¡¡¡

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

¡¡¡¡¡¡¡¡¡¡¡¡listmgr¡¡=¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Runtime¡£getRuntime£¨£©¡£exec£¨¡¨listmgr¡£exe¡¨£©£»¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡nameList¡¡=¡¡new¡¡PrintStream£¨¡¡¡¡¡¡



¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡554¡¡


¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­Page¡¡556¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡new¡¡BufferedOutputStream£¨¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡listmgr¡£getOutputStream£¨£©£©£©£»¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡addResult¡¡=¡¡new¡¡DataInputStream£¨¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡new¡¡BufferedInputStream£¨¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡listmgr¡£getInputStream£¨£©£©£©£»¡¡¡¡

¡¡¡¡

¡¡¡¡¡¡¡¡£ý¡¡catch£¨IOException¡¡e£©¡¡£û¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡System¡£err¡£println£¨¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¨Cannot¡¡start¡¡listmgr¡£exe¡¨£©£»¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡System¡£exit£¨1£©£»¡¡¡¡

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

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

¡¡¡¡¡¡¡¡¡¡¡¡socket¡¡=¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡new¡¡DatagramSocket£¨COLLECTOR_PORT£©£»¡¡¡¡

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

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¨NameCollector¡¡Server¡¡started¡¨£©£»¡¡¡¡

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

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡//¡¡Block¡¡until¡¡a¡¡datagram¡¡appears£º¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡socket¡£receive£¨dp£©£»¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡String¡¡rcvd¡¡=¡¡new¡¡String£¨dp¡£getData£¨£©£»¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡0£»¡¡0£»¡¡dp¡£getLength£¨£©£©£»¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡//¡¡Send¡¡to¡¡listmgr¡£exe¡¡standard¡¡input£º¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡nameList¡£println£¨rcvd¡£trim£¨£©£©£»¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡nameList¡£flush£¨£©£»¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡byte£§£§¡¡resultBuf¡¡=¡¡new¡¡byte£§BUFFER_SIZE£§£»¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡int¡¡byteCount¡¡=¡¡¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡addResult¡£read£¨resultBuf£©£»¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡if£¨byteCount¡¡£¡=¡¡¡­1£©¡¡£û¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡String¡¡result¡¡=¡¡¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡new¡¡String£¨resultBuf£»¡¡0£©¡£trim£¨£©£»¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡//¡¡Extract¡¡the¡¡address¡¡and¡¡port¡¡from¡¡¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡//¡¡the¡¡received¡¡datagram¡¡to¡¡find¡¡out¡¡¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡//¡¡where¡¡to¡¡send¡¡the¡¡reply£º¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡InetAddress¡¡senderAddress¡¡=¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡dp¡£getAddress£¨£©£»¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡int¡¡senderPort¡¡=¡¡dp¡£getPort£¨£©£»¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡byte£§£§¡¡echoBuf¡¡=¡¡new¡¡byte£§BUFFER_SIZE£§£»¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡result¡£getBytes£¨¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡0£»¡¡byteCount£»¡¡echoBuf£»¡¡0£©£»¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡DatagramPacket¡¡echo¡¡=¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡new¡¡DatagramPacket£¨¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡echoBuf£»¡¡echoBuf¡£length£»¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡senderAddress£»¡¡senderPort£©£»¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡socket¡£send£¨echo£©£»¡¡¡¡

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

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡else¡¡¡¡

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

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¨Unexpected¡¡lack¡¡of¡¡result¡¡from¡¡¡¨¡¡£«¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¨listmgr¡£exe¡¨£©£»¡¡¡¡

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

¡¡¡¡¡¡¡¡£ý¡¡catch£¨SocketException¡¡e£©¡¡£û¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡System¡£err¡£println£¨¡¨Can't¡¡open¡¡socket¡¨£©£»¡¡¡¡



¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡555¡¡


¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­Page¡¡557¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­

¡¡¡¡¡¡¡¡¡¡¡¡System¡£exit£¨1£©£»¡¡¡¡

¡¡¡¡¡¡¡¡£ý¡¡catch£¨IOException¡¡e£©¡¡£û¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡System¡£err¡£println£¨¡¨munication¡¡error¡¨£©£»¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡e¡£printStackTrace£¨£©£»¡¡¡¡

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

¡¡¡¡£ý¡¡¡¡

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

¡¡¡¡¡¡¡¡new¡¡NameCollector£¨£©£»¡¡¡¡

¡¡¡¡£ý¡¡¡¡

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

¡¡¡¡

NameCollector¡¡ÖеĵÚÒ»¸ö¶¨ÒåÓ¦¸ÃÊÇ´ó¼ÒËùÊìϤµÄ£ºÑ¡¶¨¶Ë¿Ú£¬´´½¨Ò»¸öÊý¾Ý±¨°ü£¬È»ºó´´½¨Ö¸ÏòÒ»¸ö¡¡

DatagramSocket¡¡µÄ¾ä±ú¡£½ÓÏÂÀ´µÄÈý¸ö¶¨Ò帺ÔðÓëC¡¡³ÌÐòµÄÁ¬½Ó£ºÒ»¸ö¡¡Process¡¡¶ÔÏóÊÇ¡¡C¡¡³ÌÐòÓÉ¡¡Java¡¡³ÌÐò¡¡

Æô¶¯Ö®ºó·µ»ØµÄ£¬¶øÇÒÄǸöProcess¡¡¶ÔÏó²úÉúÁË¡¡InputStream¡¡ºÍOutputStream£¬·Ö±ð´ú±í¡¡C¡¡³ÌÐòµÄ±ê×¼Êä³ö¡¡

ºÍ±ê×¼ÊäÈë¡£ºÍJava¡¡IO¡¡Ò»Ñù£¬ËüÃÇÀíËùµ±È»µØÐèÒª¡°·â×°¡±ÆðÀ´£¬ËùÒÔÎÒÃÇ×îºóµÃµ½µÄÊÇÒ»¸ö¡¡

PrintStream¡¡ºÍ¡¡DataInputStream¡£¡¡¡¡

Õâ¸ö³ÌÐòµÄËùÓй¤×÷¶¼ÊÇÔÚ¹¹½¨Æ÷ÄÚ½øÐеġ£ÎªÆô¶¯C¡¡³ÌÐò£¬ÐèҪȡµÃµ±Ç°µÄ¡¡Runtime¡¡¶ÔÏó¡£ÎÒÃÇÓÃËüµ÷Óá¡

exec£¨£©£¬ÔÙÓɺóÕß·µ»ØProcess¡¡¶ÔÏó¡£ÔÚProcess¡¡¶ÔÏóÖУ¬´ó¼Ò¿É¿´µ½Í¨¹ýÒ»¼òµ¥µÄµ÷Óü´¿ÉÉú³ÉÊý¾ÝÁ÷£º¡¡

getOutputStream£¨£©ºÍ¡¡getInputStream£¨£©¡£´ÓÕâ¸öʱºò¿ªÊ¼£¬ÎÒÃÇÐèÒª¿¼ÂǵÄÈ«²¿ÊÂÇé¾ÍÊǽ«Êý¾Ý´«¸øÊý¾Ý¡¡

Á÷nameList¡¡£¬²¢´ÓaddResult¡¡ÖÐÈ¡µÃ½á¹û¡£¡¡¡¡

ºÍÍù³£Ò»Ñù£¬ÎÒÃǽ«DatagramSocket¡¡Í¬Ò»¸ö¶Ë¿ÚÁ¬½Óµ½Ò»Æð¡£ÔÚÎÞÏÞwhile¡¡Ñ­»·ÖУ¬³ÌÐò»áµ÷Óá¡

receive£¨£©¡ª¡ª³ý·ÇÒ»¸öÊý¾Ý±¨µ½À´£¬·ñÔòreceive£¨£©»áÒ»Æð´¦ÓÚ¡°¶ÂÈû¡±×´Ì¬¡£Êý¾Ý±¨³öÏÖÒÔºó£¬ËüµÄÄÚÈÝ¡¡

»áÌáÈ¡µ½String¡¡rcvd¡¡Àï¡£ÎÒÃÇÊ×ÏȽ«¸Ã×Ö´®Á½Í·µÄ¿Õ¸ñÌÞ³ý£¨trim£©£¬ÔÙ½«Æä·¢¸øC¡¡³ÌÐò¡£ÈçÏÂËùʾ£º¡¡¡¡

nameList¡£println£¨rcvd¡£trim£¨£©£©£»¡¡¡¡

Ö®ËùÒÔÄÜÕâÑù±àÂ룬ÊÇÒòΪJava¡¡µÄexec£¨£©ÔÊÐíÎÒÃÇ·ÃÎÊÈκοÉÖ´ÐÐÄ£¿é£¬Ö»ÒªËüÄÜ´Ó±ê×¼ÊäÈëÖжÁ£¬²¢ÄÜ¡¡

Ïò±ê×¼Êä³öÖÐд¡£»¹ÓÐÁíһЩ·½Ê½¿ÉÓë·ÇJava¡¡´úÂë¡°½»Ì¸¡±£¬Õ⽫ÔÚ¸½Â¼A¡¡ÖÐÌÖÂÛ¡£¡¡¡¡

´ÓC¡¡³ÌÐòÖв¶»ñ½á¹û¾ÍÏÔµÃÉÔ΢Â鷳һЩ¡£ÎÒÃDZØÐëµ÷Óá¡read£¨£©£¬²¢Ìṩһ¸ö»º³åÇø£¬ÒԱ㱣´æ½á¹û¡£¡¡

read£¨£©µÄ·µ»ØÖµÊÇÀ´×ÔC¡¡³ÌÐòµÄ×Ö½ÚÊý¡£ÈôÕâ¸öֵΪ¡­1£¬Òâζ×Åij¸öµØ·½³öÏÖÁËÎÊÌâ¡£·ñÔò£¬ÎÒÃǾͽ«¡¡

resultBuf¡¡£¨½á¹û»º³åÇø£©×ª»»³ÉÒ»¸ö×Ö´®£¬È»ºóͬÑùÇå³ý¶àÓàµÄ¿Õ¸ñ¡£Ëæºó£¬Õâ¸ö×Ö´®»áÏóÍù³£Ò»Ñù½øÈëÒ»¡¡

¸öDatagramPacket£¬²¢´«»Øµ±³õ·¢³öÇëÇóµÄÄǸöͬÑùµÄµØÖ·¡£×¢Òâ·¢ËÍ·½µÄµØÖ·Ò²ÊÇÎÒÃǽÓÊÕµ½µÄ¡¡

DatagramPacket¡¡µÄÒ»²¿·Ö¡£¡¡¡¡

¼Çס¾¡¹ÜC¡¡³ÌÐò±ØÐëÔÚ¡¡Web¡¡·þÎñÆ÷ÉϱàÒ룬µ«¡¡Java¡¡³ÌÐòµÄ±àÒ볡Ëù¿ÉÒÔÊÇÈÎÒâµÄ¡£ÕâÊÇÓÉÓÚ²»¹ÜʹÓõÄÊÇʲ¡¡

ôӲ¼þƽ̨ºÍ²Ù×÷ϵͳ£¬±àÒëµÃµ½µÄ×Ö½ÚÂë¶¼ÊÇÒ»ÑùµÄ¡£¾Í¾ÍÊÇJava¡¡µÄ¡°¿çƽ̨¡±¼æÈÝÄÜÁ¦¡£¡¡¡¡



15¡£5¡£2¡¡NameSender¡¡³ÌÐòƬ¡¡¡¡



ÕýÈçÔçÏÈÖ¸³öµÄÄÇÑù£¬³ÌÐòƬ±ØÐëÓÃJava¡¡1¡£0¡¡±àд£¬Ê¹ÆäÄÜÓë¾ø´ó¶àÊýµÄä¯ÀÀÆ÷ÊÊÓ¦¡£Ò²ÕýÊÇÓÉÓÚÕâ¸öÔ­¡¡

Òò£¬ÎÒÃDzúÉúµÄÀàÊýÁ¿Ó¦¾¡¿ÉÄܵØÉÙ¡£ËùÒÔÎÒÃÇÔÚÕâ¶ù²»¿¼ÂÇʹÓÃÇ°ÃæÉè¼ÆºÃµÄDgram¡¡À࣬¶ø½«Êý¾Ý±¨µÄËù¡¡

ÓÐά»¤¹¤×÷¶¼×ªµ½´úÂëÐÐÖнøÐС£´ËÍ⣬³ÌÐòƬҪÓÃÒ»¸öÏ̼߳àÊÓÓÉ·þÎñÆ÷´«»ØµÄÏìÓ¦ÐÅÏ¢£¬¶ø·
·µ»ØÄ¿Â¼ ÉÏÒ»Ò³ ÏÂÒ»Ò³ »Øµ½¶¥²¿ ÔÞ£¨0£© ²È£¨0£©
δÔĶÁÍꣿ¼ÓÈëÊéÇ©ÒѱãÏ´μÌÐøÔĶÁ£¡
ÎÂܰÌáʾ£º ο´Ð¡ËµµÄͬʱ·¢±íÆÀÂÛ£¬Ëµ³ö×Ô¼ºµÄ¿´·¨ºÍÆäËüС»ï°éÃÇ·ÖÏíÒ²²»´íŶ£¡·¢±íÊéÆÀ»¹¿ÉÒÔ»ñµÃ»ý·ÖºÍ¾­Ñé½±Àø£¬ÈÏÕæÐ´Ô­´´ÊéÆÀ ±»²ÉÄÉΪ¾«ÆÀ¿ÉÒÔ»ñµÃ´óÁ¿½ð±Ò¡¢»ý·ÖºÍ¾­Ñé½±ÀøÅ¶£¡