Сокет - В доступе отказано в C
-
28-10-2019 - |
Вопрос
Я пытаюсь получить запись MX с DNS-сервера в C. Моя проблема в том, что каждый раз, когда я вызываю sendto или recvfrom, я получаю ошибку Permission denied. (IDE - Xcode 4, Mac OS X Lion) До этого момента я действительно ничего не делал на C, но мне это нужно для задания. «Вдохновение» от http:// www.binarytides.com/blog/dns-query-code-in-c-with-linux-sockets/ Мой код на данный момент:
родовое словоРешение
Функция inet_addr
принимает IP-адрес в строковой форме, а не имя хоста.Попробуйте заменить "ns1.sil.at"
на его IP-адрес, "213.129.232.1"
Другие советы
В дополнение к ответу @ joni-salonen вам необходимо привязать сокет.
Используйте вызов функции bind
.
Ему нужен код генерирующего кода, который идентифицирует локальную сторону сокета.Вы можете инициализировать его, используя семейство struct sockaddr_in
, порт 0 и адрес AF_INET
.