我在 UWP 项目中使用 Windows.Networking.ServiceDiscovery.Dnssd API 来注册 DnssdServiceInstance 以使用以下代码在网络上广播:
//Service Broadcast
_listener = new StreamSocketListener();
_listener.ConnectionReceived += _listener_ConnectionReceived;
await _listener.BindServiceNameAsync("56788");
string userid = SettingsHelper.GetSetting("userid").ToString();
_service = new DnssdServiceInstance(userid + "._listen._tcp.local",
NetworkInformation.GetHostNames().FirstOrDefault(x => x.Type == HostNameType.DomainName && x.RawName.Contains("local")),
UInt16.Parse(_listener.Information.LocalPort));
await _service.RegisterStreamSocketListenerAsync(_listener);
该服务创建得很好,但从未从网络中删除。我一直在用我的 DeviceWatcher 查看所有创建的实例。即使将 StreamSocketListener 配置和设置为 null。
更新:重新启动创建服务的计算机时,所有创建的服务都消失了..但不是当创建服务的应用程序关闭时
API中没有提到服务删除。这是一个错误还是我错过了什么?
谢谢