Я использую UdpClient для отправки пакетов на сервер. Я инициализирую UdpClient при создании моего объекта Sender, используя конструктор (имя хоста, порт). Созданный таким образом, UdpClient разрешает имя хоста в IP-адрес. Последующие вызовы объекта UdpClient используют IP-адрес.
К сожалению, если используемый псевдоним DNS обновляется через систему DNS, чтобы указывать на другой IP-адрес, это изменение не отражается в моем объекте отправителя, пока он не будет создан заново.
Как лучше всего, чтобы мой объект Sender своевременно реагировал на изменения DNS? Производительность очень важна. Я могу придумать несколько решений:
- Выполнение разрешения DNS для каждого вызова (т. Е. С использованием перегрузки Send, которая принимает параметр имени хоста). Это может быть довольно быстро из-за кеша DNS в Windows, я не знаю.
- Наличие какого-либо средства проверки DNS, запущенного в потоке таймера, для периодической проверки, разрешает ли псевдоним DNS другой IP-адрес. Если это произойдет, он каким-то образом обновит UdpClient для использования нового IP-адреса. Однако я не хочу блокировать объект UdpClient при каждом вызове - как я уже говорил, производительность важна.
У кого-нибудь есть опыт в этом деле?