gpt4 book ai didi

c - 我怎样才能在c linux的特定接口(interface)上收听广播?

转载 作者:太空狗 更新时间:2023-10-29 11:45:12 26 4
gpt4 key购买 nike

我现在可以通过这样做来收听我写的一个简单的广播服务器(它只是广播“你好”):

int fd = socket(PF_INET, SOCK_DGRAM, 0);
struct sockaddr_in addr;
memset(&addr, 0, sizeof(addr));
add.sin_family = AF_INET;
add.sin_port = htons(10074);
bind(fd, struct sockaddr*) &addr, sizeof(addr));

char buf[800];
recvfrom(fd, buf, sizeof(buf), 0, NULL, 0);

不过我想知道的是,上面的代码会使用什么接口(interface)?某种默认?以及如何更改收听广播的界面?我已经通过在 ip_mreqn 结构中设置 imr_addressimr_ifindex 在多播中看到它,但我不确定是否有等效的广播。

最佳答案

如果你想改变你监听的端口,你只需在你的sin_addr中选择一个特定的地址(你目前从memset 而不是显式分配 INADDR_ANY)。地址应该是您的 IP 地址之一,接口(interface)将自动从中选择。

关于c - 我怎样才能在c linux的特定接口(interface)上收听广播?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20100842/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com