7

Bonjour を介して公開する iPhone アプリがあります。Mac 版は動作し、データを同期して交換します。次に、その小さな Mac アプリを Windows に移植する必要があります。私は .NET を使用することにしました (それは私が知っていることだからです)。

アプリは複雑ではありませんが、まだ初期段階です。Bonjour サービスをブラウズ/発見する必要があります。このタスクのために、Mono.Zeroconf と Apple の最新の SDK (いくつかの C# サンプルを含む) をダウンロードしました。

私は実際にサンプルをコピーして貼り付けているので、実際にはコードを貼り付けているわけではありません。実際、Mono.Zeroconf には、「すべての API」をテストするために使用できる MZClient.exe があります。

私の最初のテストは、同じボックスで 2 つの cmd.exe を開き、サービスを登録する MZclient を起動し、もう 1 つを起動して「検出」しました。

うまくいきません。

サーバーは次のとおりです。

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

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

他の端末で:

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.

以上です。何も起こりません。もちろん、さまざまなサービスを試してみましたが、役に立ちませんでした。そのドメインのことで少し遊んでも。これは同じ箱であることを忘れないでください。これは OSX 内の VM だったので、別のコンピューターで試してみました。何もない。

:Apple Bonjour Service(稼働中)とApple SDK(後でインストール)があります。

これが機能しないことを考えると、相互運用機能といくつかのコンパイル済みサンプル (およびそのソース コード) を備えた Apple SDK を試すことにしました。

簡単に言うと、mDSNBrowser.exe も SimpleChat.exe も何も動作/表示/検出しません。

私のボックスは Parallels の下の Win7 ですが、ネイティブ XP でも同じ問題が発生するため、何の影響もないようです。

私は何をそんなにひどく間違っているのですか?

4

2 に答える 2

4

.NET内のZeroconfにZeroconf NetServicesを使用しました。Bonjour がファイアウォールを通過することを許可し、ネットワーク ハードウェアがマルチキャストを許可すると仮定すると、常に最大の問題は Apple Bonjour サービスの信頼性の低さでした。Bonjour サービスを再起動することで解決できるため、日常的に動作するコードは失敗します。そのため、ネットワーク ハードウェアとファイアウォールを確認し、最終的に Bonjour を数回再起動してください。1 回目、2 回目、3 回目などで常に機能するとは限りません。

于 2010-04-29T17:40:04.347 に答える
1

NuGet のバージョン、Git のソース バージョン、および Windows の Growl のダウンロードは現在、すべてわずかに異なる実装をしているように見えるため、いくつかの重要なリファレンスを次に示します。NuGet パックがうまくいかなかったので、ソースをダウンロードし、推奨される変更を加えて再コンパイルしました。

Mono.ZeroConf にサービスを登録するには?

http://bryanprice.info/2011/01/29/mono-zeroconf-on-windows/

于 2012-04-04T08:09:48.507 に答える