Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/309.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何使用Mono.ZeroConf注册服务?_C#_Mono_Zeroconf - Fatal编程技术网

C# 如何使用Mono.ZeroConf注册服务?

C# 如何使用Mono.ZeroConf注册服务?,c#,mono,zeroconf,C#,Mono,Zeroconf,我试图在测试ZeroConf样本 我正在运行OpenSuse 11和Mono 2.2 我的服务器代码是: using System; using Mono.Zeroconf; namespace zeroconftestserver { class MainClass { public static void Main(string[] args) { RegisterService service = new Regis

我试图在测试ZeroConf样本

我正在运行OpenSuse 11和Mono 2.2

我的服务器代码是:

using System;
using Mono.Zeroconf;

namespace zeroconftestserver
{
    class MainClass
    {
        public static void Main(string[] args)
        {
            RegisterService service = new RegisterService ();
            service.Name = "test server";
            service.RegType = "_daap._tcp";
            service.ReplyDomain = "local.";
            service.Port = 6060;

            // TxtRecords are optional
            TxtRecord txt_record = new TxtRecord ();
            txt_record.Add ("Password", "false");
            service.TxtRecord = txt_record;

            service.Register();
            Console.WriteLine("Service registered!");
            Console.ReadLine();
        }
    }
}
但我找不到使用示例客户端浏览器代码或mzclient的注册服务


谢谢

他正在使用mzclient测试上面的Mono.Zeroconf代码。Zeroconf的整个要点是提供跨平台、多个MDN提供程序支持(Avahi和Bonjour)


EntryGroup DBus Avahi API似乎存在问题,我正在Mono.Zeroconf中对此进行研究。我将在这里发布一个解决方案,并在我发现问题后发布一个新的Mono.Zeroconf版本(我是该项目的维护者)。

我还尝试使用项目页面上提供的二进制文件,并从源代码构建libs以在Windows上使用,但无法发布其他客户端可以找到的服务。我在站点和提供的MZClient上尝试了示例代码

在进一步挖掘之后,我发现了一个用于Mono.Zeroconf libs的项目。通过使用GoogleCode(看起来是最新版本的0.9.0)项目中签入的二进制文件,我能够成功地发布带有示例代码和MZClient的可查找服务


因此,一个明显的解决办法是从该项目中获取二进制文件(Mono.Zeroconf和Mono.Zeroconf.Providers.Bonjour),并使用这些文件,而不是该项目提供的文件。

我也无法发布服务。我查看了代码,发现Service.cs(UPort setter)中有一个bug:

this.port = (ushort) IPAddress.HostToNetworkOrder((int) value);  //overflow, port is always 0
应该是

this.port = (ushort) IPAddress.HostToNetworkOrder((short) value);

mono-project.com/mono.Zeroconf上的二进制文件已经过时,仍然包含导致此问题的代码。最新的代码(包括所有修复程序)位于
但是需要您自己编译代码

从以下链接更新源代码后重新编译解决了此问题


我也有同样的问题。从那以后差不多两年了。任何更新?这是误导性的,ushort到int的转换不能溢出对于那些寻找它的人来说,你可以在这里找到DLL文件:7年前编译的DLL是最新的吗?@hims056当修复程序从链接提供的源代码编译时,它肯定是。。。