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