亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 2825 | 回復: 2
打印 上一主題 下一主題

[C] 網(wǎng)絡編程udp客戶端如何綁定特定網(wǎng)卡 [復制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2015-12-31 09:46 |只看該作者 |倒序瀏覽

我的環(huán)境是這樣的,udp服務端,給很多客戶端發(fā)廣播包,一個設備可以開幾個客戶端,每個客戶端只接受指定網(wǎng)卡的信息。
就是客戶端要綁定網(wǎng)卡。原先的udp客戶端我知道可以綁定特定地址,但我的客戶端也是個dhcp客戶端,經(jīng)常改變地址,怎么才能綁定網(wǎng)卡口而不是地址呢
現(xiàn)在的客戶端代碼如下:
        /* 創(chuàng)建socket */
        if ((sockfd = socket(AF_INET, SOCK_DGRAM, 0)) == -1) {
                perror("Create Socket Failed");
                exit(1);
        }
        if (setsockopt(sockfd, SOL_SOCKET, SO_REUSEADDR, &reuse, sizeof(reuse)) == -1) {
                perror("Setsockopt Error");
                exit(1);
        }
        server_addr.sin_family = AF_INET;
        server_addr.sin_addr.s_addr = htonl(INADDR_ANY);              /*應該經(jīng)常改變地址,地址也可能為0,這里不好直接獲取地址來綁定*/
        server_addr.sin_port = htons(DHCP_PORT);
        /* 綁定套接口 */
        if (bind(sockfd, (struct sockaddr*) &server_addr,sizeof(server_addr)) == -1) {
                perror("Server Bind Failed");
                exit(1);
        }
       /*接受包*/
        while (1) {
                if (recvmsg(sockfd, &msg, 0) == -1) {
                        perror("Recv Error");
                        continue;
                }
                if (dhcp.option == htonl(DHCP_OPTION)) {
                        if ((int) dhcpcpid != 0) {
                                kill(dhcpcpid, SIGUSR1);
                        }
                }
        }

論壇徽章:
324
射手座
日期:2013-08-23 12:04:38射手座
日期:2013-08-23 16:18:12未羊
日期:2013-08-30 14:33:15水瓶座
日期:2013-09-02 16:44:31摩羯座
日期:2013-09-25 09:33:52雙子座
日期:2013-09-26 12:21:10金牛座
日期:2013-10-14 09:08:49申猴
日期:2013-10-16 13:09:43子鼠
日期:2013-10-17 23:23:19射手座
日期:2013-10-18 13:00:27金牛座
日期:2013-10-18 15:47:57午馬
日期:2013-10-18 21:43:38
2 [報告]
發(fā)表于 2015-12-31 10:04 |只看該作者
用getifaddrs可取所有網(wǎng)卡的IP等信息

論壇徽章:
0
3 [報告]
發(fā)表于 2015-12-31 10:08 |只看該作者
本帖最后由 linrspock 于 2015-12-31 10:35 編輯

回復 2# hellioncu


    但是我這個其實接受的就是dhcp廣播包,在后臺一直監(jiān)聽,然后獲取到特定廣播包后做一些東西,在監(jiān)聽期間客戶端的地址有可能變化了,重置了,變0了都有可能,不好綁定地址把,能不能指定網(wǎng)卡啊。
    sockaddr_ll這個結(jié)構(gòu)體可以接口,但是我看到這個都是用在原始套接字,不知的能不能用在udp套接字上
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP