2013-08-23 125 views
0

我正在尝试为Windows Phone 8做一个简单的DLNA/UPnp应用程序。 我现在得到的是一个“设备浏览器”应用程序,它通过Udp在特定端口广播XML并获得所有DLNA设备的响应。UPnp请求Windows Phone 8

接下来我要做的是向这些设备之一发送请求。 它必须通过Udp(与UPnp兼容)并且请求也是XML。 我的问题是,当我发送广播消息,我用这个:

sendEvent = new SocketAsyncEventArgs(); 
sendEvent.RemoteEndPoint = new IPEndPoint(IPAddress.Parse("239.255.255.250"), 1900); 
[...] 

但在请求(因为我没理解好),我必须把它发送到ADRESS,如:

http: //19...:2869/upnphost/udhisapi.dll?event=uuid:9f7f98d8-2e8e-495c-9126-02a9f8d8b253+urn:upnp-org:serviceId:ContentDirectory

这是作为听。

我不知道如何在Windows手机上实现这一点,因为我认为WebClient通过TCP。 任何想法?

在此先感谢

+0

如果您想调用设备上的操作,您需要通过TCP发送SOAP请求。一般而言,您的术语相当混乱。您没有足够详细地了解UPnP来编写自己的堆栈,而是考虑使用现有的UPnP堆栈吗? – simonc

回答

0

从您的网址行推断:

http ://19...:2869/upnphost/udhisapi.dll?event=uuid:9f7f98d8-2e8e-495c-9126-02a9f8d8b253+urn:upnp-org:serviceId:ContentDirectory

你想订阅ContentDirectoryService的三项赛在Windows Media服务器。

我明白SUBSCRIBE ABS_PATH HTTP/1.1ABS_PATH真的混淆了许多senerio,对一些标准的HttpClient实现通常只接受URL,并解析成HOSTREL_PATH

不熟悉C#,但在此Is there a way to do a PUT with WebClient?有一种方法可以覆盖WebClient.UploadString方法,因此您可以编写自己的方法和路径。