Внеполосное (UDP) программирование
При внеполосном UDP-программировании команды и ответы отправляются в виде UDP-датаграмм, по одной команде или ответу в датаграмме. Как объяснено в разделе сетевое программирование, DS принимает команды на двух UDP-портах - 65535 и 32767. Ответ на конкретную команду всегда отправляется на IP-адрес и номер порта, с которых была получена эта команда.
Поскольку каждая команда и каждый ответ передаются в отдельной UDP-датаграмме, дополнительная инкапсуляция (например, использование символов STX и CR, как в последовательных командах и ответах) не нужна.
Ещё одна возможность DS - приём и обработка нескольких внеполосных команд. Узел сети может отправить до восьми таких команд, и DS примет и обработает их все по одной. Это существенно повышает скорость программирования DS по сети.
Поскольку доставка UDP-пакетов не гарантирована и пакеты могут прийти не по порядку, DS поддерживает необязательное поле идентификатора команды. Это поле может быть длиной до четырёх ASCII-символов и содержать любые символы из диапазона 0-9 и A-z. Поле ID добавляется в конец самой команды, а в качестве разделителя используется символ '|' (ASCII-код 166). Когда DS получает команду, содержащую поле ID, он выдаёт ответ с тем же полем ID в конце. Отправляя команды с меняющимся идентификатором, узел сети может сопоставлять команды и ответы.
Ещё раз: поле ID добавляется в конец всех данных команды, включая все поля команды (обязательные или необязательные), описанные для отдельных команд. Например, команда Parameter (P) может содержать необязательное поле пароля, поэтому ID команды добавляется после этого поля (когда оно присутствует):
Узел-->DS: PBR4/123pwd|1925
В приведённом примере пароль - «123pwd».