问题标签 [nsstream]

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 回答
4743 浏览

iphone - 如何在 iPhone 上的 TCP 连接上禁用 Nagle 算法

我正在构建一个套接字,使用

我看到当我使用“myWriteStream”发送消息时,它会将几条消息连接在一起然后发送它们。我认为这是因为 Nagle 算法而发生的,我想禁用它。有谁知道怎么做?

0 投票
4 回答
5310 浏览

iphone - 缓冲 NSOutputStream 用作 NSInputStream?

我有这个消费者类,它将一个 NSInputStream 作为参数,将被异步处理,我想推送来自生产者类的数据,该生产者类要求它提供一个 NSOutputStream 作为其输出源。现在我如何设置一个缓冲(或透明)流作为生产者的输出流,同时作为我的消费者类的 NSInputStream?

我看了一点 NSOutputStream +outputStreamToMemory 和 +outputStreamToBuffer:capacity: 但还没有真正弄清楚如何将它用作 NSInputSource 的输入。

我有一些想法,即建立一个包含实际缓冲区的中间人类,然后创建两个子类(每个 NSInput/OutputStream 一个),它们包含对该缓冲类的引用,并让这些子类将大多数调用委托给该类,例如,输出子类方法 hasSpaceAvailable、write:maxLength: 和输入的 hasBytesAvailable、read:maxLength: 等。

任何有关如何处理这种情况的提示都值得赞赏。谢谢。

0 投票
3 回答
1435 浏览

iphone - NSStream 在关闭时挂起

我在连接到服务器的 iphone 应用程序中有一个 NSInputStream 和一个 NSOutputStream 。我能够毫无问题地读取和写入数据到套接字。问题是我有一个断开按钮,当我尝试在任何一个流上调用 close 时,它​​都会挂起应用程序。我猜我试图在错误的时间关闭,但我不确定正确的时间是什么时候。

0 投票
1 回答
2763 浏览

iphone - 带有 HTTPBody 输入流的 NSURLRequest:流在打开之前发送事件

NSURLConnection我想使用(和)向服务器发送大量数据NSURLRequest。为此,我创建了一对绑定的NSStreams(使用CFStreamCreateBoundPair(...))。然后我将输入流传递给NSURLRequest( -setHTTPBodyStream:) 并在当前运行循环中安排输出流。当运行循环继续时,我得到发送数据的事件,输入流将此数据发送到服务器。

我的问题是,这仅在数据适合成对流之间的缓冲区时才有效。如果数据更大,那么输入流会以某种方式获得一个事件(我假设“字节可用”),但 NSURLConnection 尚未打开输入流。这会导致打印一条错误消息,并且不会发送数据。

-stream:handleEvent:如果输入流尚未打开,我试图通过简单地返回来在我的方法中捕获这一点,但随后我的输出流会收到一个流关闭事件(可能是因为我从来没有在我可以发送数据的时候发送数据)。

所以我的问题是:如何正确使用 NSURLConnection 的绑定流对?

(如果这很重要:我正在 iOS 平台上开发)

任何帮助表示赞赏!

干杯,马库斯

0 投票
1 回答
6319 浏览

iphone - iPhone:使用 NSStream 捕获连接错误

我编写了一个程序,它使用 Apple 的流编程指南中概述的 NSStream 协议连接到给定 IP 上的服务器。数据的连接和传输完美无缺,但是如果用户指定了错误的 IP 并且程序尝试打开流,则会导致程序无响应。

根据我的阅读,handleEvent 方法检测到流错误,但是当我检查 eventCode == NSStreamEventErrorOccurred 的条件时,似乎什么也没发生。我的连接代码如下:

关于如何指定超时值或允许按钮在无法建立连接时触发关闭流的任何想法?

0 投票
2 回答
5619 浏览

iphone - 来自 NSInputStream 的 NSData dataWithBytesNoCopy

我正在将图像数据从文件转码为 base64 编码字符串,然后在使用 NSStream 读取文件时返回字节。我想我快到了,但我在转换过程中的不同点不断遇到 EXC_BAD_ACCESS。

我对 NSStream 和缓冲区的世界还很陌生,所以如果我在这里采取了绝对错误的方法,请随时告诉我。

这是我到目前为止所得到的:

0 投票
2 回答
1658 浏览

iphone - NSStream 在读取时发布,“EXC_BAD_ACCESS”iPhone SDK

我有一个视图控制器,它是一个 NSStreamDelegate,当视图从导航控制器弹出时出现问题,同时正在流式传输某些内容,我收到“EXC_BAD_ACCESS”错误。我已经尝试关闭流,但如果有正在进行的流,它似乎并没有停止它。处理此问题的正确方法是什么,如果正在流式传输某些内容,您可以延迟视图弹出吗?

0 投票
1 回答
13121 浏览

iphone - 在目标 c 中使用 NSStream 将 NSData 写入输出流所需的帮助

我使用以下代码将文件从路径写入输出流,但每次我运行代码时,就我的文件大小(8MB 或 5MB 等)而言,它总是向流中写入 131768 个字节。有人可以帮我检查一下吗?我似乎找不到问题所在。还是有其他方法可以做到这一点?我正在使用带有以下代码的 NSStream:

0 投票
0 回答
645 浏览

iphone - Bonjour NSStreamEventHasBytesAvailable 事件速度(同时启用 WiFi 和蓝牙)

我正在 iPhone 设备上使用 Bonjour 服务开发一个网络应用程序。

我的问题是当我在我的设备上同时启用 WiFi 和蓝牙时 NSStreamEventHasBytesAvailable 事件速度很慢。

但奇怪的是,如果我只启用一个 WiFi 或蓝牙, NSStreamEventHasBytesAvailable 事件速度通常很快。

如果同时启用 WiFi 和蓝牙,它最初会很慢吗?

我必须考虑这种情况,因为任何用户都可以同时启用 WiFi 和蓝牙。

谢谢。

0 投票
2 回答
20145 浏览

objective-c - NSStream 和 Sockets,未调用 NSStreamDelegate 方法

我遵循了设置套接字流指南,并在课堂上有效地复制了该代码。无论我尝试什么,委托方法似乎都没有被调用。

在我的头文件中(基本上):

连接方法:

还尝试使用CFStreamCreatePairWithSocketToCFHost()[NSStream getStreamsToHost:port:inputStream:outputStream:- 都得到完全相同的结果。

我在connect方法的开头设置了一个断点,遍历每一行,每个指针都是有效的,并且似乎指向正确的对象。

在 GDB 中,setDelegate调用后按预期po [inputStream delegate]打印<myClass: 0x136380>,因此它已正确设置委托。

对于我的一生,我无法弄清楚为什么它拒绝stream:handleEvent:在我的班级上调用该方法:

希望我错过了一些非常简单和明显的东西,第二双眼睛可以发现我的错误。

提前感谢任何有耐心并花时间阅读本文的人!