EADDRNOTAVAIL при привязке 127.0.0.1 на локальном хосте?
Я собираюсь errno==49 (EADDRNOTAVAIL)
при попытке UDP-bind()
до 127.0.0.1:47346 под управлением Mac OS X на G5 (PowerPC с прямым порядком байтов). Что-то мешает мне сделать это? Я пробовал другие адреса и порты (192.168.1.2 и порт 47346), но безуспешно.
Вот распечатка GDB моего sockaddr_in:
$1 = {
sin_len = 0 '\0',
sin_family = 2 '\002',
sin_port = 47346,
sin_addr = {
s_addr = 3232235778
},
sin_zero = "???\000\000??"
}
1 ответ
Решение
Вы также должны заполнить поле sin_len (с помощью sizeof(struct sockaddr_in), что должно сработать). Это поле не появляется на каждой платформе, но на котором оно существует, оно должно быть заполнено.
Кроме того, обязательно обнулите структуру перед использованием (но, очевидно, вы все равно это сделали).