Я пытаюсь получить многоадресные данные от определенного сетевого интерфейса в CentOS 5.5.
sd = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);
memset(&addr, 0, sizeof(addr));
addr.sin_family = AF_INET;
addr.sin_port = htons(1234);
addr.sin_addr.s_addr = htonl(INADDR_ANY);
bind(sd, (sockaddr*)&addr, sizeof(sockaddr_in));
setsockopt(sd, SOL_SOCKET, SO_BINDTODEVICE, "eth0", 5);
Но я получаю пакеты со всех интерфейсов.
Что не так?
setsockopt(sd, SOL_SOCKET, SO_BINDTODEVICE, "eth0", 4);
? (обратите внимание на 4 против 5). - person Thomas M. DuBuisson   schedule 25.09.2010