問題タブ [nsoutputstream]

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 に答える
2724 参照

objective-c - NSOutputStream が書き込み後に不正アクセスでクラッシュする (Objective-c)

iOS アプリケーション用に基本的な TCP クライアントを起動して実行しようとしていますが、頭を働かせることができないように見えるブロックに遭遇しました。

これまでのところ、サーバー側で受信したメッセージを送信して接続できますが、アプリがクラッシュします。

Client.h

Client.m

コンソールの出力は

メッセージが送信され、ストリーム イベント #4 を受信した後、不正なアクセス クラッシュが発生したようです。問題は、何がアクセスに問題があるのか​​わからないことです。

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

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

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

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

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

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

ios - 開いているストリームにもかかわらず NSOutputstream のブロック

ObjectiveC/iOS に単純な TCP サーバーを実装しようとしています。最小限の例は次のようになります。 サーバーは複数の TCP 接続を維持する必要があります。データ (4 バイト) が読み取られるたびに、サーバーはその接続で応答 (4 バイト) を返します。

最初にソケット リスナーを作成し、それを CFRunLoop でスケジュールします。

次に、着信接続で、接続ハンドラーが呼び出されます (これは機能します)。

最後に、着信バイトで、入力ハンドラーが呼び出されます。4 バイトが読み取られ、4 バイトの応答が送信されます。

問題は、handleInput 中の [outputStream write:...] 呼び出しがバイトを送信せず、代わりにブロックされて何も起こらないことです。クライアントは同時にデータを待ちます。

これはログです:

しかし: 1)から2)でマークされたhandleInputの行を移動すると、すべて正常に動作します。しかし、私はデータを同期的に待ちますが、これはしたくありません。

次に、対応するログファイルは次のようになります。

ここで何が問題なのですか?

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

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

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

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

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

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

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

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

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

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

ios - 他のビューでデータのダウンロードを再開するには?

AFNetworking を使用して mp3 ファイルをダウンロードしています。ダウンロードは特定の ViewController で行われます。mp3 ファイルは非常に大きいため、ダウンロードが完了するまでに数分かかります。問題は、別の ViewController に移動すると、ダウンロードが停止し、ViewController のダウンロードに留まり、ダウンロードが完了するまで待たなければならないことです。それはユーザーにとってイライラするでしょう!ダウンロードViewControllerが閉じられた場合でもダウンロードを開始する方法はありますか? ダウンロードに使用するコードは次のとおりです。

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

ios - iOS - FTP でサーバーの外部 IP を使用する

AppleのsimpleFTPSampleの例を使用しているFTPサーバーにデータを直接アップロードするアプリを開発しています。ローカルネットワーク外のFTPにアクセスしようとするとFTPサーバーに接続できないことを除いて、すべて正常に機能しています。

サーバーの外部 IP を使用する必要があるという問題が発生しました。ユニバーサル IP を使用してサーバーに接続していますが、サーバーの外部 IP を使用するようにコードに指示を渡すにはどうすればよいですか? NSOutputStreamのいくつかのプロパティを変更する必要がありますか、それとも何か他のことをする必要がありますか?

更新:私は次のようにNSOutputStreamを変更しています:

私の推測では、NSOutputStreamまたはNSUrlConnectionで何かをしなければならないのですが、どこにも見つかりません。

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

ios - ビデオをストリーミングするより良い方法

現在、私はAVFoundationiPhoneカメラからフレームを取得し、それらをに変換してから、他のデバイスに送信するために使用しています UIImageNSOutputStream

残念ながら、ある時点で 300 MB に達すると、おそらくメモリが多すぎるためにクラッシュします。

私の質問:これを行うためのより良い方法、またはクラッシュを停止したり、他のデバイスで画像を取得したときのように画像を送信する間の遅延を少なくしたりする他の方法はありますか? または、受信側のデバイスのビデオのようなものをライフストリームのようにすることはできますか?