問題タブ [nsnetservice]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
6402 参照

macos - Mac: 実行中のネットワーク サービスのリストを表示するには?

Mac で実行中のネットワーク サービスに接続する必要があるアプリケーションを作成しています。

問題は、サービスが何と呼ばれているのか、それがどのポートを使用しているのかさえわからないことです。Mac で実行中のすべてのネットワーク サービスを参照する方法はありますか?

より詳しい情報:

  • MIDI ネットワーク セッションに接続しています (「オーディオ MIDI 設定」の下にあり、すべての OSX インストールに存在します)。これをネットワーク サービスと考えてよろしいですか。

  • NSNetServiceBrowser を使用して、このサービスを実行しているすべてのローカル コンピューターを検索する予定です。(これが最善の方法ですか?)

どんな助けでも大歓迎です-ありがとう!

0 投票する
1 に答える
887 参照

cocoa - iPhoto を模倣した NSNetService Bonjour

私は iPhoto の共有を模倣しようとしていますが、iPhoto サービス名 "_dpap._tcp." を使用してサービスを公開するところまで来ました。iPhoto は偽の「共有」を認識しますが、グレー表示されています。ネットワーク トラフィックを監視して、iPhoto がそれを有効にする (非グレーにする) ための何かを探しているかどうかを確認していますが、それが本当にボンジュール設定であると信じさせるものは何もないようです。サービスを公開するときに行方不明です。

代替テキスト

それを可能にするためにiPhotoが探している/必要としているものについてのアイデアはありますか? bonjour の設定だと思いますか、それとも iPhoto 特有のものだと思いますか?

0 投票する
1 に答える
448 参照

iphone - iPhoneとの接続がBluetoothかWiFiかを判断する方法は?

2 つの iPhone 間で bonjour ネットサービスを使用して接続を作成しています。

を使って接続します

しかし、結果の接続がBluetooth経由であるかどうかをどのように判断できるかわかりません。IPアドレスを特定する方法はありますか...それを行う必要があります。

接続がWiFi経由の場合、ステータスバーのネットワークアクティビティインジケーターを時々更新する必要があるため、Appleのヒューマンインターフェイスガイドラインに準拠することが重要であると考えていますが、Bluetoothでそのインジケーターを使用すると誤解を招く可能性があるようです繋がり。(インジケータは、Bluetooth 接続ではなく、wifi 接続の横にあります)。

ありがとう

0 投票する
2 に答える
7307 参照

iphone - NSNetServiceクラスを使用して、Windowsマシンで共有されているフォルダーにSMBtcpip接続を確立する

私はiPhoneを使って自分のWindows共有フォルダにアクセスする方法を見つけようとしています。必要な機能は、私が構築しているより大きなエンタープライズアプリの一部です。すでに同様の質問をしているが運がない人がいます-iOSはSMBを介したファイル操作をサポートしていますか?

今、私は「SimpleNetworkStreams」と呼ばれるアップルデベロッパチュートリアルを見つけました。これは、NSNetServiceインスタンスのタイプをプロトコルに設定することにより、tcpを介してx-SNSUploadプロトコルを使用するためにNSNetServiceを使用しますx-SNSUpload._tcp

これが彼らがそれをどのように行ったかです-

したがって、MacBookでSMBサーバーに置き換え_x-SNSUpload._tcpて実行するとします。_smb._tcp次の一連のコマンドを実行して、MacBookでSMBを起動します

次に、iPhoneの画像をMacBookのルートディレクトリに転送できます。私はWindowsマシンの共有フォルダでも同じことをしたいと思っていました。

共有フォルダの名前は「テスト共有」です。私は自分のWindowsマシンの「テスト共有」フォルダをすべての人に完全に制御して明示的に共有しました。コードの完全な詳細は以下に記載されています(更新後)

ブラウザで「smb:\\ 10.212.19.121」と直接入力すると、共有フォルダにアクセスできます。ファインダーアプリケーションが開き、「一時共有」フォルダーをマウントするオプションが表示されます。


更新-上から取り出された多くの冗長なテキストと、SimpleNetworkStreamsがどのように機能するか、そして私が微調整したことの詳細を以下に示します。

コードは-SimpleNetworkStreams-から取得されます

  1. 送信するファイルのタイプNSInputStreamのストリームを開きます
  1. アップルのドキュメントが言うように

「NSNetServiceオブジェクトを直接作成するか(正確なホストとポートの情報がわかっている場合)、NSNetServiceBrowserオブジェクトを使用してサービスを参照できます。」

NSNetServiceのオブジェクトは、SMBサーバーをホストするサーバーに対してインスタンス化されます

NSOutputStream型の出力ストリームオブジェクトをself.networkStreamに取得します。

次に、NSOutputStreamデリゲートがNSStreamEventHasSpaceAvailableをキャッチし、入力ファイルをバッファリングしてから、そのバッファをNSOutputStreamオブジェクト(networkStream)に書き込みます。

0 投票する
1 に答える
3171 参照

objective-c - NSNetService を使用してサーバーに接続していますが、失敗しています - 自動ソケット切断?

問題の新しい単純なバージョン:

Objective-C クライアントを使用して Bonjour デバイスに接続して通信しようとしていますが、サービス (サーバー) を解決できません。もともと、もっと複雑な例を実行しようとしましたが、ポート/IP を指定しても基本的なソケット接続が機能しないことがわかりました。

