Ich schreibe eine C# -Bibliothek für die Philips Hue Lights. Ich versuche, die Basis-API-Wrapper im portablen .NET-Set zu schreiben, so dass ich diese Bibliothek für verschiedene Plattformen wie Windows 8/RT/WP wiederverwenden kann. Die API selbst ist komplett über HTTP mit REST, so dass HttpWebRequest
die meisten meiner Bedürfnisse erfüllen wird..NET Portable Class Library und UDP-Unterstützung
Die Netzwerkbrücke, die die Lichter selbst steuert, kann mit SSDP über UDP erkannt werden. Ich bin jedoch nicht in der Lage, UDP-Sockets in der Portable Class Library (PCL) zu verwenden.
Es ist kein System.Net.Sockets
verfügbar. Es gibt nichts im System.Net
Namespace, der es entweder erlauben würde. Ich habe eine DatagramSocket
in Windows.Networking.Sockets
aufgeführt, aber ich bin nicht in der Lage, diesen Namespace in Intellisense zu sehen.
Hat jemand eine Idee, wie ich UDP-Funktionalität für SSDP unter .NET PCL bekommen könnte?
Ich möchte wirklich nicht die Discovery-Funktionalität von der Core-Bibliothek trennen müssen.
Im Moment bin ich Targeting .NET 4.5 + SL 5 + WP 8 + .NET for Windows Store
. Ich hatte den Eindruck, dass Sockets noch verfügbar waren.
Ja, die Xbox 360 ist ** deaktiviert **. Ich kann nicht herausfinden, woraus genau die NCL bestehen soll. Jedes MSDN-Beispiel, das ich sehe, bezieht sich auf 'System.Net.Sockets', aber ich habe keinen Zugriff darauf in der _NET.PCL_. Ich fange an zu denken, dass ich den Entdeckungsteil zum tatsächlichen Programm bewegen muss, da ich UDP in irgendeiner Form auf eine tragbare Weise nicht erhalten kann. – Erik
Um das .NETCore-Profil anzupassen, muss eine Klasse * einige * Gemeinsamkeiten zwischen den Plattformen haben. Es gibt einfach keine, keine Socket-Unterstützung für XBox, WP8 und Store macht es völlig anders. Sie können PCL nicht verwenden, wenn UDP wichtig ist, müssen Sie eine Plattform auswählen. –
Ja, ich glaube, ich müsste Schnittstellen für die Kernarchitektur erstellen und dann jeden Satz auf der spezifischen Plattform für UDP-Netzwerke implementieren. Es scheint, dass "System.Net.Sockets" für traditionelle .NET-Anwendungen und "Windows.Networking.Sockets" für Windows Store-Anwendungen ist. – Erik