C# 如何使用Mono.ZeroConf注册服务?
我试图在测试ZeroConf样本 我正在运行OpenSuse 11和Mono 2.2 我的服务器代码是: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
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当修复程序从链接提供的源代码编译时,它肯定是。。。