Александр Терентьев (aterentiev) wrote,
Александр Терентьев
aterentiev

Categories:

DNS-клиент у Ардуино

Запарился я с этим W5100. Такое ощущение, что никто на нем больше трех строчек ничего не делал...

Ваяю умный контроллер. Пока что делает 3 вещи - часы на DS3231, вебсервер и NTP-клиент с DNS-ресолвером, т.к. NTP-сервер беру из пула pool.ntp.org

Каждая часть сама по себе работает без проблем. Вебсервер отдает данные, часы тикают, NTP получает время и пишет его в RTC. Проблема выплыла во время отладки. После старта железка однократно забирает время с сервера и делает это раз в минуту (временно, потом будет раз в сутки). Если больше ничего не делать - все ОК, раз в минуту ресолвится новый IP, забирается время, устанавливаются часы. Если же между NTP-запросами зайти пару раз с браузера на вебсервер - начинается странное. Перестает работать DNS и NTP сервер больше не ресолвится. При этом, если взять старый IP - время запрашивается, NTP server отвечает.

При этом DNS отваливается с ошибкой "TIMEOUT". Пытается 3 раза по 5 секунд - и вываливается. И с этого момента почти всегда (именно "почти", потому что в 1-2% случаев срабатывает "самоизлечение" и вдруг работает снова) DNS не работает. И пересоздание обьекта (delete DNS; DNS = new DNSClient;) не помогает.

Такое ощущение, что что-то с сокетами, их в чипе всего 4. Но где?.. Дебаг говорит, что при DNS-запросе минимум один сокет свободен. Почему-то вебсервер сьедает иногда два. Но не всегда. Обычно один в listening на 80 порту, второй - пользуется для UDP запросов на NTP Server, третий - 53й порт для DNS-ресолвинга и четвертый свободен.

Странно все это.
Tags: arduino, Программизмы, Размышления
Subscribe

  • (no subject)

    Кстати, не в курсе ли мои воображаемые виртуальные друзья, может ли USB hid девайс узнать текущую установленную громкость на компе? Что он ей…

  • О полке и мебели под размер

    Давно хотелось мне завести полочку в кабинет над столом. Я рассматривал много вариантов, начиная с простых стеллажей, заканчивая самоделками. И в…

  • Доработка инструмента

    При сборке полочки для стола (а про это я еще напишу) внезапно обнаружилось, что если использовать струбцины для удержания частей под 90° и…

  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 15 comments

  • (no subject)

    Кстати, не в курсе ли мои воображаемые виртуальные друзья, может ли USB hid девайс узнать текущую установленную громкость на компе? Что он ей…

  • О полке и мебели под размер

    Давно хотелось мне завести полочку в кабинет над столом. Я рассматривал много вариантов, начиная с простых стеллажей, заканчивая самоделками. И в…

  • Доработка инструмента

    При сборке полочки для стола (а про это я еще напишу) внезапно обнаружилось, что если использовать струбцины для удержания частей под 90° и…