gpt4 book ai didi

objective-c - NSInputStream 读取 : maxlength: returning way more bytes than maxlength

转载 作者:行者123 更新时间:2023-11-28 20:29:53 25 4
gpt4 key购买 nike

我有一个 iOS 应用程序,我在其中使用 NSInputStream(基于 CFReadStreamRef)从网络套接字读取数据。我不断从服务器获取数据,并不断读取和处理它(使用 read:bytesBuffer maxLength:l)。前几次它工作正常,但在大约第 20-25 次读取时,此方法报告它读取了 HUGE 字节数,例如4,294,967,295 字节,而我真正要求的最大值是 1-3MBytes。这很奇怪,看起来像是 NSInputStream/CFReadStream API 中的错误。

我的应用程序最终崩溃了,因为它试图将所有这些字节加载到一个缓冲区中,该缓冲区没有为返回的字节数分配(而且服务器一开始就没有返回这么多字节!)

有没有人遇到过这个问题?

谢谢!

最佳答案

read:maxLength: 的返回值是一个 NSInteger,失败时为负数。您可能正在将其转换为无符号整数类型,这会将负数转换为巨大的正数。

关于objective-c - NSInputStream 读取 : maxlength: returning way more bytes than maxlength,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12634846/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com