最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C語言廣播的使用詳解

 更新時(shí)間:2022年05月04日 09:45:16   作者:liufeng2023  
顧名思義可以把自己的數(shù)據(jù)發(fā)送給在特定范圍內(nèi)的所有人;我們網(wǎng)絡(luò)編程中的廣播一般是通過特定的廣播地址把自己的數(shù)據(jù)發(fā)送給局域網(wǎng)內(nèi)當(dāng)前在線的客戶端

向子網(wǎng)中多臺(tái)計(jì)算機(jī)發(fā)送消息,并且子網(wǎng)中所有的計(jì)算機(jī)都可以接收到發(fā)送方發(fā)送的消息,每個(gè)廣播消息都包含一個(gè)特殊的IP地址,這個(gè)IP中子網(wǎng)內(nèi)主機(jī)標(biāo)志部分的二進(jìn)制全部為1(也就是網(wǎng)絡(luò)號(hào)是255)。

? a. 只能在局域網(wǎng)中使用。

? b. 客戶端需要綁定服務(wù)器廣播使用的端口,才可以接收到廣播消息。

只能在局域網(wǎng)中使用;

// 設(shè)置廣播屬性的函數(shù)
int setsockopt(int sockfd, int level, int optname,const void *optval, socklen_t
optlen);
    - 參數(shù):
        - sockfd : 文件描述符
        - level : SOL_SOCKET
        - optname : SO_BROADCAST
        - optval : int類型的值,為1表示允許廣播
        - optlen : optval的大小    

廣播代碼較UDP代碼需要做的改變:

  • 服務(wù)端需要設(shè)置廣播屬性
  • 服務(wù)端不需要使用bind進(jìn)行綁定;
  • 客戶端需要綁定服務(wù)端使用的端口;
//Server
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
#include <arpa/inet.h>
int main() {
    // 1.創(chuàng)建一個(gè)通信的socket
    int fd = socket(PF_INET, SOCK_DGRAM, 0);
    if(fd == -1) {
        perror("socket");
        exit(-1);
    }   
    // 2.設(shè)置廣播屬性
    int op = 1;
    setsockopt(fd, SOL_SOCKET, SO_BROADCAST, &op, sizeof(op));
    // 3.創(chuàng)建一個(gè)廣播的地址
    struct sockaddr_in cliaddr;
    cliaddr.sin_family = AF_INET;
    cliaddr.sin_port = htons(9999);
    inet_pton(AF_INET, "192.168.193.255", &cliaddr.sin_addr.s_addr);	--注意網(wǎng)絡(luò)號(hào)使用255
    // 3.通信
    int num = 0;
    while(1) {
        char sendBuf[128];
        sprintf(sendBuf, "hello, client....%d\n", num++);
        // 發(fā)送數(shù)據(jù)
        sendto(fd, sendBuf, strlen(sendBuf) + 1, 0, (struct sockaddr *)&cliaddr, sizeof(cliaddr));
        printf("廣播的數(shù)據(jù):%s\n", sendBuf);
        sleep(1);
    }
    close(fd);
    return 0;
}
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
#include <arpa/inet.h>
int main() {
    // 1.創(chuàng)建一個(gè)通信的socket
    int fd = socket(PF_INET, SOCK_DGRAM, 0);
    if(fd == -1) {
        perror("socket");
        exit(-1);
    }   
    struct in_addr in;
    // 2.客戶端綁定本地的IP和端口
    struct sockaddr_in addr;
    addr.sin_family = AF_INET;
    addr.sin_port = htons(9999);
    addr.sin_addr.s_addr = INADDR_ANY;
    int ret = bind(fd, (struct sockaddr *)&addr, sizeof(addr));
    if(ret == -1) {
        perror("bind");
        exit(-1);
    }
    // 3.通信
    while(1) {
        
        char buf[128];
        // 接收數(shù)據(jù)
        int num = recvfrom(fd, buf, sizeof(buf), 0, NULL, NULL);
        printf("server say : %s\n", buf);
    }
    close(fd);
    return 0;
}

服務(wù)端:

客戶端1: 192.168.193.128

客戶端2: 192.168.193.129

****

到此這篇關(guān)于C語言廣播的使用詳解的文章就介紹到這了,更多相關(guān)C語言廣播內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:

