问题标签 [nsinputstream]
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.
iphone - iOS HTTP 多部分形式的流式请求
我必须为我的应用程序实现文件上传。资产(可以是照片或视频)之类的文件应该使用 REST 接口上传到 Web 服务器。
上传将使用带有自定义标头属性的表单数据请求。
问题:
在对象中保存像视频这样的大文件NSData
可能会导致内存问题。这将是标准方法。
解决方案
为NSInputStream
请求的正文部分提供一个 - 并将数据逐个写入 HTTP 正文流。
问题谁能提供一个如何结合使用 NSInputStream 和 a 的NSURLrequest
例子NSURLConnection
?
我围绕着几个不完整的例子转了转——
但我不知道如何处理以下方法
我不想使用任何第三方库。
ios - RN42 蓝牙在 iOS 上的流数据数秒内断开连接
我一直在尝试使用 RN-42 通过蓝牙 2.1 从设备读取数据。设备与 iPhone 或 iPad Mini 配对,数据短暂传输,但 iOS 和 BT 模块会在几秒钟内(不到 10 秒)断开连接(取消配对)。该设备以 5-10kB/s 的速度输出数据,完全符合蓝牙规范。我还注意到,当我运行函数 NSInputStream, [NSInputStream read: maxLength:] 时,返回的字节数始终为 158 或更少。应用程序和硬件不会崩溃,但蓝牙只是取消配对。
即使在断开连接后,该设备仍在向 RN42 发送数据,这降低了电子设备出现问题的可能性。此设置在 Android 设备上也可以正常工作。我可以在没有任何断开或崩溃的情况下流式传输数据。
我尝试过的事情...
- 遵循 Apple 提供的外部附件示例 EADemo。
- 纯粹使用运行循环而不是轮询。
- 按照本文中的建议将流放在后台线程上。
- 删除所有 NSLog 以帮助提高性能。
- 在调试和发布模式下编译。
一种有效的方法是减慢数据传输速度(即低于 5kB/s),因为这允许 iOS 和 BT 模块在断开连接之前保持连接并传输更长时间的数据。
ios - 不兼容的指针类型 'uint8_t *' 发送到 'uint8_t **' - 如何修复?
我收到警告
不兼容的 ponter 类型 'uint8_t *' 发送到 'uint8_t **'
在 NSStream 类的以下方法中将值传递给参数“缓冲区”时
下面是我正在使用的代码。'fileStream' 是 'NSInputStream' 即时对象
ios - 我无法初始化 NSInputStream
请帮帮我,我要疯了。我需要创建一个,NSInputStream
以便我可以通过 wifi 从相机读取实时预览。liveViewStream 是一个NSInputStream
-Instance-Variable,在我的实现中声明如下:
liveViewURL
是一个有效的 URL,当我连接到相机的网络时,我可以在浏览器中打开它(尽管我认为这没有任何区别)。我已经检查过它是否存在,不为零并且持有我期望的值。但是当我这样做时:
alloc-init 命令之后的 DLog 每次都会记录“(null)”,如果我知道为什么,我会被诅咒的。有没有人遇到过这个?我在这里错过了什么明显的东西吗?这是我第一次与 合作NSStreams
,是否有一个常见的陷阱可能是原因?文档明确指出-initWithURL:
有任何想法吗?我开始觉得这里真的很愚蠢。
编辑:我正在使用 ARC。
tcp - How to create a NSInputStream/NSOutputStream pair by accepting a server socket?
I know that you can create a NSInputStream
and NSOutputStream
pair (toll-free bridged to CFReadStream
, CFWriteStream
) by opening a TCP client connection using CFStreamCreatePairWithSocketToHost
according to the Stream Programming Guide.
How can one create a TCP server that listens on a port and accepts a connection as a NSInputStream
and NSOutputStream
pair?
cocoa-touch - -[NSInputStream read:maxLength:] 是否阻塞?
我似乎无法在任何地方找到答案,但是read:maxLength:
在NSInputStream
数据可用或出现错误之前一直阻塞,或者我是否需要hasBytesAvailable
在尝试阅读之前进行轮询?
objective-c - NSStreamDelegate 没有收到消息
我有一个使用NSStreamDelegate
和工作正常的 TCP 连接类。它接收消息并以任何方式响应它们。在某些情况下,它应该打开第二个连接。这是第二类,与第一类非常相似。
打开时,第一个类应该等到流报告打开状态:
我的问题是,流委托方法-stream:handleEvent:
没有被调用。
我在第一堂课中使用了几乎相同的代码,这很有效。即使我删除了dispatch_semaphore_wait();
调用,委托方法也不会触发。
如果我不等待,我可以写入流。但是我必须在异步环境(第一类)中实现超时。
我在第一类的方法中调用该-openWithTimeoutBlock:
方法。-stream:handleEvent:
这会打断第二节课NSStreamDelegate
吗?
任何想法如何解决这个问题?
ios - 来自 NSInputStream 的 UIImage
我正在从 Parse 下载 2400x1600 图像,我不希望它一次将所有数据保存在内存中。Parse 的 PFFile 对象有一个方便的方法来获取 NSData 作为 NSInputStream,所以当最终下载数据时,我最终得到一个 NSInputStream。所以现在我想使用那个 NSInputStream 来获取我的 UIImage。它应该像使用文件方法的内容创建 UIImage 一样工作,即不是将整个图像一次加载到内存中。我认为从 NSInputStream 写入文件然后使用 UIImage 的文件内容方法在我的情况下应该可以正常工作,但是我发现无法从 NSInputStream 写入文件。
任何代码示例或一些指南将不胜感激。
提前致谢。
ios - 使用 NSInputStream 遇到问题
尝试编写基本 iPhone 应用程序的新手。我为服务器编写了代码,可以将我的应用程序中的线路发送到服务器,但我无法从我的服务器接收线路。
此外,这个应用程序似乎只有在我使用调试器运行它时才能工作。
任何帮助表示赞赏。谢谢。
这是我的代码:
ios - 异步读取大文件导致 iOS 上的空读取块
这让我很难过。我正在尝试逐行读取 iOS 上的 6MB CSV 文件。我尝试过使用纯 C 文件指针和 NSInputStream 轮询,但选择了以下感觉最干净的方法。所有这三种方法都会导致看似随机的读取块返回成功,但会用所有空字节填充缓冲区。我说“随机”,但它具有一致性。重新运行程序时,读取在完全相同的点停止工作,并且读取的数量是可疑的(更多内容见下文)。
在读取 6MB 文件时,当 CHUNK_SIZE 为 1024 时,我将获得一系列 96 次“错误读取”。如果 CHUNK_SIZE 为 512,则会出现一系列 192 次“错误读取”。我所说的“坏读”是什么意思?NSInputStream 读取消息返回成功,委托回调中没有错误事件发生。然而bytes
缓冲区具有所有空值。
- iOS 7.0.4,iPad 2
- 不会发生在桌面上
- 在模拟器中不会发生
- 将文件大小减小到大约。1MB“修复”了 iPad 上的问题
最有可能值得注意的是,我在主 UI 线程上实例化了 reader 类。
所以......我在这里做错了什么微妙(或不微妙)吗?还是我发现了某种晦涩难懂的 iOS 错误?