新聞中心
linux是一種具有穩(wěn)定性和強大功能的多用戶操作系統(tǒng),當安裝了相關(guān)硬件驅(qū)動后也可以進行網(wǎng)絡通信。本文將介紹如何在Linux中發(fā)送廣播包的方法。

銅鼓網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)公司!從網(wǎng)頁設計、網(wǎng)站建設、微信開發(fā)、APP開發(fā)、自適應網(wǎng)站建設等網(wǎng)站項目制作,到程序開發(fā),運營維護。創(chuàng)新互聯(lián)公司從2013年創(chuàng)立到現(xiàn)在10年的時間,我們擁有了豐富的建站經(jīng)驗和運維經(jīng)驗,來保證我們的工作的順利進行。專注于網(wǎng)站建設就選創(chuàng)新互聯(lián)公司。
一般發(fā)送廣播包時,可以通過raw socket操作API/socketlistio及IPPROTO_IP傳輸層的raw-socket來實現(xiàn),這是Linux的一種原始的網(wǎng)絡通信方式。發(fā)送廣播包的代碼如下:
#include
#include
#include
#include
int main(int argc, char **argv)
{
int sockfd = socket(AF_INET, SOCK_DGRAM, 0);
struct sockaddr_in addr;
//初始化sockaddr_in結(jié)構(gòu)體變量
memset(&addr, 0, sizeof(addr));
addr.sin_family = AF_INET;
addr.sin_addr.s_addr = htonl(INADDR_BROADCAST);
addr.sin_port = htons(8000);
char * message = “this is a broadcast message!”;
sendto(sockfd, message , strlen(message) , 0 , (struct sockaddr *)&addr, sizeof(addr));
return 0;
}
上述代碼中,第一行構(gòu)造一個socket,第二行構(gòu)造一個sockaddr_in結(jié)構(gòu)體變量,第三行把sin_addr設為INADDR_BROADCAST,讓其發(fā)送到廣播地址,第四行設置廣播端口,最后一行就是發(fā)送消息了。使用這種方式發(fā)送的廣播包各個網(wǎng)絡中的計算機都能收到。
因此,Linux可以通過raw sockets接口和IPPROTO_IP傳輸層的raw-socket方式實現(xiàn)發(fā)送廣播包,這樣可以讓網(wǎng)絡中的各個計算機都能收到這條廣播消息。Linux中發(fā)送廣播消息除了使用raw socket之外,還可以使用網(wǎng)絡調(diào)試工具或現(xiàn)成的發(fā)送廣播包的程序庫,這種方式比較簡單,但某些情況下可見性可能不夠。所以根據(jù)實際情況,開發(fā)者可以自由選擇適用的方式來發(fā)送廣播包。
成都服務器租用選創(chuàng)新互聯(lián),先試用再開通。
創(chuàng)新互聯(lián)(www.cdcxhl.com)提供簡單好用,價格厚道的香港/美國云服務器和獨立服務器。物理服務器托管租用:四川成都、綿陽、重慶、貴陽機房服務器托管租用。
文章題目:Linux 中發(fā)送廣播包的方法(linux發(fā)送廣播包)
瀏覽地址:http://fisionsoft.com.cn/article/dhghpci.html


咨詢
建站咨詢
