.NET 可移植类库和 UDP 支持

2024-01-30

我正在为 Philips Hue Lights 编写一个 C# 库。我正在尝试在 .NET 可移植集中编写基本 API 包装器,这样我就可以在 Windows 8/RT/WP 等各种平台上重复使用该库。 API 本身完全通过 HTTP 使用 REST,因此HttpWebRequest将满足我的大部分需求。

可以使用 SSDP over UDP 来发现控制灯本身的网桥。但是,我无法找到在可移植类库(PCL)中使用 UDP 套接字的方法。

没有System.Net.Sockets可用的。里面什么也没有System.Net允许它的命名空间。我见过一个DatagramSocket列于Windows.Networking.Sockets但我无法在 Intellisense 中看到该名称空间。

有谁知道如何在 .NET PCL 下获得 SSDP 的 UDP 功能?

我真的不想将发现功能与核心库分开。

现在我的目标是.NET 4.5 + SL 5 + WP 8 + .NET for Windows Store。我的印象是套接字仍然可用。


WinRT 和 WPF 应用程序之间的套接字支持没有共同的交叉点,因此它在针对它们的 PCL 项目中不可用。

我有一个针对与 UDP 发现网络交互的 WPF 和 WinRT 的 PCL 库,我想出的最干净的实现涉及在 PCL 库中创建一个 IUDPSocket 接口,该接口定义用于发送/接收数据以及连接到多播组的成员。 WPF 应用程序使用 System.Net.Sockets.Socket 实现 IUDPSocket,而 RT 应用程序使用 Windows.Networking.Sockets.DatagramSocket 实现它。

我的发现网络客户端类(在 PCL 项目中定义)的构造函数采用一个委托,用于创建 IUDPSocket 的实例。我这样做而不是传入初始化的 IUDPSocket 实例,因此调用代码不必知道涉及哪个端口或地址。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

.NET 可移植类库和 UDP 支持 的相关文章

随机推荐