繁体   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