相關(guān)文章

  • C語言簡(jiǎn)明講解快速排序的應(yīng)用

    C語言簡(jiǎn)明講解快速排序的應(yīng)用

    快速排序由于排序效率在同為O(N*logN)的幾種排序方法中效率較高,因此經(jīng)常被采用,再加上快速排序思想----分治法也確實(shí)實(shí)用,因此很多軟件公司的筆試面試,包括像騰訊,微軟等知名IT公司都喜歡考這個(gè),還有大大小的程序方面的考試如軟考,考研中也常常出現(xiàn)快速排序的身影
    2022-05-05
  • C++循環(huán)鏈表之約瑟夫環(huán)的實(shí)現(xiàn)方法

    C++循環(huán)鏈表之約瑟夫環(huán)的實(shí)現(xiàn)方法

    這篇文章主要介紹了C++循環(huán)鏈表之約瑟夫環(huán)的實(shí)現(xiàn)方法,對(duì)于學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)與算法有一定的借鑒價(jià)值,需要的朋友可以參考下
    2014-09-09
  • 深度剖析C++中的異常機(jī)制

    深度剖析C++中的異常機(jī)制

    異常是面向?qū)ο笳Z言常用的一種處理錯(cuò)誤的方式,當(dāng)一個(gè)函數(shù)發(fā)現(xiàn)自己無法處理的錯(cuò)誤時(shí)就可以拋出異常,本文我們將對(duì)C++ 異常機(jī)制進(jìn)行深入剖析,感興趣的同學(xué)跟著小編一起來看看吧
    2023-07-07
  • C++ Eigen庫計(jì)算矩陣特征值及特征向量

    C++ Eigen庫計(jì)算矩陣特征值及特征向量

    這篇文章主要為大家詳細(xì)介紹了C++ Eigen庫計(jì)算矩陣特征值及特征向量,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-06-06
  • C++?AnimeGAN實(shí)現(xiàn)照片一鍵動(dòng)漫化

    C++?AnimeGAN實(shí)現(xiàn)照片一鍵動(dòng)漫化

    AnimeGAN是是由神經(jīng)網(wǎng)絡(luò)風(fēng)格遷移加生成對(duì)抗網(wǎng)絡(luò)(GAN)而成,它是基于CartoonGAN的改進(jìn),并提出了一個(gè)更加輕量級(jí)的生成器架構(gòu)。本文將介紹如何運(yùn)用AnimeGAN實(shí)現(xiàn)照片一鍵動(dòng)漫化,需要的可以參考一下
    2021-11-11
  • boost.asio框架系列之調(diào)度器io_service

    boost.asio框架系列之調(diào)度器io_service

    這篇文章介紹了boost.asio框架系列之調(diào)度器io_service,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-06-06
  • OpenCV使用稀疏光流實(shí)現(xiàn)視頻對(duì)象跟蹤的方法詳解

    OpenCV使用稀疏光流實(shí)現(xiàn)視頻對(duì)象跟蹤的方法詳解

    這篇文章主要為大家詳細(xì)介紹了OpenCV如何使用稀疏光流實(shí)現(xiàn)視頻對(duì)象跟蹤功能,文中的示例代碼講解詳細(xì),具有一定的借鑒價(jià)值,需要的可以參考一下
    2023-02-02
  • VC實(shí)現(xiàn)五子棋游戲的一個(gè)算法示例

    VC實(shí)現(xiàn)五子棋游戲的一個(gè)算法示例

    這篇文章主要介紹了VC實(shí)現(xiàn)五子棋游戲的一個(gè)算法示例,對(duì)于學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)與算法的朋友有一定的借鑒價(jià)值,需要的朋友可以參考下
    2014-08-08
  • C語言中memcpy 函數(shù)的用法詳解

    C語言中memcpy 函數(shù)的用法詳解

    這篇文章主要介紹了C語言中memcpy 函數(shù)的用法詳解的相關(guān)資料,需要的朋友可以參考下
    2017-07-07
  • C語言實(shí)現(xiàn)猜數(shù)字小游戲

    C語言實(shí)現(xiàn)猜數(shù)字小游戲

    這篇文章主要為大家詳細(xì)介紹了C語言實(shí)現(xiàn)猜數(shù)字小游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-11-11

最新評(píng)論

女性| 皋兰县| 黔东| 永新县| 久治县| 高要市| 龙州县| 铁岭市| 若尔盖县| 鄂尔多斯市| 庆安县| 台山市| 轮台县| 巴彦淖尔市| 通辽市| 延津县| 井研县| 江津市| 静宁县| 岗巴县| 焦作市| 汽车| 神木县| 兴宁市| 普兰县| 安新县| 泸定县| 磐石市| 大名县| 富宁县| 龙海市| 张家川| 涪陵区| 靖边县| 岢岚县| 丹寨县| 峨山| 昆山市| 北流市| 乌海市| 定安县|