Вам придется переопределить функцию equals (вместе с другими), чтобы использовать ее с пользовательскими классами.
Метод equals сравнивает объекты.
Двоичный оператор ==
сравнивает адреса памяти.
Если пакет ответа не получен в течение определенного промежутка времени, запрос повторно отправляется. Дэн Бернстайн предполагает, что большинство клиентов будут повторять до четырех раз.
Существует два способа решить, что датаграмма UDP была потеряна. Не является полностью надежным.
ICMP_UNREACH_PORT
, ICMP_UNREACH_HOST
или ICMP_UNREACH_HOST_PROHIB
. Но не только эти сообщения редко отправляются и подвергаются самой потере, но иногда их можно получить, даже когда сообщение прошло успешно. В лучшем случае, если вы получите сообщение ICMP, вы можете подумать об этом как о том, что могло бы произойти. Большинство реализаций DNS используют короткий тайм-аут, потому что дублирование не имеет большого значения. После нескольких повторов на один DNS-сервер он попробует другой (при условии наличия нескольких серверов). Большинство реализаций также будут кэшировать информацию о том, какие серверы отвечают, а какие нет.