cocoaAsyncSocket ライブラリを使用して、可能な限り最小限のコードを作成しました。

そして、これが私が接続しようとしているサーバーです(Pythonスクリプト):

サーバーは着信接続を認識しません。クライアント側では、エラー var に値または何かがあります-私が期待するものは何もありません。助けてください?

OLD (より複雑なバージョン、同じサーバーを使用):

私のデバッグ出力は基本的に、サービスが解決されたと言っています...そして、すぐにソケットが切断されます。その間、私のサーバーはそこに座っていて、着信接続を見ていません。

最初の接続を取得してサービスの名前を出力するときにデバッガーを使用しましたが、続行を押すまでハングし、直後にソケットが切断されます???

私はObjective-Cとイベント駆動型プログラミングに非常に慣れていないので、何か間違ったことを扱っているのでしょうか? アドバイスをいただければ幸いです。

クライアント (デバッガー) 出力:

サーバー出力:

クライアント コード (ClientController.m、基本的にはhttp://www.macresearch.org/cocoa-scientists-part-xxix-messageから引用):

0 投票する
1 に答える
1678 参照

iphone - Wi-Fiネットワークで新しいデバイスを検索するプロセスを停止するにはどうすればよいですか?

私のwifiネットワークコードでは、domainStringで示されるドメインで指定されたタイプのサービスの検索を開始するNSNetServiceBrowserデリゲートsearchForServicesOfTypeを使用しています

[ self.netServiceBrowser searchForServicesOfType:types inDomain:domain]

私のケースタイプはネットワーク識別子(文字列: " _ tcp_wifi ")で、ドメインは "ローカル"(文字列)です。

検出されたサービスごとに、-netServiceBrowser:foundService:moreComing:メッセージがNSNetServiceBrowserインスタンスのデリゲートに送信されます。

-(void)netServiceBrowser:(NSNetServiceBrowser *)netServiceBrowser didFindService:(NSNetService *)service moreComing:(BOOL)moreComing {}

上記のデリゲートは、検出されたサービスごとにトリガーされます。

searchForServicesOfTypeデリゲートは、常に新しいデバイスを検索します。ただし、タイマーを使用して2分後に新しいデバイスの検索プロセスを停止する必要があります。これは可能ですか。これを行うためのNSNetServiceBrowserデリゲートはありますか?はいの場合、誰かがそれを行うための良い方法を教えてもらえますか?

0 投票する
1 に答える
152 参照

iphone - 公開ごとに、デバイス名を一意にする方法を教えてください。

同じドメインと名前でnetServiceオブジェクトを1回公開しています。myServiceとして私のサービスを見つける別のデバイス。

しかし、再び同じドメインと名前でnetServiceオブジェクトを公開します。別のデバイスが私のデバイスをmyService(1)として検出します。

コード:

公開ごとに、デバイス名を一意にする方法を教えてください。

0 投票する
1 に答える
493 参照

iphone - NSNetService クラスから公開されたサービスを削除する方法

公開されたサービスを NSNetService クラスから削除するにはどうすればよいですか?

誰でも私にそれをするように言うことができますか?

または、常に一意のデバイス名を取得する必要があります (複数の公開を行った場合)

0 投票する
3 に答える
4119 参照

objective-c - NSNetServiceは正常に機能しますが、hostNameを取得できません。解決すると、エラーが発生します。

NSNetServiceでBonjourを使用して、iPhoneからサーバーを公開しています。すべて期待どおりに機能し、提供しているページなどを閲覧できます。ただし、iPhoneでは、ホスト名(つまり、「myDevice.local。」などのURL)を表示して、ブラウザで手動でアドレス指定します(bonjour検出サービスがないクライアントに便利です)。私の理解では、メソッド[myNetService hostName]を呼び出すと、そのアドレスが得られるはずです。ただし、この呼び出しは常にnilを返します。いくつかのフォーラムで、最初にサービスを解決する必要があると読みましたが、[myNetServiceresolve]と[myNetServiceresolveWithTimeout:10]の両方がデリゲートメソッドを呼び出します

エラーで

これは明らかに、それがすでに解決されていることを意味します。繰り返しますが、私がサービスを使用できる間、これはすべて起こっています。また、ポート、ドメイン、およびサービスのタイプを取得できます。他の唯一の奇妙なことは、[myNetServiceアドレス]の呼び出しが空の配列を返すことです。

SDK3.1.3を使用しています。誰かが私が間違っている可能性があることを知っていますか?

0 投票する
2 に答える
1977 参照

iphone - NSNetService の解決中にエラーが発生しました

iPhoneでWi-Fi経由でプレイするボードゲームを作成しています。

デバイス A がデバイス B をプレイに招待すると (B によって発行された NSNetService を解決しようとする)、デバイス B は受け入れるか拒否することができます。

B が拒否した場合、A に通知され、すべて問題ありません。しかし、後で A が B を再度招待しようとすると、netService:didNotResolve:デリゲート メソッドで次のエラーが発生します。

NSNetServicesErrorCode = -72003 NSNetServicesErrorDomain = 10

エラー -72003 は NSNetServicesActivityInProgress を意味します...1 人のプレイヤーが他のプレイヤーを複数回「招待」できるようにするにはどうすればよいですか?

私は AsynchSocket ライブラリを使用しています、ありがとう!