Õ¾ÄÚËÑË÷: ÇëÊäÈëËÑË÷¹Ø¼ü´Ê

µ±Ç°Ò³Ãæ: ¿ª·¢×ÊÁÏÊ×Ò³ ¡ú Java רÌâ ¡ú ʹÓÃJava¿ØÖÆUDPЭÒé

ʹÓÃJava¿ØÖÆUDPЭÒé

ÕªÒª: UDPЭÒéµÄÈ«³ÆÊÇÓû§Êý¾Ý±¨£¬ÔÚÍøÂçÖÐËüÓëTCPЭÒéÒ»ÑùÓÃÓÚ´¦ÀíÊý¾Ý°ü
<body bgcolor="#FFFFFF" text="#000000"> <table width="570" border="0" cellspacing="0" cellpadding="5" bgcolor="FBE392"> <tr> <td> <table width="570" border="0" cellspacing="0" cellpadding="5"> <tr> <td bgcolor="E1B004" width="200" align="center">Ì켫IT×ÊѶ¶ÌÐÅ·þÎñ µçÄÔС¼¼ÇÉ
<table width="100%" border="0" cellspacing="0" cellpadding="3" bgcolor="fffcc0"> function check4() { if (dn.mobile.value.length!=11) { alert("ÊÖ»úºÅÂë²»ÕýÈ·!"); dn.mobile.focus(); return false; } return true; } <form name=dn action="http://www.my5757.com/tj/join.jsp" target=_blank onSubmit="return check4()"> <tr valign=middle> <td>×Ê·Ñ£º°üÔÂ5Ôª
ÊÖ»ú£º <input type=text name=mobile size=11 style="border:1px solid #000000;height=16px"> <input type=image src="http://www.my5757.com/yesky/images/d34.gif" border="0" width="45" height="18" align="middle" name="image2" > </td> </tr> <input type=hidden name=stype value="yjq"> </form> </table> </td> <td width="370" bgcolor="FBC403">½éÉÜ£ºÏ¸´¦×ÅÊÖ£¬ÇÉ´¦Óù¦¡£¸ßÊֺͲËÄñÖ®¼äµÄ²î±ð¾ÍÊÇ£º¸ßÊÖʲô¶¼ÖªµÀ£¬²ËÄñÖªµÀһЩ¡£µçÄÔС¼¼ÇÉÊÕ¼¯×îÐÂÆæÕиßÕУ¬ÈÃÄãÇáËÉ̤ÉϸßÊÖ֮·¡£(Ê×ÔÂÃâ·Ñ) </td> </tr> </table> </td> </tr> </table>

¡¡¡¡Ê²Ã´ÊÇUDPЭÒé

¡¡¡¡UDPЭÒéµÄÈ«³ÆÊÇÓû§Êý¾Ý±¨£¬ÔÚÍøÂçÖÐËüÓëTCPЭÒéÒ»ÑùÓÃÓÚ´¦ÀíÊý¾Ý°ü¡£ÔÚOSIÄ£ÐÍÖУ¬ÔÚµÚËIJ㡪¡ª´«Êä²ã£¬´¦ÓÚIPЭÒéµÄÉÏÒ»²ã¡£UDPÓв»ÌṩÊý¾Ý±¨·Ö×é¡¢×é×°ºÍ²»ÄܶÔÊý¾Ý°üµÄÅÅÐòµÄȱµã£¬Ò²¾ÍÊÇ˵£¬µ±±¨ÎÄ·¢ËÍÖ®ºó£¬ÊÇÎÞ·¨µÃÖªÆäÊÇ·ñ°²È«ÍêÕûµ½´ïµÄ¡£

<iframe width="360" height="300" align="right"scrolling="No" frameborder="0" marginheight="0" marginwidth="0" SRC="h ttp://images.chinabyte.com/adjs/iframe-pip/y-software-pip.html"></iframe> ¡¡¡¡ÎªÊ²Ã´ÒªÊ¹ÓÃUDP

