簡體   English   中英

NSInputStream讀取:maxlength:返回的字節數比maxlength多

[英]NSInputStream read: maxlength: returning way more bytes than maxlength

我有一個iOS應用程序,其中使用NSInputStream(基於CFReadStreamRef)從網絡套接字讀取。 我不斷從服務器獲取數據,並繼續讀取和處理數據(使用read:bytesBuffer maxLength:l )。 它在前幾次工作正常,但是在讀取20-25時,此方法報告它讀取了巨大的字節數,例如,當我真正要求最大1-3MBytes時,讀取了4,294,967,295字節。 這很奇怪,似乎是NSInputStream / CFReadStream API中的錯誤。

我的應用最終嘗試將所有這些字節加載到未分配用於返回的字節數的緩沖區中時崩潰(並且服務器首先沒有返回這么多字節!)

有人遇到過這個問題嗎?

謝謝!

read:maxLength:的返回值是一個NSInteger ,失敗時將為負。 您可能將其轉換為無符號整數類型,它將把負數變成巨大的正數。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM