2009-11-26 3 views
7

Sto provando a giocare con UPnP. Nello specifico, sto cercando di esplorare la libreria dei contenuti di un PS3 Media Server.Libreria UPnP per .Net

Ho provato upnp.dll (una libreria COM fornita con Windows) e l'ho trovato facile da usare. Posso scoprire i dispositivi e guardare i loro servizi abbastanza facilmente, tuttavia lancia un'eccezione quando provo ad accedere ai servizi del server multimediale (altri dispositivi, come il mio router e Windows Media Player, funzionano bene). Un po 'di ricerca in rete ha rivelato che upnp.dll non è ben implementato e altre persone hanno lo stesso problema e non hanno trovato soluzioni.

Quindi ho cercato un'alternativa e ho trovato Mono.Upnp. Sembra promettente ma non riesco a farlo funzionare.

Ho visto menzioni dell'SDK UPnP di Intel, ma questo sembra essere deprecato e non riesco a trovare un pacchetto scaricabile.

Sono in perdita. Non c'è alternativa a upnp.dll?

risposta

5

Ho deciso di mordere il proiettile e arrotolare il mio. Non è così difficile. Semplice udp + xml + sapone.

Questo collegamento è stato molto utile per me:
http://www.upnp.org/download/UPnP_Device_Architecture_Generic_20000710.ppt

Per le specifiche di directory del contenuto di un media server, vedere: http://www.upnp.org/standardizeddcps/documents/ContentDirectory1.0.pdf

La fonte Mono.Upnp era anche disponibile.

Non ho intenzione di rendere questo open source in quanto non sarà un'implementazione completa (sto facendo il minimo indispensabile per il mio progetto).

+0

SO è lì per aiutare gli altri. Questa risposta non aiuta nessuno. Sicuramente non dovrebbe essere accettato. –

1

Potrebbe essere utile consultare la parte pertinente del codice sorgente MediaPortal. Inparticolare, il progetto UPnP potrebbe essere utile.

+0

Grazie. È piuttosto interessante, ma il codice è MASSIVO, con componenti sparsi su più progetti. Sto facendo fatica a dare un senso a tutto questo. Non sono sicuro se sarebbe possibile estrarre componenti UPnP in modo utilizzabile. –

+0

Immagino che potresti chiedere agli sviluppatori la fattibilità. A proposito, hai visto questo http://stackoverflow.com/questions/333079/is-there-a-up-p-library-for-net-c-or-vb-net/346941#346941 da una domanda SO simile . – si618

2

Informazioni su Intel UPnP SDK, è stato recentemente aggiornato e rinominato in Developer Tools For UPnP. Le modifiche più importanti sono ora include il codice sorgente per tutti gli strumenti e il generatore di codice, la fonte è sotto la licenza Apache 2.0 e il supporto IPv6 è stato aggiunto in più punti.

Vedere blog post 1 e blog post 2 di Intel Ylian Saint-hilaire.

5

Si potrebbe anche considerare ohNet. È concesso in licenza BSD e dispone di porte per Windows, Linux, iOS, Android e Mac e binding di linguaggio per C++, C#, Java, JavaScript e C.

(Devo notare che sono stato coinvolto nello sviluppo di ohNet)

+1

Grazie mille! ohNet è davvero la migliore delle implementazioni UPnP per me. Mi hai risparmiato molto tempo con la tua risposta. Grazie ancora! –

+0

Dead link :-(... – nashwan

+0

@nashwan Grazie per aver individuato questo. Ora corretto. – simonc