我有一个通过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 几次。它并不总是在第一次、第二次或第三次尝试时有效。
| 归档时间: |
|
| 查看次数: |
7436 次 |
| 最近记录: |