因此,我试图从udp端口1900打开的服务器获取响应。
这是我输入的命令,是我发送的数据:
root$ nc -uvv <ip of server> 1900
M-SEARCH * HTTP/1.1
HOST:239.255.255.250:1900
MAN:"ssdp:discover"
MX:5
ST:ssdp:all
但是我没有从服务器得到任何响应,至少没有响应输出到屏幕上。我确定该IP上的udp端口1900已打开。如果有人可以提供任何帮助来打开udp端口1900的服务器的响应,将不胜感激。 谢谢
答案 0 :(得分:0)
此处使用的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 ...