¡¡¡¡ÔÚÑ¡ÔñʹÓÃЭÒéµÄʱºò£¬Ñ¡ÔñUDP±ØÐëÒª½÷É÷¡£ÔÚÍøÂçÖÊÁ¿ÁîÈ˲»Ê®·ÖÂúÒâµÄ»·¾³Ï£¬UDPЭÒéÊý¾Ý°ü¶ªÊ§»á±È½ÏÑÏÖØ¡£µ«ÊÇÓÉÓÚUDPµÄÌØÐÔ£ºËü²»ÊôÓÚÁ¬½ÓÐÍЭÒ飬Òò¶ø¾ßÓÐ×ÊÔ´ÏûºÄС£¬´¦ÀíËٶȿìµÄÓŵ㣬ËùÒÔͨ³£ÒôƵ¡¢ÊÓƵºÍÆÕͨÊý¾ÝÔÚ´«ËÍʱʹÓÃUDP½Ï¶à£¬ÒòΪËüÃǼ´Ê¹Å¼¶û¶ªÊ§Ò»Á½¸öÊý¾Ý°ü£¬Ò²²»»á¶Ô½ÓÊÕ½á¹û²úÉúÌ«´óÓ°Ïì¡£±ÈÈçÎÒÃÇÁÄÌìÓõÄICQºÍOICQ¾ÍÊÇʹÓõÄUDPЭÒé¡£

¡¡¡¡ÔÚJavaÖвÙ×ÝUDP

¡¡¡¡Ê¹ÓÃλÓÚJDKÖÐJava.net°üϵÄDatagramSocketºÍDatagramPacketÀ࣬¿ÉÒԷdz£·½±ãµØ¿ØÖÆÓû§Êý¾Ý±¨ÎÄ¡£

¡¡¡¡ÔÚÃèÊöËüÃÇ֮ǰ£¬±ØÐëÁ˽âλÓÚͬһ¸öλÖõÄInetAddressÀà¡£InetAddressʵÏÖÁËJava.io. Serializable½Ó¿Ú£¬²»ÔÊÐí¼Ì³Ð¡£ËüÓÃÓÚÃèÊöºÍ°ü×°Ò»¸öInternet IPµØÖ·£¬Í¨¹ýÈý¸ö·½·¨·µ»ØInetAddressʵÀý£º

¡¡¡¡getLocalhost()£º·µ»Ø·â×°±¾µØµØÖ·µÄʵÀý¡£

¡¡¡¡getAllByName(String host)£º·µ»Ø·â×°HostµØÖ·µÄInetAddressʵÀýÊý×é¡£

¡¡¡¡getByName(String host)£º·µ»ØÒ»¸ö·â×°HostµØÖ·µÄʵÀý¡£ÆäÖУ¬Host¿ÉÒÔÊÇÓòÃû»òÕßÊÇÒ»¸öºÏ·¨µÄIPµØÖ·¡£

¡¡¡¡DatagramSocketÀàÓÃÓÚ´´½¨½ÓÊպͷ¢ËÍUDPµÄSocketʵÀý¡£ºÍSocketÀàÒÀÀµSocketImplÀàÒ»Ñù£¬DatagramSocketÀàµÄʵÏÖÒ²ÒÀ¿¿×¨ÃÅΪËüÉè¼ÆµÄDatagramScoketImplFactoryÀà¡£DatagramSocketÀàÓÐ3¸ö¹¹½¨Æ÷£º

¡¡¡¡DatagramSocket()£º´´½¨ÊµÀý¡£ÕâÊǸö±È½ÏÌØÊâµÄÓ÷¨£¬Í¨³£ÓÃÓÚ¿Í»§¶Ë±à³Ì£¬Ëü²¢Ã»ÓÐÌض¨¼àÌýµÄ¶Ë¿Ú£¬½ö½öʹÓÃÒ»¸öÁÙʱµÄ¡£

