ネットワークソケットから読み取るために(CFReadStreamRefに基づいて)NSInputStreamを使用しているiOSアプリがあります。サーバーからデータを取得し続け、読み取りと処理を続けます ( read:bytesBuffer maxLength:lを使用)。最初の数回は正常に動作しますが、約 20 ~ 25 回目の読み取りで、このメソッドは、たとえば 1 ~ 3MBytesの最大値を実際に要求したときに、 4,294,967,295バイトなどの膨大な数のバイトを読み取ったと報告します。これは奇妙で、NSInputStream/CFReadStream API のバグのようです。
これらすべてのバイトを、返されたバイト数に割り当てられていないバッファーにロードしようとすると、最終的にアプリがクラッシュします (そして、サーバーはそもそもこのようなバイト数を返していません!)
以前にこの問題に遭遇した人はいますか?
ありがとう!