使用.NET的Apple的Bonjour服务?

Mar*_*ini 7 .net c# bonjour

我有一个通过Bonjour发布的iPhone应用程序.Mac对应物可以工作,它们可以同步和交换数据.现在我必须将那个小Mac应用程序移植到Windows.我决定使用.NET(因为这就是我所知道的).

该应用程序并不复杂,但我还处于早期阶段.我需要浏览/发现Bonjour服务.为此,我下载了Mono.Zeroconf和Apple的最新SDK(其中包括几个C#样本).

我并没有真正粘贴代码,因为我真的要复制/粘贴样本.实际上,Mono.Zeroconf有一个MZClient.exe,可用于测试"所有API".

我的第一个测试是 - 在同一个盒子里 - 打开两个cmd.exe并启动一个MZclient注册服务,另一个,启动它并"发现它".

它不起作用.

这是服务器:

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

*** Registering name = 'mysimpleweb', type = '_http._tcp', domain = 'local.'
*** Registered name = ‘mysimpleweb’
Run Code Online (Sandbox Code Playgroud)

在另一个终端:

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.
Run Code Online (Sandbox Code Playgroud)

就是这样.什么都没发生.我当然试过不同的服务无济于事.甚至玩那个领域的东西.记住这是同一个盒子.我尝试了另一台计算机,因为这是OSX中的一个虚拟机,所以我继续尝试了一个"纯粹的"胜利XP.没有.

注意:我有Apple Bonjour服务(启动并运行)以及Apple SDK(稍后安装).

鉴于这不起作用,我继续并决定尝试使用具有Interop和一些预编译样本(及其源代码)的Apple SDK.

简短的故事,mDSNBrowser.exe和SimpleChat.exe都不工作/查看/发现任何东西.

我的盒子是Parallels下的Win7,但这似乎并没有影响任何东西,因为原生XP表现出同样的问题.

我做错了什么?

小智 4

我在 .NET 内部使用了 Zeroconf NetServices for Zeroconf。假设您允许 Bonjour 通过防火墙并且您的网络硬件允许多播,则最大的问题始终是 Apple Bonjour 服务的不可靠性。常规工作代码会失败,解决方案是重新启动 Bonjour 服务。因此,请检查您的网络硬件,检查您的防火墙,但最终重新启动 Bonjour 几次。它并不总是在第一次、第二次或第三次尝试时有效。