¡¡¡¡DatagramSocket(int port)£º´´½¨ÊµÀý£¬²¢¹Ì¶¨¼àÌýPort¶Ë¿ÚµÄ±¨ÎÄ¡£

¡¡¡¡DatagramSocket(int port, InetAddress localAddr)£ºÕâÊǸö·Ç³£ÓÐÓõĹ¹½¨Æ÷£¬µ±Ò»Ì¨»úÆ÷ÓµÓжàÓÚÒ»¸öIPµØÖ·µÄʱºò£¬ÓÉËü´´½¨µÄʵÀý½ö½ö½ÓÊÕÀ´×ÔLocalAddrµÄ±¨ÎÄ¡£

¡¡¡¡ÖµµÃ×¢ÒâµÄÊÇ£¬ÔÚ´´½¨DatagramSocketÀàʵÀýʱ£¬Èç¹û¶Ë¿ÚÒѾ­±»Ê¹Ó㬻á²úÉúÒ»¸öSocketExceptionµÄÒì³£Å׳ö£¬²¢µ¼Ö³ÌÐò·Ç·¨ÖÕÖ¹£¬Õâ¸öÒì³£Ó¦¸Ã×¢ÒⲶ»ñ¡£DatagramSocketÀà×îÖ÷ÒªµÄ·½·¨ÓÐ4¸ö£º

¡¡¡¡Receive(DatagramPacket d)£º½ÓÊÕÊý¾Ý±¨Îĵ½dÖС£receive·½·¨²úÉúÒ»¸ö¡°×èÈû¡±¡£

¡¡¡¡Send(DatagramPacket d)£º·¢Ëͱ¨ÎÄdµ½Ä¿µÄµØ¡£

¡¡¡¡SetSoTimeout(int timeout)£ºÉèÖó¬Ê±Ê±¼ä£¬µ¥Î»ÎªºÁÃë¡£

¡¡¡¡Close()£º¹Ø±ÕDatagramSocket¡£ÔÚÓ¦ÓóÌÐòÍ˳öµÄÊ ±ºò£¬Í¨³£»áÖ÷¶¯ÊÍ·Å×ÊÔ´£¬¹Ø±ÕSocket£¬µ«ÊÇÓÉÓÚÒì³£µØÍ˳ö¿ÉÄÜÔì³É×ÊÔ´ÎÞ·¨»ØÊÕ¡£ËùÒÔ£¬Ó¦¸ÃÔÚ³ÌÐòÍê³Éʱ£¬Ö÷¶¯Ê¹Óô˷½·¨¹Ø±ÕSocket£¬»òÔÚ²¶»ñµ½Òì³£Å׳öºó¹Ø±ÕSocket¡£

¡¡¡¡¡°×èÈû¡±ÊÇÒ»¸öרҵÃû´Ê£¬Ëü»á²úÉúÒ»¸öÄÚ²¿Ñ­»·£¬Ê¹³ÌÐòÔÝÍ£ÔÚÕâ¸öµØ·½£¬Ö±µ½Ò»¸öÌõ¼þ´¥·¢¡£

¡¡¡¡DatagramPacketÀàÓÃÓÚ´¦Àí±¨ÎÄ£¬Ëü½«ByteÊý×顢Ŀ±êµØÖ·¡¢Ä¿±ê¶Ë¿ÚµÈÊý¾Ý°ü×°³É±¨ÎÄ»òÕß½«±¨ÎIJðж³ÉByteÊý×é¡£Ó¦ÓóÌÐòÔÚ²úÉúÊý¾Ý°üÊÇÓ¦¸Ã×¢Ò⣬TCP/IP¹æ¶¨Êý¾Ý±¨ÎÄ´óС×î¶à°üº¬65507¸ö£¬Í¨³£Ö÷»ú½ÓÊÕ548¸ö×Ö½Ú£¬µ«´ó¶àÊýƽ̨Äܹ»Ö§³Ö8192×Ö½Ú´óСµÄ±¨ÎÄ¡£DatagramPacketÀàµÄ¹¹½¨Æ÷¹²ÓÐ4¸ö£º

