В Java данные, которые планируется отправить клиентам по протоколу UDP, упаковываются в объект класса
DatagramPacket. В виде массива байтов их передают в конструктор.Для отправки и получения информации используется
DatagramSocket. Он похож на ServerSocket, который применяют для создания TCP-сервера. Для приёма сообщений используется блокирующий метод receive, для отправки – send. Примечательно, что оба метода принимают DatagramPacket параметром. В случае receive его байтовый массив заполняется пришедшими данными.Для реализации клиентской стороны используется тот же самый
DatagramSocket. Просто он создается несвязанным (unbound) – в его конструкторе не указывается порт. Адрес и порт, на которые нужно отправить сообщение, устанавливаются через конструктор DatagramPacket.В Java NIO доступна версия UDP-сокета в виде канала –
DatagramChannel.