В этом случае «без соединения» относится к тому факту, что UDP не выполняет квитирование для настройки своего соединения. а также нет подтверждения приема пакетов, которые отправляются, если только серверный протокол не был разработан для их отправки, поэтому UDP имеет подключенные сокеты. Не то же самое.
Хотя DatagramSocket имеет метод подключения, API сообщает:
Если удаленный пункт назначения, к которому подключен сокет, не существует или недоступен по другим причинам, и если для этого адреса был получен недоступный для ICMP-пакета пакет, то последующий вызов для отправки или получения может вызвать исключение PortUnreachableException. Обратите внимание, что нет гарантии, что будет сгенерировано исключение.
Таким образом, вы можете отправлять данные по адресу и не указывать, что соединение на самом деле отсутствует.
все зависит от реализации ОС, например, в Linux есть способ установить соединение для оптимизации маршрутов http://man7.org/linux/man-pages/man7/udp.7.html#DESCRIPTION для повышения производительности, поскольку UDP не использует будущие маршруты, поэтому если Connect вызывается заранее, он сможет значительно повысить производительность, вы можете прочитать больше об этом в этом ответе , который конкретно расскажет о UDP в Linux