生活随笔
收集整理的這篇文章主要介紹了
[转]java 组播
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1. 組播知識介紹:?http://blog.csdn.net/happy_david/article/details/1569209
?
2. java 組播實現:來自:?http://blog.csdn.net/a352193394/article/details/7395600
下面來演示一下使用Java Socket的組播類實現一個組播的小案例
首先是接收端
?
[java]?view plaincopyprint?
package?com.bird.test;????import?java.net.DatagramPacket;??import?java.net.InetAddress;??import?java.net.MulticastSocket;??import?java.util.Date;??????????public?class?MulticastReceive?{??????????????public?static?void?main(String[]?args)?throws?Exception?{??????????test();??????}????????????public?static?void?test()?throws?Exception{??????????InetAddress?group?=?InetAddress.getByName("224.0.0.2");??????????int?port?=?8888;??????????MulticastSocket?msr?=?null;??????????try?{??????????????msr?=?new?MulticastSocket(port);??????????????msr.joinGroup(group);??????????????byte[]?buffer?=?new?byte[8192];??????????????System.out.println("接收數據包啟動!(啟動時間:?"+new?Date()+")");??????????????while(true){????????????????????????????????????DatagramPacket?dp?=?new?DatagramPacket(buffer,?buffer.length);??????????????????msr.receive(dp);??????????????????String?s?=?new?String(dp.getData(),0,dp.getLength());????????????????????????????????????System.out.println(s);??????????????}??????????}?catch?(Exception?e)?{??????????????e.printStackTrace();??????????}finally{??????????????if(msr!=null){??????????????????try?{??????????????????????msr.leaveGroup(group);??????????????????????msr.close();??????????????????}?catch?(Exception?e2)?{????????????????????????????????????????}??????????????}??????????}??????}??????????}??
然后是發送端
?
?
[java]?view plaincopyprint?
package?com.bird.test;????import?java.net.DatagramPacket;??import?java.net.InetAddress;??import?java.net.MulticastSocket;??import?java.util.Date;??????????public?class?MulticastSender?{????????????public?static?void?server()?throws?Exception{??????????InetAddress?group?=?InetAddress.getByName("224.0.0.2");??????????int?port?=?8888;??????????MulticastSocket?mss?=?null;??????????try?{??????????????mss?=?new?MulticastSocket(port);??????????????mss.joinGroup(group);??????????????System.out.println("發送數據包啟動!(啟動時間"+new?Date()+")");????????????????????????????while(true){??????????????????String?message?=?"Hello?"+new?Date();??????????????????byte[]?buffer?=?message.getBytes();??????????????????DatagramPacket?dp?=?new?DatagramPacket(buffer,?buffer.length,group,port);??????????????????mss.send(dp);??????????????????System.out.println("發送數據包給?"+group+":"+port);??????????????????Thread.sleep(1000);??????????????}??????????}?catch?(Exception?e)?{??????????????e.printStackTrace();??????????}finally{??????????????try?{??????????????????if(mss!=null){??????????????????????mss.leaveGroup(group);??????????????????????mss.close();??????????????????}??????????????}?catch?(Exception?e2)?{????????????????????????????????}??????????}??????}????????????public?static?void?main(String[]?args)?throws?Exception?{??????????server();??????}??}??
通過開啟多個接收端,然后開啟發送端,就可以實現組播的效果
轉載于:https://www.cnblogs.com/harrysun/p/3376869.html
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎
總結
以上是生活随笔為你收集整理的[转]java 组播的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。