SSDP使用M-SEARCH获取共享文件夹列表?

时间:2010-09-22 07:29:34

标签: c++ udp multicastsocket

我正在使用SSDP使用M-SEARCH发送发现请求以获取存在的服务列表。 我的要求就像我想获得该服务器中存在的共享文件夹列表。

目前,我以这种格式发送此请求:

"M-SEARCH * HTTP/1.1\r\n"
    "Host: 239.255.255.250:1900\r\n" 
    "Man: \"ssdp:discover\"\r\n"
    "ST:upnp:rootdevice\r\n"
    "MX:3\r\n"
    "\r\n";

我得到了这些参数的响应:

ST:upnp:rootdevice
USN:uuid:122261ae-7c37-4234-9366-ed5286752f2b::upnp:rootdevice
Location:http://172.24.17.221:2869/upnphost
Cache-Control:: max-age = 900
Server:: Linux

我还想拥有该服务器上的共享文件夹列表。 我怎么能得到那个? 我需要指定的任何其他参数? 欢迎任何代码段或想法。

1 个答案:

答案 0 :(得分:0)

据我所知,不可能只使用SSDP获取任何共享文件夹。 SSDP为您提供服务列表,但轮到您连接到服务并且"问"对于共享文件夹。

在您的示例中,您需要连接到:

Location:http://172.24.17.221:2869/upnphost

这将为您提供包括支持的服务的设备配置。您将需要实现您想要/需要获取共享文件夹的服务协议。例如,ContentDirectory服务提供文件夹等。

这比简单地发出M-SEARCH请求要多得多。