問題タブ [nsstream]
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.
iphone - iPhone - インターネット経由のピアツーピア接続
Web サーバーとの非同期ソケット接続を使用するアプリを構築しています。大量のデータを送信するために、非同期ソケットを使用して 2 台の iPhone をピア ツー ピア接続に接続したいと考えています。私は、iOS SDK ソケット API よりも GCDAsyncSocket に精通しています。
私は似たようなことをしましたが、ローカル ネットワーク内でのみ NSNetService を使用してプレゼンスを公開し、p2p 接続から必要なアドレスを取得しました。
p2p ソケット接続を使用してインターネット経由で 2 台の iPhone を接続する方法のヒントを教えてください。
objective-c - NSStreamの閉塞の可能性をどのように処理する必要がありますか?
Appleの「ポーリングと実行ループのスケジューリング」によると:
[
hasSpace/BytesAvailable
]は、使用可能なバイトまたはスペースがあること、または読み取りまたは書き込み操作を試行することだけを確認する方法(瞬間的なブロックにつながる可能性がある)を意味する場合があります。
ドキュメントには、hasSpace / BytesAvailableイベントが同じように動作することは明示的に記載されていませんが、あいまいなことに、「同一のセマンティクス」があることが示されています。
書き込み/読み取りstreamErrorまたはバイト読み取り/書き込みリターンが予想よりも少ないのは、「瞬間的なブロック」が原因である可能性があると結論付けることができますか?
もしそうなら、私は送信を再試行する必要がありますか?閉塞を解消する機会を与えるために、ある種のタイマーメカニズムを使用する必要がありますか?これは実装するのに多くの作業になるので、役に立たない場合はむしろしたいと思います。
(このような場合、制限付きのポーリングループを開始するのは魅力的です。たとえば、10回試行するwhileループですが、実行ループでストリームがスケジュールされると同時にそれを実行しても安全かどうかはわかりません。テストする方法がありません。)
objective-c - ポーリングモードでNSStreamを使用してアプリケーションを停止しないようにする
WindowsデスクトップアプリケーションからiPhoneアプリに転送するクライアントサーバーを実装しました。ポーリングモード(同期)でNSStreamを使用してデータを転送します。
すべて正常に動作しますが、存在しないサーバーまたは切断されたサーバーに接続しようとしたり、ポート番号/ IPアドレスが間違っていると、NSOutputStreamオブジェクトのWRITEメソッドがアプリケーションの実行を停止します。
タイムアウト制御を挿入してメソッドを管理することはできますか?はいの場合、どうすればよいですか?
NSInputStreamオブジェクトのREADメソッドでも同じ問題が発生すると思います。
誰か助けてくれませんか?
ios - UIWebView経由で直接NSInputStreamからデータを読み取る方法は?
UIWebView は、NSData からコンテンツを表示する機能を提供します。コンテンツのソースとして NSData の代わりに NSStream を使用することは可能ですか?
iphone - NSStream、読み取られたバイトのパーセンテージを取得
NSStream APIを使用してチャンクで読み取ることにより、ファイルをサーバーにアップロードしています。アップロードの進行状況を示す進行状況バーを表示しようとしています。ファイルに読み込まれたバイト数を決定するための信頼できる解決策を見つけることができません。ファイルとチャンクのサイズを変更しても、合計バイト数、または読み取られたバイト数が93や212などの奇妙なものが表示され続けます。誰かがこれを達成しようとするためのヒントがありますか?シンプルなはずです。
iphone - iPhone アプリケーションから MFi 準拠のアクセサリにデータをストリーミングするにはどうすればよいですか?
iPhone からリアルタイム データをストリーミングする必要がある MFi 準拠のデバイスがあります。私は、ExternalAccessory フレームワークと EADSessionController クラスを見てきました。出力ストリームにバイトを書き込むことで、MFi デバイスと通信できます。
私が直面している問題は、iPhone アプリケーションから MFi デバイスにバイトを継続的にストリーミングしようとすると、バイトが可変サイズのチャンクに結合され、同時に送信されることです。代わりに、各パケットをすぐに外部デバイスに送信する必要があります。
これらのチャンクに集約するのではなく、ストリームをプッシュしてデータをすぐに送信する方法はありますか?
iphone - NSStreamは電話をロックした後に終了します
私のオンラインアプリはiPhone-3GSiOS4.3で動作し、NSStreamを使用してサーバーと通信します。
アプリを最小化し、電話をロックし、アプリを再起動すると、ストリームが終了します。
そのため、私のアプリはサーバーへの接続を失います。
電話をロックした後も接続を維持する方法を知っている人はいますか?iOSマルチタスクの機能ですか?
ios - 警告: USE_BLOCK_IN_FRAME を作成しようとしています
Xcodeでこの警告が表示されます
警告: フレーム内にないブロックで USE_BLOCK_IN_FRAME 変数を作成しようとしています。
Xcode は私を NSStream にリダイレクトします
このエラーが発生するのはランダムであり、トリガーされるとアプリケーションがクラッシュします。誰もが同様の問題を試しましたか?
ありがとう
編集
appDelegate.h で
appDelegate.m で:
[_naturStream close]
問題が解決したかどうかわからないことを忘れていたことに気付きましたか?
編集
もう 1 つ....JSON データを取得するために Thread を使用します。
ios - iOS StreamStatus は常に NSStreamStatusOpen を返します
NSStream の streamStatus に関する質問がありました。私のアプリケーションには、データの送受信に適した入力ストリームと出力ストリームがあります。ただし、以前に、サーバーがダウンした場合に、クライアント側で接続が切断されたという通知を受け取っていないことに気付きました。これを調査し、さまざまなテストを実装して数週間後、不適切なサーバーの切断またはクラッシュに対して適切な応答を提供するものがないことがわかりました. 次に、5 秒ごとに起動するタイマーを作成し、streamStatus をチェックする関数を呼び出しました。LAN 接続を無効にしてサーバーを切断すると、クライアントがまだ接続済みとして登録されていることに気付きました。クライアントのデバッグを開始したとき、streamStatus が常に返されることに気付きましたNSStreamStatusOpen
入力ストリームと出力ストリームの両方で。
私が行っていないことで、私が見逃していることはありますか? streamStatus を呼び出して受信する方法の小さなスニペットを以下に添付しました。
タイマーの初期化 (接続が成功した後に呼び出されます):
ストリームの確認: