問題タブ [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.
ios - NSNetService は発行しますが、didAcceptConnectionWithInputStream... は呼び出されません
メッセージを受信し、そのメッセージに基づいてアクションを実行するiOS上で簡単なアプリを作成しようとしています(現時点では、を介して表示したいだけですNSLog
)。サービスに接続できますが、サービスが何も受信していないようです。ここに私の.hファイルがあります:
そして私の.m:
これは次の方法で呼び出されます。
Bonjour Browserを使用するとサービスが表示され、独自の の実装NSNetServiceBrowser
または Bill Dudney の例 (ブログ投稿、コード) を使用すると、接続しているように見えます (つまり、自分の実装は を介してNSStreamEventHasSpaceAvailable
およびNSStreamEventOpenCompleted
イベントを受け取りますstream:(NSStream *)stream handleEvent:(NSStreamEvent)eventCode
) 。 . ただし、上記のメソッドはいずれもサーバー上で呼び出されません。
私はまだ iOS に慣れていないので、これがばかげた間違いであり、簡単に修正できることを願っています。
c# - MonoTouch で Bonjour NSNetService を使用して NSData から IP アドレスを取得しますか?
iOS で Xamarin + MonoTouch を使用して、ネットワーク上の Web サーバーを参照し、そこからファイルをダウンロードしています。
resolve イベント ハンドラに渡される NSNetService には、アドレスが NSData として含まれています。その NSData を実際の IP アドレスに変換してから URL を作成する良い方法が見つかりません。つまり、http:// < IPAddress > /folder/file.htm です。
これは私の NSNetService.AddressResolved イベント ハンドラーです。
解決イベントで NSNetService からサービスの IP アドレスを取得する正しい方法は何ですか?
ios - didAcceptConnectionWithInputStream:outputStream: はどのように呼び出されますか?
私の最初の質問は、どのようにdidAcceptConnectionWithInputStream:outputStream:
コールバックNSNetServiceDelegate
を取得して呼び出されるのですか?
フォローアップの質問: クライアントとサーバー間の接続を確立できますdidAcceptConnectionWithInputStream:outputStream:
か?
publishWithOptions
を呼び出すと、NSNetServiceListenForConnections
オプションを渡すとNetServiceDelegate
コールバック ( didAcceptConnectionWithInputStream:outputStream:
) が呼び出されることになっていることを理解しています。ただし、そのコールバックは呼び出されません。
公開するために私が取っている手順は次のとおりです。
NSNetService
で作成self.netService = [[NSNetService alloc] initWithDomain:@"" type:_serviceType name:(_name == nil) ? @"" : _name ポート:0];
デフォルトモードで、現在のランループでサービスをスケジュールする
- デリゲートをサーバー ラッパー オブジェクトに設定する
- 電話
publishWithOptions:NSNetServiceListenForConnections
サービスを閲覧するために私が取る手順は次のとおりです。
- を作成し
NSNetServiceBrowser
、そのデリゲートをクライアント ラッパー オブジェクトに設定します searchForServicesOfType
と同じサービス タイプとドメインを呼び出すNSNetService
UITableView
ユーザーがサービスを選択できるように、UI にサービスをリストします。- ユーザーがサービスを選択したら、サービスのデリゲートをクライアント オブジェクトに設定し、サービスを呼び出します
getInputStream:outputSteam:
。 - getInputStream:outputSteam: が成功を返した後、呼び出されることを期待
didAcceptConnectionWithInputStream:outputStream:
します。ただし、これは発生しません。
ご協力いただきありがとうございます!
objective-c - クライアントが切断されたときに NSNetService に通知する方法は?
私はObjective-C / Cocoaが初めてで、bonjourサーバークライアントアプリを作成しようとしています。経験が浅いので、コードだけでなくやり方も含めて回答いただけると助かります。
netService:didAcceptConnectionWithInputStream:outputStream
サーバーのメソッドを使用して、サーバーとクライアントの間に接続と入出力ストリームを確立することに成功しました。
問題は、サーバーに接続されているすべてのクライアントのリストを持たせたいということです。クライアントの NSNetServiceBrowserDelegate には、bonjour サービスとの接続が終了するたびに取り消されるメソッドがあることを知っていますNSNetServiceDelegate
。クライアントが切断されます。
ios - BLE デバイスに接続し、iOS 7 の NSNetService 経由でデータを送受信します
を介して外部デバイスと通信するiPhoneアプリがありますNSNetService
。次に、Bluetooth のサポートを追加します。そのため、Bluetooth (BLE) 経由でデバイスを検出して接続し、接続時に 経由でデータを送受信したいNSNetService
ので、既存のコードを再利用します...
これはiOS7+で可能ですか? 例/ヒントをいただければ幸いです。