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

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

iphone - iPhoneのTCP接続でNagleアルゴリズムを無効にする方法

を使用して socket を構築しています

「myWriteStream」でメッセージを送信すると、いくつかのメッセージが連結されて送信されることがわかります。Nagle アルゴリズムが原因で発生していると思われ、無効にしたいと考えています。誰もそれを行う方法を知っていますか?

0 投票する
4 に答える
5310 参照

iphone - NSInputStream として使用される NSOutputStream をバッファリングしますか?

非同期に処理される引数として NSInputStream を取るこのコンシューマー クラスがあり、出力ソースとして提供される NSOutputStream を必要とするプロデューサー クラスからのデータをプッシュしたいと考えています。プロデューサーの出力ストリームとして機能し、同時にコンシューマー クラスの NSInputStream として機能するバッファリング (またはトランスペアレント) ストリームを設定するにはどうすればよいでしょうか?

NSOutputStream +outputStreamToMemory と +outputStreamToBuffer:capacity: を少し調べましたが、NSInputSource の入力として使用する方法がわかりませんでした。

実際のバッファを保持する仲介者クラスを設定し、このバッファリング クラスへの参照を保持する 2 つのサブクラス (NSInput/OutputStream ごとに 1 つ) を作成し、これらのサブクラスにほとんどの呼び出しをそのクラスに委譲させるという考えがありました。たとえば、出力サブクラス メソッドには hasSpaceAvailable、write:maxLength:、入力用には hasBytesAvailable、read:maxLength: などがあります。

この状況に対処する方法についてのヒントをいただければ幸いです。ありがとう。

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

iphone - NSStream が終了時にハングする

サーバーに接続されているiPhoneアプリにNSInputStreamとNSOutputStreamがあります。問題なくソケットにデータを読み書きできます。問題は、切断ボタンがあり、いずれかのストリームで close を呼び出そうとすると、アプリがハングすることです。私は間違った時間にクローズしようとしていると推測していますが、正しい時間がわかりません。

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

iphone - HTTPBody 入力ストリームを使用した NSURLRequest: ストリームは開かれる前にイベントを送信します

NSURLConnection(and )を使って大量のデータをサーバーに送りたいNSURLRequest。このために、バインドされたNSStreams のペアを作成します ( を使用CFStreamCreateBoundPair(...))。次に、入力ストリームをNSURLRequest( -setHTTPBodyStream:) に渡し、現在の実行ループで出力ストリームをスケジュールします。実行ループが続くと、データを送信するイベントを取得し、入力ストリームがこのデータをサーバーに送信します。

私の問題は、データがペアのストリーム間のバッファーに収まる場合にのみ機能することです。データが大きい場合、何らかの形で入力ストリームがイベントを取得します (「使用可能なバイト数」を想定しています) が、NSURLConnection はまだ入力ストリームを開いていません。これにより、エラー メッセージが出力され、データが送信されません。

-stream:handleEvent:入力ストリームがまだ開かれていない場合は単純に返すことで、メソッドでこれをキャッチしようとしましたが、出力ストリームはストリームの閉じられたイベントを取得します (おそらく、可能なときにデータを送信しなかったためです)。

私の質問は次のとおりです: バインドされたストリームのペアを NSURLConnection で正しく使用するには?

(これが重要な場合:私はiOSプラットフォームで開発しています)

どんな助けでも大歓迎です!

乾杯、マーカス

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

iphone - iPhone: NSStream で接続エラーをキャッチする

Apple のストリーム プログラミング ガイドで概説されている NSStream プロトコルを使用して、特定の IP 上のサーバーに接続するプログラムを作成しました。データの接続と転送は問題なく動作しますが、ユーザーが間違った IP を指定し、プログラムがストリームを開こうとすると、プログラムが応答しなくなります。

私が読んだことから、handleEvent メソッドはストリーム エラーを検出しますが、eventCode == NSStreamEventErrorOccurred という条件を確認すると、何も起こらないようです。私の接続コードは次のとおりです。

タイムアウト値を指定する方法や、接続が確立できない場合にボタンでストリームの終了をトリガーする方法についてのアイデアはありますか?

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

iphone - NSInputStreamからのNSDatadataWithBytesNoCopy

私は、ファイルからbase64でエンコードされた文字列に画像データをトランスコードし、NSStreamを使用してファイルが読み取られるときにバイトに戻す作業を行っています。もうすぐそこにいると思いますが、変換中のさまざまな時点でEXC_BAD_ACCESSに遭遇し続けます。

私はNSStreamとバッファの世界にかなり慣れていないので、ここで絶対に間違ったアプローチを取っている場合は、遠慮なく知らせてください。

これが私がこれまでに得たものです:

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

iphone - 読み込み中にリリースされたNSStream、「EXC_BAD_ACCESS」iPhone SDK

NSStreamDelegateであるビューコントローラーがあります。何かがストリーミングされているときにビューがナビゲーションコントローラーからポップされると、「EXC_BAD_ACCESS」エラーが発生するという問題があります。ストリームを閉じようとしましたが、進行中のストリームがある場合は停止しないようです。これを処理する適切な方法は何ですか?何かがストリーミングされている場合にビューがポップするのを遅らせることができますか?

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

iphone - 目標 c で NSStream を使用して NSData を出力ストリームに書き込む際に必要なヘルプ

パスから出力ストリームにファイルを書き込む次のコードを使用していますが、コードを実行するたびに、ファイル サイズ (8MB または 5MB など) に関して常に 131768 バイトがストリームに書き込まれます。誰かチェックしてくれませんか?問題が見つからないようです。それとも他の方法がありますか?次のコードで NSStream を使用しています。

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

iphone - Bonjour NSStreamEventHasBytesAvailable イベント速度 (WiFi と Bluetooth の両方が有効)

iPhone デバイスで Bonjour サービスを使用してネットワーク アプリを開発しています。

私の問題は、デバイスで WiFi と Bluetooth の両方を有効にすると、NSStreamEventHasBytesAvailable イベントの速度が遅くなることです。

しかし、奇妙なことに、WiFiまたはBluetoothのいずれか1つだけを有効にすると、NSStreamEventHasBytesAvailableイベントの速度は通常高速になります。

WiFiとBluetoothの両方を有効にすると元々遅いですか?

すべてのユーザーが WiFi と Bluetooth の両方を有効にできるため、この状況を考慮する必要があります。

ありがとう。

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

objective-c - NSStreamおよびSockets、NSStreamDelegateメソッドが呼び出されていない

ガイド「ソケットストリームの設定」に従い、クラスでそのコードを効果的に複製しました。デリゲートメソッドを何を試しても、呼び出されないようです。

私が持っているヘッダーファイルには(基本的に):

接続方法:

また、とを使用しCFStreamCreatePairWithSocketToCFHost()てみ[NSStream getStreamsToHost:port:inputStream:outputStream:ました-すべてまったく同じ結果になりました。

メソッドの先頭にブレークポイントを設定し、connectすべての行をステップスルーしました。すべてのポインターが有効であり、正しいオブジェクトを指しているようです。

GDBでは、setDelegate呼び出し後、期待どおりにpo [inputStream delegate]出力<myClass: 0x136380>されるため、デリゲートが正しく設定されています。

私の人生ではstream:handleEvent:、クラスでメソッドの呼び出しを拒否する理由を理解できません。

うまくいけば、私は本当に単純で明白な何かを見逃していて、2番目の目が私の間違いを見つけることができます。

忍耐強く、これまで読んでくれた人に感謝します!