6

http://www.mono-project.com/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 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 でも、登録したサービスが見つかりません。

ありがとう!

4

5 に答える 5

7

また、 Mono.Zeroconfプロジェクト ページで提供されているバイナリを使用して、Windows で使用するソースからライブラリを構築しようとしましたが、他のクライアントが見つけられるサービスを公開できませんでした。サイトのサンプル コードと提供されている MZClient の両方を試しました。

もう少し掘り下げた後、Mono.Zeroconf ライブラリを使用するプロジェクトを見つけました。Google Code のGrowl for Windowsプロジェクト (最新バージョン 0.9.0 のようです) にチェックインされたバイナリを使用することで、サンプル コードと MZClient の両方で検索可能なサービスを正常に公開できました。

したがって、明らかな回避策は、そのプロジェクトからバイナリ (Mono.Zeroconf および Mono.Zeroconf.Providers.Bonjour) を取得し、プロジェクトによって提供されるものの代わりにそれらを使用することです。

于 2009-11-29T21:54:29.670 に答える
3

mono-project.com/Mono.Zeroconf のバイナリは古く、この問題を引き起こすコードがまだ含まれています。最新のコード (すべての修正を含む) はこのリンク にありますが、自分でコードをコンパイルする必要があります。

于 2012-08-06T16:58:33.517 に答える
2

次のリンクからソースを更新した後に再コンパイルすると、問題が解決しました

https://github.com/mono/Mono.Zeroconf/tree/master/src

于 2012-12-14T04:31:58.003 に答える
2

サービスを公開することもできませんでした。コードを調べたところ、UPort セッターである Service.cs にバグがあります。

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

そのはず

this.port = (ushort) IPAddress.HostToNetworkOrder((short) value);
于 2010-04-10T22:34:32.797 に答える
1

彼は mzclient を使用して、上記の Mono.Zeroconf コードをテストしています。Mono.Zeroconf の全体的なポイントは、クロスプラットフォーム、複数の mDNS プロバイダーのサポート (Avahi および Bonjour) を提供することです。

EntryGroup DBus Avahi API に問題があるようで、Mono.Zeroconf で調べています。ここに解決策を投稿し、問題が判明したら新しい Mono.Zeroconf リリースを作成します (私はプロジェクトのメンテナーです)。

于 2009-03-30T18:33:34.383 に答える