【问题标题】:Mono.Zeroconf service port is always set to 0Mono.Zeroconf 服务端口始终设置为 0
【发布时间】:2016-03-25 09:06:07
【问题描述】:

我正在尝试使用Mono.ZeroConf 进行服务发现。我可以正常发现服务,但是每个服务的端口总是设置为 0 而不是实际值。

我正在使用.NET 4ZeroConf 0.9.0,这是我的代码:

public MainWindow()
{
    serviceBrowser = new ServiceBrowser();
    serviceBrowser.ServiceAdded += ServiceAdded;
    serviceBrowser.Browse(0, AddressProtocol.Any, "_http._tcp.", "local");
}

private void ServiceAdded(object o, ServiceBrowseEventArgs args)
{
    Console.WriteLine("*** Found name = '{0}', type = '{1}', domain = '{2}'",
    args.Service.Name,
    args.Service.RegType,
    args.Service.ReplyDomain);
    args.Service.Resolved += ServiceResolver;

    if (args.Service.Name.Equals("MyService") && 
        args.Service.RegType.Equals("_http._tcp."))
    {
        args.Service.Resolve();
    }
}

private void ServiceResolver(object o, ServiceResolvedEventArgs args)
{
    IResolvableService service = o as IResolvableService;
    Console.Write("*** Resolved name = '{0}', host ip = '{1}', hostname = {2}, 
    port = '{3}', " + "interface = '{4}', address type = '{5}'",
    service.FullName, service.HostEntry.AddressList[0],
    service.HostEntry.HostName, service.Port,
    service.NetworkInterface, service.AddressProtocol);
}

当我使用MZClient 0.8.0 来发现服务时,所有端口值都符合预期,但是当我使用 0.9.0 时,会发生同样的事情。

如何获得正确的端口值?是因为 0.9.0 版本中的一些错误,还是其他原因?

【问题讨论】:

    标签: c# .net-4.0 mono bonjour zeroconf


    【解决方案1】:

    这是由于 Mono.Zeroconf 中的一个错误造成的,该错误已在 this pull request 中修复。

    在拉取请求被接受并再次发布 Nuget 包之前,您需要自己构建库。

    【讨论】:

      猜你喜欢
      • 2021-02-09
      • 1970-01-01
      • 1970-01-01
      • 2021-01-04
      • 2020-12-09
      • 2019-12-30
      • 1970-01-01
      • 1970-01-01
      • 2017-12-25
      相关资源
      最近更新 更多