小编GP *_*oit的帖子

将UDP数据包广播到255.255.255.255

第一次海报,希望这是一个简单的海报:

我需要向一块硬件发送广播数据包,当它启动时,它与我的机器位于不同的子网上,以告诉它将其IP地址重置为我网络上的IP地址.但是,除非我使用DHCP,否则我似乎无法广播自己的子网,最终我无法做到.网络上没有路由器,只是我的机器和我试图与之交谈的盒子之间的简单切换,以及网络上的其他几台Linux机器.

所以基本上这个示例代码在测试环境中的Fedora 19上运行(在我启用了DHCP的大型网络上),直到我尝试静态设置我的IP地址:

int main(int argc, char *argv[])
{
    int sock;
    if( (sock = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP)) == -1)
    {
        perror("socket : ");
        return -1;
    }

    int broadcast = 1;
    if( setsockopt(sock, SOL_SOCKET, SO_BROADCAST, &broadcast, sizeof(broadcast)) != 0 )
    {
        perror("setsockopt : ");
        close(sock);
        return -1;
    }

    char *ip = "255.255.255.255";
    char * msg = "Hello World!";

    struct sockaddr_in si;
    si.sin_family = AF_INET;
    si.sin_port   = htons( 4444 );
    inet_aton( ip, &si.sin_addr.s_addr );

    /* send data */
    size_t nBytes = …
Run Code Online (Sandbox Code Playgroud)

linux networking udp network-programming dhcp

8
推荐指数
2
解决办法
2万
查看次数

标签 统计

dhcp ×1

linux ×1

network-programming ×1

networking ×1

udp ×1