mnl_socket_bind с адресом setsockopt (…, SO_REUSEADDR | SO_REUSEPORT …) уже используется?

Я пытаюсь получить несколько сокетов для привязки к одному и тому же адресу / порту на одном компьютере, прослушивая многоадресные рассылки. Вот немного кода:

struct mnl_socket *nl;

nl = mnl_socket_open(NETLINK_USERSOCK);
if (NULL == nl) {
perror("mnl_socket_open");
exit(EXIT_FAILURE);
}

int one = 1;
if (setsockopt(nl->fd, SOL_SOCKET, SO_REUSEADDR | SO_REUSEPORT, &one, sizeof(int)) < 0)
{
printf("%s: setsockopt failed...\n", __func__);
}

std::printf("debugA2\n");

if (mnl_socket_bind(nl, groups, getpid()) < 0) {
printf("%s: mnl_socket_bind failed...\n", __func__);
perror("mnl_socket_bind");
mnl_socket_close(nl);
exit(EXIT_FAILURE);
}

Вызов «mnl_socket_bind» завершится ошибкой второй Время бежит.
Первоначально я не вызывал setsockopt (), но я ожидал, что, как только я сделаю этот вызов, проблема исчезнет, ​​но это не так. Ошибка: mnl_socket_bind: Address already in use

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]