重庆幸运农场中奖金额|重庆幸运农场官网
MyException - 我的異常網
當前位置:我的異常網» 編程 » Java應用MulticastSocket實現多點廣播

Java應用MulticastSocket實現多點廣播

www.h0f1.com  網友分享于:2013-09-02  瀏覽:86次
Java使用MulticastSocket實現多點廣播

MulticastSocket可以將數據報以廣播的方式發送到多個客戶端。

MulticastSocket有如下3個構造方法

public MulticastSocket():使用本機默認地址,隨機端口來創建MulticastSocket對象。

public MulticastSocket(int portNumber):使用本機默認地址,指定端口創建MulticastSocket對象。

public MulticastSocket(SocketAddress bindaddr):使用本機指定IP地址,指定端口來創建MulticastSocket對象。

創建MulticastSocket對象后,還炫耀將MulticastSocket加入到指定的多點廣播地址,MulticastSocket使用joinGroup()方法加入指定組;使用leaveGroup()方法脫離一個組。

joinGroup(InetAddress addr);

leaveGroup(InetAddress addr);

 

InetAddress 類沒有提供構造,而提供如下兩個靜態方法來獲取InetAddress對象

getByName(String host):如getByName("localhost"),getByName(www.baidu.com);

getByAddress(byte []addr):如getByAddress(new byte[]{127,0,0,1});

MulticastSocket類中有一個setTimeToLive(int ttl),當ttl為0時,指定數據報應停留在本地主機,為1時,指定數據報發送到本地局域網網,為32時,發送到本站點的網絡上。為64時,發送到本地區,128時,發送到本大洲,255為全球。

 

import java.io.IOException;
import java.net.DatagramPacket;
import java.net.InetAddress;
import java.net.MulticastSocket;
import java.util.Scanner;


public class Test implements Runnable{
	MulticastSocket socket;
	DatagramPacket rece;
	byte []buffer;
	
	public Test()
	{
		try {
			socket=new MulticastSocket(4800);
			InetAddress addr=InetAddress.getByAddress(new byte[]{(byte)230,0,0,1});
			socket.joinGroup(addr);
			buffer=new byte[4000];
			rece=new DatagramPacket(buffer,4000);
			Thread th=new Thread(this);
			th.start();
			Scanner sc=new Scanner(System.in);
			while(sc.hasNextLine())
			{
				DatagramPacket dp=new DatagramPacket(sc.nextLine().getBytes(),sc.nextLine().getBytes().length,addr,4800);
				socket.send(dp);
			}
			
			
			
			
			
			
			
			
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
	
	public static void main(String[] args) {
		new Test();
		
	}

	@Override
	public void run() {
		while(true)
		{
			try {
				socket.receive(rece);
				System.out.println(new String(buffer));
			} catch (IOException e) {
				e.printStackTrace();
			}
			
		}
		
	}

}


上面的代碼能運行,貌似有點問題,不過還是可以通訊,有時間在好好做一做,先做到這里。

 

 

文章評論

我的丈夫是個程序員
我的丈夫是個程序員
做程序猿的老婆應該注意的一些事情
做程序猿的老婆應該注意的一些事情
Java 與 .NET 的平臺發展之爭
Java 與 .NET 的平臺發展之爭
10個調試和排錯的小建議
10個調試和排錯的小建議
60個開發者不容錯過的免費資源庫
60個開發者不容錯過的免費資源庫
Java程序員必看電影
Java程序員必看電影
每天工作4小時的程序員
每天工作4小時的程序員
寫給自己也寫給你 自己到底該何去何從
寫給自己也寫給你 自己到底該何去何從
漫畫:程序員的工作
漫畫:程序員的工作
什么才是優秀的用戶界面設計
什么才是優秀的用戶界面設計
看13位CEO、創始人和高管如何提高工作效率
看13位CEO、創始人和高管如何提高工作效率
那些爭議最大的編程觀點
那些爭議最大的編程觀點
如何區分一個程序員是“老手“還是“新手“?
如何區分一個程序員是“老手“還是“新手“?
一個程序員的時間管理
一個程序員的時間管理
程序員都該閱讀的書
程序員都該閱讀的書
親愛的項目經理,我恨你
親愛的項目經理,我恨你
Web開發者需具備的8個好習慣
Web開發者需具備的8個好習慣
科技史上最臭名昭著的13大罪犯
科技史上最臭名昭著的13大罪犯
為什么程序員都是夜貓子
為什么程序員都是夜貓子
程序員的鄙視鏈
程序員的鄙視鏈
十大編程算法助程序員走上高手之路
十大編程算法助程序員走上高手之路
中美印日四國程序員比較
中美印日四國程序員比較
初級 vs 高級開發者 哪個性價比更高?
初級 vs 高級開發者 哪個性價比更高?
Web開發人員為什么越來越懶了?
Web開發人員為什么越來越懶了?
 程序員的樣子
程序員的樣子
程序員必看的十大電影
程序員必看的十大電影
程序員最害怕的5件事 你中招了嗎?
程序員最害怕的5件事 你中招了嗎?
程序員和編碼員之間的區別
程序員和編碼員之間的區別
程序員眼里IE瀏覽器是什么樣的
程序員眼里IE瀏覽器是什么樣的
鮮為人知的編程真相
鮮為人知的編程真相
要嫁就嫁程序猿—錢多話少死的早
要嫁就嫁程序猿—錢多話少死的早
代碼女神橫空出世
代碼女神橫空出世
“懶”出效率是程序員的美德
“懶”出效率是程序員的美德
程序員周末都喜歡做什么?
程序員周末都喜歡做什么?
“骯臟的”IT工作排行榜
“骯臟的”IT工作排行榜
如何成為一名黑客
如何成為一名黑客
程序員的一天:一寸光陰一寸金
程序員的一天:一寸光陰一寸金
為啥Android手機總會越用越慢?
為啥Android手機總會越用越慢?
老美怎么看待阿里赴美上市
老美怎么看待阿里赴美上市
編程語言是女人
編程語言是女人
聊聊HTTPS和SSL/TLS協議
聊聊HTTPS和SSL/TLS協議
老程序員的下場
老程序員的下場
不懂技術不要對懂技術的人說這很容易實現
不懂技術不要對懂技術的人說這很容易實現
10個幫程序員減壓放松的網站
10個幫程序員減壓放松的網站
總結2014中國互聯網十大段子
總結2014中國互聯網十大段子
軟件開發程序錯誤異常ExceptionCopyright © 2009-2015 MyException 版權所有
重庆幸运农场中奖金额