問題タブ [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.
ios - iOS:ビデオをファイル システム/アルバムに直接転送/ストリーミングする方法
だから私は現在データ転送アプリに取り組んでいます。私が現在取り組んでいるアプローチは、ソケットを使用してファイルを転送することであり、私の質問は特にビデオファイルに関するものでした。したがって、現在、基本的に、受信したビデオをメモリ内の一時ファイルに保存し、そこからファイル システム (UIImageWriteToSavedPhotosAlbum メソッドを使用したアルバム) に保存します。今私の質問は、実際にビデオファイルをフォトアルバムに直接受信する(ある意味でストリーミングする)だけで保存する良い方法/アプローチはありますか?洞察、特にこのようなことが行われているリンク/例をいただければ幸いです。
ありがとう!
ios - マルチピア接続 (Swift 2) を使用して送信者からターゲットの iPhone でオーディオ ファイルを部分的に受信する
送信側の iPhone から出力ストリームを開き、受信側の iPhone に入力 (受信) ストリームも実装しました。Multipeer Connectivity を使用して同じ Wi-Fi ネットワークを介して両方のデバイスを接続し、データを送信できます (オーディオ ファイルを NSData 形式に変換して、Outputstream 経由で送信します)。コードを繰り返し実行するたびに、さまざまな量のデータが受信されます。出力ストリーム コードは次のとおりです。
そして、私の入力ストリームコードは次のとおりです。
このデータの部分的な受信の原因と、解決策を策定するためのコードのその後の変更に関するヘルプは、非常に高く評価されます。
cocoa - Cocoa で TCP 経由で大きなファイルを送信する最良の方法
iOS デバイスと OSX デバイス間で大きな (ビデオ) ファイルを送信できる TCP パケット経由で送信されるプロトコルを考案しています。3 つの質問があります。
1) 良好なパフォーマンスを得るための各 TCP パケットの最大サイズは? 例: 65535 に近づいて TCP にデータを分割させるか、それとも特定のしきい値を下回るようにするか。後者なら何?
2) ファイルからデータ バッファを読み取り、TCP ソケット経由で送信する最もオーバーヘッドの少ない方法は何ですか? Cocoa ではよくあることですが、いくつかの方法があります。 NSInputStream - NSFileHandle - POSIX ファイル ハンドル
3) TCP ソケットから受信したデータをファイルに追加する最もオーバーヘッドの少ない方法は何ですか? NSOutputStream - NSFileHandle - POSIX ファイルハンドル
ソケットには GCDAsyncSocket を使用しています。
ありがとう!
objective-c - NSOutputStream を使用して現在の時刻をサーバーに出力する
NSOutputStream を使用して、クライアント (IOS デバイス) からサーバー (PC デバイス) にデータを出力しています。サーバーにデータを正常に送信できます。NSOutputStream を使用して現在の時刻を追加したいだけです。
NSOutputStream を使用して現在の時刻を送信するにはどうすればよいですか?
これが私のコードです
objective-c - NSTimer が機能しない
主な問題
Socket Rocket の帯域幅管理を実装しています。NSOutputStream
Socket Rocket の変更量を減らすために、ソケット用に作成されたラップのサブクラスを作成することにしましNSOutputStream
た。コンセプトは非常に素晴らしく、魅力的に機能するはずです。
遭遇問題
メソッドでは- (NSInteger)write:(const uint8_t *)buffer maxLength:(NSUInteger)len
、データを送信できるかどうかを帯域幅マネージャーから問い合わせています。そうでない場合、帯域幅マネージャーは次の書き込み操作に必要な遅延を与えてくれます。
したがって、私のコードは多かれ少なかれ次のようになります。
私が見ることができるログでは、(実行ループがあり、作成されたタイマーが含まれています):
これで、カスタム ストリームとラップされたストリームがこの実行ループでスケジュールされた実行ループができたので、ソケット ロケットとラッピング クラスがすべての通知を受け取っているので、明らかな間違いをすべて除外しました。
それでも、何らかの不思議な理由notifyReadyToWrite:
で呼び出されることはありません。誰かが理由を知っていますか?
ios - NSOutputstream と NSInputstream を使用して、間隔ごとに書き込みと読み取りを行います
NSOutputstream と NSInputstream を使用して、間隔ごとに、たとえば 5 秒ごとに読み書きしようとしています。これは、Windows 上の C# プログラムと P2P 方式で通信するためのものです。
NSOutputstream を使用して C# プログラムに 5 秒ごとに要求を送信すると、NSInputstream が C# プログラムからの応答を読み取ります。
現在私は持っています:
接続クラスは、NSTimer と NSRunLoop で以下のように使用されます。
最初の実行は常に問題ありません。現在の時刻を取得して正しく表示できます。しかし、その後の実行は決して成功しません。出力ストリームはバイトを書き出すことができません。また、読み取り時に入力ストリームで次のエラーが発生しました。
ErrorOccurred: オプション ("エラー ドメイン = NSPOSIXErrorDomain コード = 32 \"壊れたパイプ\"")
私は長い間検索を試みましたが、解決策を見つけることができませんでした。どんな助けでも大歓迎です。
swift - Swift 3 で NSOutputStream にデータを書き込む
この質問の解決策は、Swift 3 では機能しなくなりました。
(以前bytes
の.Data
NSData
このコードでは、次のエラーが表示されます。
Swift 3でどのように書き込むことができますData
か?NSOutputStream
ios - バックグラウンド スレッドで作業を実行した後の NSOutputStream への書き込みが機能しない
初期処理の後、NSStreams 経由で大きなファイルを送信するプログラムがあります。申請の流れは次のようになります。
1) 2 つのデバイスが相互に接続し、入力ストリームと出力ストリームを開き、実行ループをスケジュールします。
2) サーバー デバイスはクライアントにメッセージを送信し、すべての準備が整ったことを示します。クライアントはこのメッセージを問題なく受け取ります。
3) クライアントは、サーバーに送信するファイルのリストを選択し、[送信] をクリックします。次に、クライアントはバックグラウンド スレッドをスピンオフして、多数のファイルを取得し、それらをすべて圧縮します。これには 1 分ほどかかる場合があります。
4) 「sendFileWithItem:」への呼び出しは、次の呼び出しを行うことにより、情報の最初のバーストを配信します。
以下のすべてのデータは、への呼び出しを通じてデータを送信することによって転送されます- (void)stream:(NSStream *)aStream handleEvent:(NSStreamEvent)streamEvent
問題
ここで私が見ている問題は、これらのファイルを圧縮するためのバックグラウンド スレッドに時間がかかる場合、書き込みデータへの最初の呼び出しはバイトがストリームに書き込まれたことを示しますが、- (void)stream:(NSStream *)aStream handleEvent:(NSStreamEvent)streamEvent
. サーバーは情報を受け取りません。約 30 秒後、書き込みコマンド (私は推測しますか?) がタイムアウトし、クライアントは空の文字列 (サーバーから明示的に送信されたものではありません) を受信し、クライアントの接続が閉じます。
圧縮に時間がかからないファイルを送信した場合、この問題は発生しません。
zip プロセスを含むすべてをメイン スレッドで実行しても、問題は解決しません (UI がロックされるという事実を無視しても)。これはスレッド化が問題である可能性を排除しているように見えますが、今はこれだけで十分です。
私は完全にアイデアがありません。誰かが私を助けてくれることを願っています。
注: この提案を見越して、CocoaAsyncSockets ライブラリは使用できません。