Я в настоящее время в состоянии слушать простой вещательный сервер я написал (который просто передает «привет») просто делать это:Как прослушивать трансляцию по определенному интерфейсу в c linux?
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);
Что интересно, хотя есть, какой интерфейс будет выше использовать? Какой-то дефолт? И как мне изменить интерфейс, на котором я слушаю трансляцию? Я видел это в многоадресной рассылке, установив imr_address
и imr_ifindex
в структуру ip_mreqn
, но я не уверен, есть ли эквивалент для трансляции.