問題タブ [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.

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

iphone - iOS HTTP マルチパートフォーム ストリーミング リクエスト

アプリのファイル アップロードを実装する必要があります。アセット (写真またはビデオ) などのファイルは、REST インターフェイスを使用して Web サーバーにアップロードする必要があります。

アップロードでは、カスタム ヘッダー属性を持つフォーム データ リクエストが使用されます。

問題: ビデオなどの大きなファイルをNSDataオブジェクトに保持すると、メモリの問題が発生する可能性があります。これが標準的なアプローチになります。

解決策リクエストのボディ部分に を 提供し、NSInputStreamデータを 1 つずつ HTTP ボディ ストリームに書き込みます。

質問誰でも NSInputStream を aNSURLrequestおよび と組み合わせて使用​​する方法の例を提供できますNSURLConnectionか?

いくつかの不完全な例に頭を悩ませました-

しかし、私は次の方法に対処する方法がわかりません

サードパーティのライブラリを使用したくありません。

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

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 未満)。

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

ios - 互換性のないポインター型 'uint8_t *' が 'uint8_t **' に送信される - どうすれば修正できますか?

警告が表示されます

互換性のないポンター型 'uint8_t *' は 'uint8_t **' に送信されます

NSStreamクラスの下のメソッドでパラメータ「buffer」に値を渡すとき

以下は私が使用しているコードです。「fileStream」は「NSInputStream」インスタントオブジェクトです

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

tcp - サーバーソケットを受け入れて NSInputStream/NSOutputStream ペアを作成する方法は?

Stream Programming Guideに従って を使用して TCP クライアント接続を開くことにより、 と のペア ( にブリッジされた通話料無料)をNSInputStream作成NSOutputStreamできることを知っています。CFReadStreamCFWriteStreamCFStreamCreatePairWithSocketToHost

ポートをリッスンし、接続をとのペアとして受け入れるTCPサーバーを作成するにはどうすればよいでしょうか?NSInputStreamNSOutputStream

0 投票する
0 に答える
364 参照

objective-c - NSStreamDelegate がメッセージを受信しない

を使用して正常に動作する TCP 接続クラスがありますNSStreamDelegate。それはメッセージを受け取り、どんな問題でもそれらに応答します。場合によっては、2 番目の接続を開く必要があります。これは、最初のクラスと非常によく似た 2 番目のクラスです。

オープン時に、最初のクラスは、ストリームがオープン状態を報告するまで待機する必要があります。

私の問題は、ストリーム デリゲート メソッド-stream:handleEvent:が呼び出されないことです。

私は最初のクラスでほぼ同じコードを使用していますが、これは機能します。呼び出しを削除してもdispatch_semaphore_wait();、デリゲート メソッドは起動しません。

待たない場合は、ストリームに書き込むことができます。しかし、(最初のクラスの) 非同期環境でタイムアウトを実装する必要があります。

最初のクラスの-openWithTimeoutBlock:メソッド内でメソッドを呼び出します。-stream:handleEvent:それは2番目のクラスを中断できますNSStreamDelegateか?

それを修正する方法はありますか?