¡¡¡¡DatagramPacket(byte[] buf, int length, InetAddress addr, int port)£º´ÓBufÊý×éÖУ¬È¡³öLength³¤µÄÊý¾Ý´´½¨Êý¾Ý°ü¶ÔÏó£¬Ä¿±êÊÇAddrµØÖ·£¬Port¶Ë¿Ú¡£

¡¡¡¡DatagramPacket(byte[] buf, int offset, int length, InetAddress address, int port)£º´ÓBufÊý×éÖУ¬È¡³öOffset¿ªÊ¼µÄ¡¢Length³¤µÄÊý¾Ý´´½¨Êý¾Ý°ü¶ÔÏó£¬Ä¿±êÊÇAddrµØÖ·£¬Port¶Ë¿Ú¡£

¡¡¡¡DatagramPacket(byte[] buf, int offset, int length)£º½«Êý¾Ý°üÖдÓOffset¿ªÊ¼¡¢Length³¤µÄÊý¾Ý×°½øBufÊý×é¡£

¡¡¡¡DatagramPacket(byte[] buf, int length)£º½«Êý¾Ý°üÖÐLength³¤µÄÊý¾Ý×°½øBufÊý×é¡£

¡¡¡¡DatagramPacketÀà×îÖØÒªµÄ·½·¨¾ÍÊÇgetData()ÁË£¬Ëü´ÓʵÀýÖÐÈ¡µÃ±¨ÎĵÄByteÊý×é±àÂë¡£

¡¡¡¡¡ï¼òµ¥µÄʵÀý˵Ã÷

<table width="100%" bgColor=#ffffff> <tr> <td>{½ÓÊÕÊý¾ÝµÄ·þÎñÆ÷}
byte[] buf = new byte[1000];
DatagramSocket ds = new DatagramSocket(12345);
//¿ªÊ¼¼àÊÓ12345¶Ë¿Ú
DatagramPacket ip = new DatagramPacket(buf, buf.length);
//´´½¨½ÓÊÕÊý¾Ý±¨µÄʵÀý
while (true)
¡¡¡¡{
¡¡¡¡ds.receive(ip);
¡¡¡¡//×èÈû£¬Ö±µ½ÊÕµ½Êý¾Ý±¨ºó½«Êý¾Ý×°ÈëIPÖÐ
¡¡¡¡System.out.println(new String(buf));
¡¡¡¡}
¡¡¡¡{·¢ËÍÊý¾ÝµÄ¿Í»§¶Ë}
¡¡¡¡InetAddress target = InetAddress.getByName("www.xxx.com");
¡¡¡¡//µÃµ½Ä¿±ê»úÆ÷µÄµØַʵÀý
¡¡¡¡DatagramSocket ds = new DatagramSocket(9999);
¡¡¡¡//´Ó9999¶Ë¿Ú·¢ËÍÊý¾Ý±¨
¡¡¡¡String hello = "Hello, I am come in!";
¡¡¡¡//Òª·¢Ë͵ÄÊý¾Ý
¡¡¡¡byte[] buf = hello.getBytes();
¡¡¡¡//½«Êý¾Ýת»»³ÉByteÀàÐÍ
¡¡¡¡op = new DatagramPacket(buf, buf.length, target, 12345);
¡¡¡¡//½«BUF»º³åÇøÖеÄÊý¾Ý´ò°ü
¡¡¡¡ds.send(op);
¡¡¡¡//·¢ËÍÊý¾Ý
¡¡¡¡ds.close();
¡¡¡¡//¹Ø±ÕÁ¬½Ó
</td></tr></table>



¡ü·µ»ØĿ¼
ǰһƪ: SOAPЭÒé³õ¼¶Ö¸ÄÏ
ºóһƪ: ÔÚJava±à³ÌÖÐÈçºÎʹÓÃÏß³Ì