Введение в UDP в Dart
Протокол UDP передает отдельные датаграммы - блоки
байтов с адресом получателя. Соединение заранее не
открывают: каждый пакет несет хост и порт назначения.
На виртуальной машине Dart для этого служит
RawDatagramSocket из библиотеки
dart:io.
Приемник слушает свободный порт: сокет создают с
номером 0, система выдает значение через
port. Отправитель шлет текст на
InternetAddress.loopbackIPv4 и этот порт.
Текст кодируют через utf8.encode, на приеме
собирают строку через utf8.decode из
поля data датаграммы.
Оба конца удобно держать в одном main:
приемник подписывается на listen и читает
событие RawSocketEvent.read, отправитель
вызывает send. После обмена сокеты
закрывают через close.
Примеры этого раздела рассчитаны на виртуальную
машину Dart на компьютере. В браузере и в DartPad
библиотеки dart:io нет, поэтому код
нужно проверять локально через dart run.