Используемый здесь HTTPU основан на HTTP, и поэтому конец строки должен быть CR LF, а не простым LF, как в вашем случае - хотя серверы могут игнорировать это.Кроме того, заголовок запроса должен также заканчиваться строкой, состоящей только из CR LF - хотя серверы тоже могут это игнорировать.Но важно, чтобы весь запрос содержался в одном сообщении UDP, поскольку UDP - это дейтаграмма, а не потоковый протокол, такой как TCP.Только если вы просто введете запрос на терминале, nc создаст новый пакет для каждой введенной вами строки.
Это работает для меня, если весь запрос помещается в файл (с соответствующим CR LF в качестве конца строкии пустая строка в качестве конца заголовка), а затем передать его в nc:
cat request | nc -uvv <ip-address> 1900
...
HTTP/1.1 200 OK
LOCATION: http://.../igd2desc.xml
SERVER: FRITZ!Box ...