使用MulticastSocket實現多點廣播

2022-09-05 11:27:07 字數 1872 閱讀 6555

使用multicastsocket實現多點廣播

datagramsocket只允許資料報傳送給指定的目標位址,而multicastsocket可以將資料報以廣播的方式傳送到多個客戶端

若要使用多點廣播,則需要讓乙個資料報標有一組目標主機位址,當資料報發出後,整個組的所有所有主機都能收到該資料報。ip多點廣播(或多點傳送)實現了將單一資訊傳送到多個接受者的廣播,其思想是設定一組特殊網路位址作為多點廣播位址,每乙個多點廣播位址都被看做乙個組,當客戶端需要傳送、接收廣播資訊時,加入到改組即可。

multicastsocket既可以將資料報傳送到多點廣播位址,也可以接收其他主機的廣播資訊。

multicastsocket有點像datagramsocket,事實上mulitcastsocket是datagramsocket的乙個子類,當要傳送乙個資料報時,可以使用隨機埠建立乙個multicastsocket,也可以在指定埠建立multicastsocket。multicastsocket提供了如下3個構造器。

1、multicastsocket():使用本機預設位址、隨機埠來建立multicastsocket物件

2、multicastsocket(int portnumber)使用本機預設位址、指定埠來建立物件

3、multicastsocket(socketaddress bindaddr):使用本機指定ip位址、指定埠來建立物件

建立multicastsocket物件後,還需要將該multicastsocket加入到指定的多點廣播位址,multicastsocket使用joingroup()方法加入指定組;使用le**egroup()方法脫離乙個組。

如果multicastsocket用於接收資訊則使用預設位址和隨機埠即可,但是如果用來接收資訊,則必須要指定埠,否則傳送方無法確定傳送資料報的目標埠。

package hb.brodcast;  

import j**a.net.datagrampacket;  

import j**a.net.inetaddress;  

import j**a.net.multicastsocket;  

public class multicastlistener   

public void listen()  catch (exception e)   

}  public static void main(string args)   

}  }  

package hb.brodcast;  

import j**a.net.datagrampacket;  

import j**a.net.inetaddress;  

import j**a.net.multicastsocket;  

public class multicastsender   

public void send()  catch (exception e)   

}  public static void main(string args)   

}  multicastsocket用於傳送、接收資料報的方法與datagramsocket完全一樣。但multicastsocket比datagramsocket多了乙個settimetolive(int ttl)方法,該ttl引數用於設定資料報最多可以跨過多少個網路,當ttl的值為0時,指定資料報應停留在本地主機;當ttl的值為1時,指定資料報傳送到本地區域網;當ttl的值為32時,意味著只能傳送到本站點的網路上;當ttl的值為64時,意味著資料報應保留在本地區;當ttl的值為128時,意味著資料報應保留在本大洲;當ttl的值為255時,意味著資料報可傳送到所有地方;在預設情況下,該ttl的值為1。

使用GraphEdit使用

1 註冊元件。其實乙個filter就是乙個com元件,所以使用之前需要註冊,可以有兩種方法對元件進行註冊。1.直接使用命令。命令列下輸入 regsvr32 hqtlystd.ax 編譯之後你會在工程目錄下的debug中找到hqtlystd.ax,這個就是要用的filter 即可註冊成功。2.vc6....

MySQL使用學習使用 mysql學習使用

1 mysql學習 1 安裝 ubuntu下直接安裝 apt get install mysql server 2 檢查伺服器是否啟動 sudo netstat tap grep mysql,如果啟動成功,出現以下資訊 tcp00localhost.localdomain mysql listen ...

學習使用CSDN markdown使用

建立乙個自定義列表 如何建立乙個註腳 注釋也是必不可少的 katex數學公式 新的甘特圖功能,豐富你的文章 uml 圖表 flowchart流程圖 匯出與匯入 你好!這是你第一次使用markdown編輯器所展示的歡迎頁。如果你想學習如何使用markdown編輯器,可以仔細閱讀這篇文章,了解一下mar...