我一直试图在我的8.1手机应用程序中使用奥诺沃特尼氏Zeroconf包。它发现我正在寻找的服务,但没有任何TXT记录回来。
在iOS中,我使用的是NSNetServiceBrowser和安卓( JmDNS )。两个人都给了我我需要的一切,所以我知道这不是服务。
这是我使用的代码:
public async Task StartDiscovery()
{
Action<IZeroconfHost> callback = new Action<IZeroconfHost>((IZeroconfHost host) =>
{
Debug.WriteLine(host.Services.Count);
});
IReadOnlyList<IZeroconfHost> results =
await ZeroconfResolver.ResolveAsync(SERVICE_TYPE, new TimeSpan(0, 0, 10), 4, 2000, callback);
Debug.WriteLine(results);
}当我在回调中设置一个断点时,这就是我所看到的。

我不知道我是不是做错了什么,或者图书馆没有处理好我的情况。无论哪种方式,任何帮助都将不胜感激。
Note:几天前我在Zeroconf GitHub回购网站上发布了一个问题,但还没有收到回复。
发布于 2015-04-13 18:37:27
我没有使用NuGet包,而是将代码拖到我的项目中,并设置了几个断点。
在ZeroconfResolver.cs中,当我将附加词更改为答案时,就会得到服务的txt记录。
ZeroconfResolver.cs 249号线
// Get the matching service records
var serviceRecords = response.Answers
.Where(r => r.NAME == ptrRec.PTRDNAME)
.Select(r => r.RECORD)
.ToList();编辑:合并附加词和答案列表的是一个更好的方法。
List<RR> resourceRecords = new List<RR>().Union(response.Answers).Union(response.Additionals).ToList();
// Get the matching service records
var serviceRecords = resourceRecords
.Where(r => r.NAME == ptrRec.PTRDNAME)
.Select(r => r.RECORD)
.ToList();https://stackoverflow.com/questions/29605456
复制相似问题