2010-04-29 19 views
7

Mam aplikację na iPhone'a, która jest publikowana za pośrednictwem Bonjour. Mac odpowiednik działa, synchronizują i wymieniają dane. Teraz muszę przenieść tę małą aplikację na Maca do Windowsa. Zdecydowałem się na .NET (ponieważ to właśnie wiem).Korzystanie z usługi Bonjour Apple od .NET?

Aplikacja nie jest skomplikowana, ale jestem na wczesnym etapie. Muszę przeglądać/odkrywać usługi Bonjour. Do tego zadania pobrałem Mono.Zeroconf i najnowszy pakiet SDK firmy Apple (który zawiera kilka sampli C#).

Naprawdę nie wklejam kodu, ponieważ tak naprawdę kopiuję/wklejam próbki. W rzeczywistości Mono.Zeroconf ma MZClient.exe, którego można użyć do przetestowania "całego API".

Mój pierwszy test był - w tym samym oknie - otwórz dwa cmd.exe i uruchom MZclienta rejestrującego usługę, a po drugiej uruchom go i "odkryj".

To nie działa.

Oto serwer:

C:\MZ>MZClient -v -p "_http._tcp 80 mysimpleweb” 

*** Registering name = 'mysimpleweb', type = '_http._tcp', domain = 'local.' 
*** Registered name = ‘mysimpleweb’ 

Z drugiej terminalu:

c:\MZ>MZClient -v -t "_http._tcp" 
Creating a ServiceBrowser with the following settings: 
    Interface   = 0 (All) 
    Address Protocol = Any 
    Domain   = local 
    Registration Type = _http._tcp 
    Resolve Shares = False 

Hit ^C when you're bored waiting for responses. 

I to wszystko. Nic się nie dzieje. Oczywiście próbowałem z różnymi usługami bezskutecznie. Nawet grał trochę z tą domeną. Pamiętaj, że to jest to samo pudełko. Próbowałem na innym komputerze, ponieważ była to maszyna wirtualna w systemie OSX, więc poszedłem do przodu i wypróbowałem "czystą" wygraną XP. Nic.

uwaga : Mam Apple Bonjour Service (działa i działa), a także Apple SDK (zainstalowany później).

Biorąc pod uwagę, że to nie zadziałało, zdecydowałem się wypróbować Apple SDK, który ma Interop i kilka wstępnie skompilowanych próbek (i kod źródłowy).

Krótka historia, ani mDSNBrowser.exe, ani SimpleChat.exe nie działają/widzą/nie odkrywają niczego.

Moje pudełko to Win7 w wersji Parallels, ale to nie wpływa na nic, biorąc pod uwagę, że rodzimy XP wykazuje te same problemy.

Co ja robię tak strasznie źle?

+0

Tylko dla poprawności, wierzę rodzaju usługi powinny kończyć się kropką, więc byłoby to „_http._tcp." – Thompsonian

+0

Miałem pewne problemy z tym, że nie znalazłem nic, może to być komunikat, który nie działa poprawnie dla twojego mDSNBrowser, ważne jest również to, co zarejestrujesz, – Yoda

Odpowiedz

4

Użyłem Zeroconf NetServices dla Zeroconf wewnątrz .NET. Zakładając, że pozwalasz Bonjour przez zaporę sieciową i sprzęt sieciowy pozwala na multiemisję, największym problemem zawsze była niewiarygodność usługi Apple Bonjour. Rutynowo działający kod zakończy się niepowodzeniem, a rozwiązaniem będzie ponowne uruchomienie usługi Bonjour. Sprawdź sprzęt sieciowy, sprawdź zaporę ogniową, ale w końcu zrestartuj Bonjour kilka razy. Nie zawsze działa to przy pierwszej, drugiej lub trzeciej próbie itp.

+0

Dzięki Matthew, próbowałem i udało mi się zobacz sesje "SimpleChat" utworzone za pomocą Apple Sample z MZClient z wiersza poleceń Zmodyfikowałem SimpleChat, aby korzystać z http tcp i p2pchat udp, i widzę sesje. Będę dalej badał. To, co wydaje się nie działać, sesje utworzone * z * mzclient (co mnie naprawdę nie obchodzi) –

Powiązane problemy