問題タブ [nsinputstream]
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 - iOS HTTP マルチパートフォーム ストリーミング リクエスト
アプリのファイル アップロードを実装する必要があります。アセット (写真またはビデオ) などのファイルは、REST インターフェイスを使用して Web サーバーにアップロードする必要があります。
アップロードでは、カスタム ヘッダー属性を持つフォーム データ リクエストが使用されます。
問題:
ビデオなどの大きなファイルをNSData
オブジェクトに保持すると、メモリの問題が発生する可能性があります。これが標準的なアプローチになります。
解決策リクエストのボディ部分に を
提供し、NSInputStream
データを 1 つずつ HTTP ボディ ストリームに書き込みます。
質問誰でも NSInputStream を aNSURLrequest
および と組み合わせて使用する方法の例を提供できますNSURLConnection
か?
いくつかの不完全な例に頭を悩ませました-
しかし、私は次の方法に対処する方法がわかりません
サードパーティのライブラリを使用したくありません。
ios - iOS で RN42 Bluetooth がストリーミング データの数秒以内に切断される
RN-42 を使用して Bluetooth 2.1 経由でデバイスからデータを読み取ろうとしています。デバイスは iPhone または iPad Mini にペアリングされ、データは短時間ストリーミングされますが、iOS & BT モジュールは数秒 (10 未満) 以内に切断 (ペアリング解除) されます。デバイスは 5 ~ 10kB/s のデータを出力しており、Bluetooth の仕様に十分収まっています。また、関数 NSInputStream [NSInputStream read: maxLength:] を実行すると、返されるバイト数が常に 158 以下になることにも気付きました。アプリとハードウェアはクラッシュしませんが、Bluetooth のペアリングが解除されるだけです。
デバイスは切断後も RN42 にデータを送信し続けているため、電子機器側の問題の可能性が低くなります。このセットアップは、Android デバイスでも問題なく機能します。切断やクラッシュなしでデータをストリーミングできます。
私が試したこと...
- Apple が提供する外部アクセサリの例、EADemo に従いました。
- ポーリングの代わりに実行ループを純粋に使用します。
- この投稿で提案されているように、ストリームをバックグラウンド スレッドに配置します。
- パフォーマンスを向上させるためにすべての NSLog を削除します。
- デバッグおよびリリース モードでコンパイルされます。
iOS と BT モジュールが接続されたままになり、切断する前にデータを転送できるようになるため、データ転送が遅くなります (つまり、5kB/s 未満)。
ios - 互換性のないポインター型 'uint8_t *' が 'uint8_t **' に送信される - どうすれば修正できますか?
警告が表示されます
互換性のないポンター型 'uint8_t *' は 'uint8_t **' に送信されます
NSStreamクラスの下のメソッドでパラメータ「buffer」に値を渡すとき
以下は私が使用しているコードです。「fileStream」は「NSInputStream」インスタントオブジェクトです
tcp - サーバーソケットを受け入れて NSInputStream/NSOutputStream ペアを作成する方法は?
Stream Programming Guideに従って を使用して TCP クライアント接続を開くことにより、 と のペア ( にブリッジされた通話料無料)をNSInputStream
作成NSOutputStream
できることを知っています。CFReadStream
CFWriteStream
CFStreamCreatePairWithSocketToHost
ポートをリッスンし、接続をとのペアとして受け入れるTCPサーバーを作成するにはどうすればよいでしょうか?NSInputStream
NSOutputStream
objective-c - NSStreamDelegate がメッセージを受信しない
を使用して正常に動作する TCP 接続クラスがありますNSStreamDelegate
。それはメッセージを受け取り、どんな問題でもそれらに応答します。場合によっては、2 番目の接続を開く必要があります。これは、最初のクラスと非常によく似た 2 番目のクラスです。
オープン時に、最初のクラスは、ストリームがオープン状態を報告するまで待機する必要があります。
私の問題は、ストリーム デリゲート メソッド-stream:handleEvent:
が呼び出されないことです。
私は最初のクラスでほぼ同じコードを使用していますが、これは機能します。呼び出しを削除してもdispatch_semaphore_wait();
、デリゲート メソッドは起動しません。
待たない場合は、ストリームに書き込むことができます。しかし、(最初のクラスの) 非同期環境でタイムアウトを実装する必要があります。
最初のクラスの-openWithTimeoutBlock:
メソッド内でメソッドを呼び出します。-stream:handleEvent:
それは2番目のクラスを中断できますNSStreamDelegate
か?
それを修正する方法はありますか?