问题标签 [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.

0 投票
1 回答
1477 浏览

objective-c - 如何在从 NSMutableData 读取的 NSInputStream 上发出 NSStreamEventEndEncountered 信号

在 Cocoa 中,我设置了两个 NSThread,一个生产者和一个消费者。生产者将数据附加到 NSMutableData,接收者从该数据中打开一个 NSInputStream 并以块的形式读取。

生产者线程的写入速度比消费者进程快很多,这没关系。但是生产者只生产有限数量的工作,然后退出。我想让消费者线程处理 NSStreamEventEndEncountered 事件。当 NSInputStream 来自 NSMutableData 时,我该如何发出信号?

我是否应该让生产者发送一系列带有表示流结束的神奇数字的字节?

0 投票
2 回答
2065 浏览

iphone - 类 NSURLRequest。方法 - (NSInputStream *)HTTPBodyStream 总是返回 nil。为什么?

我正在尝试将 NSURLRequest 与 NSURLConnection 一起使用来建立到 HTTP 服务器的二进制流连接,以以小的增量方式检索庞大的数据文件。

我在 NSURLRequest 上看到了方法 - (NSInputStream *)HTTPBodyStream。那是我想在我的 NSURLRequest 实例上调用的方法吗?如果是这样,为什么它总是返回零?

0 投票
1 回答
6580 浏览

iphone - 我错过了什么?: iPhone Objective-C NSInputStream initWithData

我正在从一个 NSData 对象创建一个 NSInputStream,但是一旦创建了流,就会为 hasBytesAvailable 报告 NO:

日志:

我在这里想念什么?

0 投票
1 回答
1980 浏览

iphone - 流式传输 JPEG,检测 JPEG 结束

我创建了一个 java 服务器,它可以截取屏幕截图,调整它们的大小,然后通过 TCP/IP 将它们发送到我的 iPhone 应用程序。然后应用程序使用 NSInputStream 收集传入的图像数据,使用字节缓冲区创建一个 NSMutableData 实例,然后创建一个 UIImage 对象以在 iPhone 上显示。屏幕共享,本质上。我收集图像数据的 iPhone 代码目前如下:

正如代码中的注释所示,我的问题是确定何时停止在 NSMutableData 对象中收集数据,并使用这些数据创建 UIImage。在传入字节中查找 JPEG 文件结束标记——图像结束 (EOI) 标记 (FFD9)——似乎是有意义的,因为在发送时图像将准备好显示。我该如何测试呢?我要么遗漏了有关数据如何存储的信息,要么遗漏了 JPEG 文件中的标记,但是对此测试的任何帮助将不胜感激!

詹姆士

0 投票
1 回答
2796 浏览

cocoa - Cocoa 从 FTP 连接读取 NSInputStream

我(显然)设法建立了一个 ftp 连接,但无法从中读取任何内容,并且有充分的理由:在连接超时之前我无法读取。

这是我的代码:

标题:

执行:

对于事件处理,我使用它,基于http://www.cocoadev.com/index.pl?NSStream

我从这篇文章中省略了 oStream 设置以保持最小化。

我还没有向 FTP 发送切换到 ssl 的请求。

非常感谢任何帮助,因为我发现 Xcode 对于调试来说非常糟糕(在失败的步骤上没有异常或错误消息)。

  • 查克
0 投票
1 回答
537 浏览

objective-c - 不止一次处理潜在的大型 STDIN 数据

我想在一个为 STDIN 提供 NSInputStream 的类上提供一个访问器,它可能是几百兆字节(或千兆字节,尽管可能不太可能)的数据。

当调用者得到这个 NSInputStream 时,它应该能够从中读取,而不必担心耗尽它包含的数据。换句话说,另一个代码块可能会请求 NSInputStream 并期望能够从中读取。

如果没有首先将所有数据复制到 NSData 对象中(我假设)会导致内存耗尽,那么我有什么选择来处理这个问题?返回的 NSInputStream 不必是同一个实例,它只需要提供相同的数据。

我现在能想到的最好的方法是将 STDIN 复制到一个临时文件,然后使用该文件返回 NSInputStream 实例。这几乎是处理它的唯一方法吗?如果我走临时文件路线,有什么需要注意的吗?

编辑 | 我应该提一下,它实际上不是STDIN,这是在多线程 FastCGI 应用程序中,它FCGX_Request.in是来自 STDIN 的流。

0 投票
2 回答
453 浏览

objective-c - NSDictionary 变成 NSInputStream

是否可以将我的 NSDictionary 放入 NSInputStream 中?这将是我的 NSDictionary

我尝试过这样的事情,但它没有奏效......

多谢

0 投票
1 回答
1421 浏览

cocoa - 将 PDF 渲染成非常高分辨率的 NSImage 位图文件的方法

我必须将 PDF 渲染成非常高分辨率的图像(比如说高达甚至超过 100,000 * 80,000 像素)。

我设法做到这一点,通过将渲染分成几个切片然后使用 NSOperationQueue 渲染每个切片,基本上使用 drawInRect:fromRect:operation:fraction: 将 NSImage pdf 表示绘制到一个新的 NSImage 中,然后将 TIFFRepresentation 保存到文件。

一切都很好,多核而且速度很快,我几乎很高兴。无论如何,我需要在渲染它们之后再次加入这些切片,以获得单个 TIFF 文件。

我会尝试使用 NSInputStream 和 NSOutputStream 合并文件,但由于每个文件都是完整的 tiff 表示,将原始字节合并在一起会导致无法读取的图片文件。有没有办法将图像文件合并在一起而不将它们完全加载到内存中,即不使用 NSImage 方法?

否则我可以保存原始像素字节而不是 tiff 表示,然后将它们与 NSInputStream/NSOutputStream 连接,但是我如何将整个字节文件转换为可识别的 TIFF,而无需再次将巨大的东西加载到 ram 中?

0 投票
3 回答
6297 浏览

objective-c - NSInputStream getBuffer:长度:不起作用?

我真的很想使用getBuffer:length:NSInputStream 的方法。经过大量研究,我找不到使用这种方法的有效示例,因为大多数人确实需要read: maxLength:.

所以现在关于环境的一些事实: * 我正在为 iPhone 开发一个应用程序,iOS 3.1.3 * 我已经通过套接字建立了网络通信 * 该网络连接确实有效;所以我没有忘记将一个流添加到 runloop 或一个有效的委托或类似的东西 - 它已经工作了 * 我只是通过网络发送和接收字符串。* 我设置了一个有效的委托来实现stream: handleEvent:正确(区分接收到的事件并采取适当的措施)。我不确定接收代码是否 100% 正确,因为我有时会收到两次消息。这也可能是我正在与之通信的设备上的错误实现引起的。为了弄清楚它是最后一个点中的哪一个,我试图找出当我收到“NSStreamEventHasBytesAvailable”事件时接收缓冲区上有多少字节。因为我不确定我的实现是否正确,但我想知道我收到的实际字节数,我想使用getBuffer: length:并查看之后的长度。奇怪的是:长度从未打印在控制台上,因为 [((NSInputStream *) stream) getBuffer: &buf length: &numBytes]总是评估为 FALSE。无论如何,之后的代码部分可以正常工作,在缓冲区中接收消息并正确转发 - 工作正常。问题仍然存在:为什么不起作用getBuffer: length:?感兴趣的代码在这里:

` 案例 NSStreamEventHasBytesAvailable: {

`

如果有人可以帮助我,那就太好了!

0 投票
1 回答
1205 浏览

iphone - iPhone 上的隧道网络请求

我想知道是否可以通过隧道传输 Web 请求,当然还有使用/实现什么。

我已经编写了NSInputStreamNSOutputStream的子类来通过我的自定义代理服务器发送和接收数据,这对于套接字连接非常有效。

我试图实现UIWebViewNSURLRequest的代表,但我无法捕获从UIWebView发出的所有 HTTP 请求。

先感谢您。