2009-03-01 11 views
5

मैं ज़ीरोकॉन्फ़ नमूना को http://www.mono-project.com/Mono.Zeroconf पर परीक्षण करने का प्रयास कर रहा हूं।Mono.ZeroConf के साथ एक सेवा कैसे पंजीकृत करें?

मैं ओपनस्यूज 11 और मोनो 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 के साथ अपने पंजीकृत सेवा नहीं मिल रहा।

धन्यवाद!

उत्तर

1

वह ऊपर अपने Mono.Zeroconf कोड का परीक्षण करने के लिए mzclient का उपयोग कर रहा है। Mono.Zeroconf का पूरा बिंदु क्रॉस प्लेटफॉर्म, एकाधिक एमडीएनएस प्रदाता समर्थन (अवही और बोनजोर) प्रदान करना है।

एंट्री ग्रुप डीबुस अवही एपीआई के साथ एक मुद्दा प्रतीत होता है और मैं इसे मोनो.जेरोकॉन्फ़ में देख रहा हूं। जब मैं इस मुद्दे को समझता हूं तो मैं यहां एक समाधान पोस्ट करूंगा, साथ ही एक नया मोनो। जेरोकॉन्फ़ रिलीज (मैं प्रोजेक्ट का रखरखाव हूं) बनाउंगा।

+2

मैं एक ही मुद्दा है हल किया। तब से लगभग 2 साल। किसी भी अद्यतन? – Marek

6

मैंने Mono.Zeroconf प्रोजेक्ट पेज पर प्रदान की गई बाइनरी का उपयोग करने और विंडोज़ पर उपयोग के लिए स्रोत से libs का निर्माण करने का प्रयास किया है और अन्य क्लाइंट द्वारा खोजने योग्य सेवा प्रकाशित करने में असमर्थ था। मैंने साइट पर उदाहरण कोड और MZClient दोनों प्रदान किए।

थोड़ा और खुदाई करने के बाद मुझे एक परियोजना मिली जो मोनो.जेरोकॉन्फ लिब्स में उपयोग की गई। Google Code पर Growl for Windows प्रोजेक्ट में चेक की गई बाइनरी का उपयोग करके (जो नवीनतम संस्करण 0.9.0 प्रतीत होता है) मैं नमूना कोड और MZClient दोनों के साथ एक खोजने योग्य सेवा सफलतापूर्वक प्रकाशित करने में सक्षम था।

तो उस परियोजना से बाइनरी (मोनो। जेरोकॉन्फ़ और मोनो। जेरोकॉन्फ.प्रोवाइडर। बोनजोर) को पकड़ने के लिए एक स्पष्ट कार्य होगा और परियोजना द्वारा प्रदान किए गए लोगों के बजाय उन लोगों का उपयोग करें।

+1

इसके लिए देख रहे लोगों के लिए, आप यहां डीएलएल फाइलें पा सकते हैं: https://github.com/briandunnington/growl-for-windows/tree/master/Growl/Growl.Daemon/Third%20Party%20Assemblies – twig

+0

संकलित हैं डीएलएल 7 साल पहले वर्तमान से? – ScottN

2

मैं या तो प्रकाशित सेवा प्राप्त करने में सक्षम नहीं था। मैं कोड के माध्यम से देखा और वहाँ Service.cs में, UPort सेटर एक बग है:

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

यह

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

यह भ्रामक है, int रूपांतरण के लिए ushort – Marek

3

mono-project.com/Mono.Zeroconf पर बाइनरी होना चाहिए बाहर हैं तिथि और अभी भी कोड है जो इस समस्या का कारण बनता है। सबसे हालिया कोड (सभी फिक्स के साथ) this link पर है लेकिन आपको कोड को संकलित करने की आवश्यकता है।

1

नीचे दिए गए लिंक से स्रोत को अद्यतन करने के बाद फिर कंपाइल मुद्दा

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

+1

ओवरफ़्लो नहीं हो सकता है केवल लिंक का जवाब स्टैक ओवरफ़्लो में आपका स्वागत नहीं है। – hims056

+1

क्षमा करें..लेकिन लिंक से पहले टिप्पणी मैं बस इतना कहना चाहता था .. –

+0

@ hims056 जब फिक्स लिंक द्वारा प्रदान किए गए स्रोत से संकलित हो रहा है, तो यह सुनिश्चित है कि ... – zezba9000

संबंधित मुद्दे