2010-04-29 8 views
7

Tengo una aplicación para iPhone que se publica a través de Bonjour. La contraparte de Mac funciona, sincroniza e intercambia datos. Ahora tengo que llevar esa pequeña aplicación de Mac a Windows. He decidido ir con .NET (porque eso es lo que sé).¿Utiliza el servicio Bonjour de Apple de .NET?

La aplicación no es compleja, pero estoy en las primeras etapas. Necesito buscar/descubrir los servicios de Bonjour. Para esta tarea, he descargado Mono.Zeroconf y el último SDK de Apple (que incluye un par de muestras de C#).

No estoy pegando código porque estoy realmente copiar/pegar las muestras. De hecho, Mono.Zeroconf tiene un MZClient.exe que puede usarse para probar "toda la API".

Mi primera prueba fue la misma -en caja- dos cmd.exe abierta y lanzar una MZclient el registro de un servicio y por el otro, poner en marcha y “descubrirlo”.

No funciona.

Aquí está el servidor:

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

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

Por otro terminal:

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. 

Y eso es todo. No pasa nada. Por supuesto, he intentado con diferentes servicios en vano. Incluso jugó un poco con esa cosa de dominio. Recuerde que esta es la misma caja. Probé en otra computadora, porque esta era una máquina virtual dentro de OSX, así que probé una XP "pura". Nada.

nota: Tengo Servicio de Apple Bonjour (en funcionamiento) y también el SDK de Apple (instalado más adelante).

Teniendo en cuenta que esto no funcionaba, que siguió adelante y decidió probar el SDK de Apple, que tiene una interoperabilidad y algunas muestras de pre-compilados (y su código fuente).

historia corta, ni el mDSNBrowser.exe, ni la obra SimpleChat.exe/ver/descubrir nada.

Mi cuadro es un Win7 bajo Parallels, pero eso no parece estar afectando a nada, dado que el XP nativa presenta los mismos problemas.

¿Qué estoy haciendo tan terriblemente mal?

+0

Sólo por la corrección, creo que el tipo de servicio debe terminar con un punto, por lo que sería "_http._tcp." – Thompsonian

+0

Tuve algunos problemas con él. La razón por la que no encontró nada podría ser que la bomba de mensajes no funcionaba correctamente para su mDSNBrowser. Lo importante también es qué acciones registró. – Yoda

Respuesta

4

He usado NetServices zeroconf para Zeroconf interior de .NET. Suponiendo que permita que Bonjour pase por su cortafuegos y que su hardware de red permita la multidifusión, el mayor problema siempre ha sido la falta de fiabilidad del servicio Apple Bonjour. El código de trabajo rutinario fallaría, con la solución de reiniciar el servicio Bonjour. Por lo tanto, verifique su hardware de red, revise su firewall, pero finalmente reinicie Bonjour varias veces. No siempre funciona en el primer, segundo o tercer intento, etc.

+0

Gracias Matthew, lo he intentado y lo logré ver las sesiones "SimpleChat" creadas con la Muestra de Apple desde el MZClient de la línea de comandos. Modifiqué SimpleChat para usar http tcp y p2pchat udp y puedo ver las sesiones. Continuaré investigando. Lo que parece no funcionar es sesiones creadas * con * mzclient (que realmente no me importa) –

Cuestiones relacionadas