問題タブ [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 に答える
1477 参照

objective-c - NSMutableData から読み取る NSInputStream で NSStreamEventEndEncountered を通知する方法

Cocoa では、2 つの NSThreads、1 つのプロデューサーと 1 つのコンシューマーをセットアップしました。プロデューサは NSMutableData にデータを追加し、レシーバはそのデータから NSInputStream を開き、チャンクを読み取ります。

プロデューサー スレッドは、コンシューマー プロセスよりもはるかに高速に書き込みますが、これは問題ありません。しかし、プロデューサーは限られた量の作業しか生成せず、終了します。コンシューマ スレッドが NSStreamEventEndEncountered イベントを処理するようにしたいと思います。NSInputStream が NSMutableData からのものである場合、これをどのように通知できますか?

ストリームの終わりを示す魔法の数字を含む一連のバイトをプロデューサーに送信させる必要がありますか?

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

iphone - クラスNSURLRequest。メソッド-(NSInputStream *)HTTPBodyStreamは常にnilを返します。なんで?

NSURLRequestとNSURLConnectionを使用して、HTTPサーバーへのバイナリストリーム接続を確立し、巨大なデータファイルを少しずつ取得しようとしています。

NSURLRequestのメソッド-(NSInputStream *)HTTPBodyStreamが表示されます。それはNSURLRequestのインスタンスで呼び出したいメソッドですか?もしそうなら、なぜそれは常にnilを返すのですか?

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

iphone - 私は何が欠けていますか?: iPhone Objective-C NSInputStream initWithData

NSData オブジェクトから NSInputStream を作成していますが、ストリームを作成すると、hasBytesAvailable に対して NO が報告されます。

ログ:

ここで何が欠けていますか?

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

iphone - JPEG のストリーミング、JPEG の終わりの検出

スクリーンショットを撮り、サイズを変更し、TCP/IP 経由で iPhone アプリケーションに送信する Java サーバーを作成しました。次に、アプリケーションは NSInputStream を使用して着信画像データを収集し、バイト バッファーを使用して NSMutableData インスタンスを作成し、UIImage オブジェクトを作成して iPhone に表示します。基本的に、画面共有。画像データを収集するための私のiPhoneコードは現在次のとおりです。

コード内のコメントで示されているように、私の問題は、NSMutableData オブジェクトでデータの収集をいつ停止し、そのデータを使用して UIImage を作成するかを判断することです。これが送信されたときに画像が表示できるようになるため、着信バイトで JPEG ファイルの終わりマーカー (画像の終わり (EOI) マーカー (FFD9)) を探すのは理にかなっているようです。これをテストするにはどうすればよいですか?データがどのように保存されているか、または JPEG ファイル内のマーカーについて何かが欠けていますが、これをテストするための助けがあれば大歓迎です!

ジェームズ

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

cocoa - ココアはFTP接続からNSInputStreamを読み取ります

私は(どうやら)ftp接続を確立できましたが、そこから何も読み取れませんでした。正当な理由があります。接続がタイムアウトするまで、読み取りに到達しません。

これが私のコードです:

ヘッダ:

実装:

イベント処理には、 http: //www.cocoadev.com/index.pl? NSStreamに基づいてこれを使用します。

最小限に抑えるために、この投稿からoStreamのセットアップを省略しました。

FTPにSSLに切り替えるリクエストをまだ送信していません。

Xcodeはデバッグに非常に恐ろしいと思うので、どんな助けでも大歓迎です(失敗したステップでの例外やエラーメッセージはありません)。

  • チャック
0 投票する
1 に答える
537 参照

objective-c - 潜在的に大きなSTDINデータを複数回処理する

STDINにNSInputStreamを提供するクラスにアクセサーを提供したいと思います。これは、数百メガバイト(または、おそらくありそうもないですが、ギガバイト)のデータである可能性があります。

呼び出し元がこのNSInputStreamを取得すると、含まれているデータを使い果たすことを心配せずに、そこから読み取ることができるはずです。言い換えると、コードの別のブロックがNSInputStreamを要求し、そこから読み取ることができることを期待する場合があります。

最初にすべてのデータをNSDataオブジェクトにコピーしないと(私は)メモリの枯渇を引き起こすと思いますが、これを処理するための私のオプションは何ですか?返されるNSInputStreamは同じインスタンスである必要はなく、単に同じデータを提供する必要があります。

私が今思いつくことができる最善の方法は、STDINを一時ファイルにコピーしてから、そのファイルを使用してNSInputStreamインスタンスを返すことです。これはそれを処理するためのほとんど唯一の方法ですか?一時ファイルルートを使用する場合に注意すべき点はありますか?

編集| 言及する必要がありますが、これは実際にはSTDINではなく、マルチスレッドFastCGIアプリケーションにあり、FCGX_Request.inSTDINからのストリームです。

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

objective-c - NSInputStreamへのNSDictionary

NSDictionaryをNSInputStreamに入れることは可能ですか?これは私のNSDictionaryになります

私はこのようなことを試みましたが、うまくいきませんでした...

ありがとう

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

cocoa - PDF を非常に高解像度の NSImage ビットマップ ファイルにレンダリングする方法

PDF を非常に高解像度の画像 (最大 100,000 * 80,000 ピクセル以上) にレンダリングする必要があります。

レンダリングをいくつかのスライスに分割し、NSOperationQueue を使用してそれぞれをレンダリングし、基本的に drawInRect:fromRect:operation:fraction: を使用して NSImage pdf 表現を新しい NSImage に描画し、TIFFRepresentation をファイル。

すべてが良好で、マルチコアで高速で、ほぼ満足しています。いずれにせよ、それらのスライスをレンダリングした後で再度結合して、単一の TIFF ファイルを取得する必要があります。

NSInputStream と NSOutputStream を使用してファイルをマージしようとしますが、各ファイルは完全な tiff 表現であるため、未加工のバイトをマージすると、画像ファイルが読み取れなくなります。イメージ ファイルを RAM に完全にロードせずに、つまり NSImage メソッドを使用せずにマージする方法はありますか?

それ以外の場合は、tiff 表現の代わりに生のピクセル バイトを保存し、それらを NSInputStream/NSOutputStream に結合できますが、巨大なものを RAM にロードすることなく、バイト ファイル全体を認識可能な TIFF に変換するにはどうすればよいでしょうか?

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

objective-c - NSInputStream getBuffer:長さ:機能しませんか?

getBuffer:length:NSInputStreamのメソッドを本当に使いたいです。多くの調査の結果、ほとんどの人が本当に必要としていたため、この方法を使用する有効な例を見つけることができませんでしread: maxLength:た。

だから今、周囲のいくつかの事実:*私はiPhone、iOS3.1.3用のアプリを開発しています*私はソケットを介してネットワーク通信を確立しました*そのネットワーク接続は実際に機能します。だから私はランループや有効なデリゲートなどにストリームを追加することを忘れませんでした-それはすでに機能しています*私はネットワークを介して文字列を送受信しているだけです。*実装する有効なデリゲートを設定しましたstream: handleEvent:正しく(受信したイベントを区別し、適切なアクションを実行します)。メッセージを2回受信することがあるため、受信コードが100%正しいかどうかはわかりません。これは、通信しているデバイスの実装に問題がある可能性もあります。最後のポイントのどれであるかを把握するために、「NSStreamEventHasBytesAvailable」イベントを受信したときに、受信バッファーに実際に何バイトあるかを調べようとしています。実装が正しいかどうかはわかりませんが、実際に受け取ったバイト数を知りたいので、後で使用getBuffer: length:して長さを確認したいと思いました。奇妙なことに、長さはコンソールに印刷されません。 [((NSInputStream *) stream) getBuffer: &buf length: &numBytes]常にFALSEと評価されます。とにかく、その後のコードの部分は正しく機能し、バッファでメッセージを受信して​​正しく転送します-うまく機能します。疑問が残ります:なぜ機能しないgetBuffer: length:のですか?関心のあるコードはここにあります:

`ケースNSStreamEventHasBytesAvailable:{

`

誰かが私を助けてくれたらいいのに!

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

iphone - iPhone での Web リクエストのトンネリング

Webリクエストをトンネリングできるかどうか、そしてもちろん何を使用/実装するかを知りたいです。

私はすでにNSInputStreamNSOutputStreamのサブクラスを作成して、カスタム プロキシ サーバー経由でデータを送受信します。これは、ソケット接続でうまく機能しています。

UIWebViewNSURLRequestのデリゲートを実装しようとしましたが、 UIWebViewから行われたすべての HTTP リクエストをキャプチャできませんでした。

前もって感謝します。