2009-03-01 17 views
5

ZeroConf örneğini http://www.mono-project.com/Mono.Zeroconf adresinden test etmeye çalışıyorum.Mono.ZeroConf ile bir hizmet nasıl kaydedilir?

OpenSuse 11 ve Mono 2.2'yi çalıştırıyorum.

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(); 
     } 
    } 
} 

Ama örnek istemci tarayıcı kodu ile ne de mzclient ile benim kayıtlı hizmeti bulamadığı:

Sunucum kodudur.

Teşekkürler!

cevap

1

Yukarıdaki Mono.Zeroconf kodunu test etmek için mzclient kullanıyor. Mono.Zeroconf'un tüm noktası, çapraz platform, çoklu mDNS sağlayıcı desteği (Avahi ve Bonjour) sağlamaktır.

EntryGroup DBus Avahi API'sinde bir sorun var gibi görünüyor ve Mono.Zeroconf'da araştırıyorum. Burada bir çözüm yayınlayacağım ve konuyu anladığımda yeni bir Mono.Zeroconf sürümü (projenin koruyucusuyum) yapıyorum.

+2

Ben aynı sorunu var çözüldü. O zamandan beri neredeyse 2 yıl. Herhangi bir güncelleme? – Marek

6

Ayrıca, Mono.Zeroconf proje sayfasında sağlanan ikili dosyaları kullanmayı ve Windows'ta kullanmak üzere lib'leri kaynaklardan oluşturmayı denedim ve diğer istemciler tarafından değiştirilebilen bir hizmeti yayınlayamadım. Hem site kodunu hem de sağlanan MZClient'i denedim.

Biraz daha kazdıktan sonra Mono.Zeroconf libs için kullanılan bir proje buldum. Google Code'da (en son sürüm 0.9.0 olarak görünen) Growl for Windows projesine kontrol edilen ikili dosyaları kullanarak, hem örnek kod hem de MZClient ile birlikte bir gönderilebilir hizmeti başarıyla yayınlayabildim.

Öyleyse, bu projeden binaryleri (Mono.Zeroconf ve Mono.Zeroconf.Providers.Bonjour) kapmak ve proje tarafından sağlananların yerine kullanmak gibi görünen bir çalışma olacaktır.

+1

Bunun için arayanlar için DLL dosyalarını burada bulabilirsiniz: https://github.com/briandunnington/growl-for-windows/tree/master/Growl/Growl.Daemon/Third%20Party%20Assemblies – twig

+0

Derlenmiş mi 7 yıl önce DLLs mevcut? – ScottN

2

Ayrıca yayınlanmış bir hizmet alamadım. Ben kod üzerinden baktı ve bir hata, UPort setter Service.cs içinde vardır:

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

Dışarı olan mono-project.com/Mono.Zeroconf de ikili

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

bu yanıltıcıdır, int dönüşümü için ushort değeri taşmayabilir – Marek

3

olmalıdır tarih ve hala bu soruna neden olan kod içerir. En son kod (tüm düzeltmelerle birlikte) this link dır, ancak kodu kendiniz derlemenizi gerektirir. Aşağıdaki bağlantıdan kaynağını güncellemeden sonra yeniden derlenerek

İlgili konular