问题标签 [nsoutputstream]

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

objective-c - 写入后 NSOutputStream 因访问错误而崩溃(Objective-c)

我一直在尝试为我的 iOS 应用程序启动并运行一个基本的 TCP 客户端,但遇到了一个我似乎无法解决的问题。

到目前为止,我可以连接,发送一条在服务器端收到的消息,但随后我的应用程序崩溃了。

客户端.h

客户端.m

控制台中的输出是

看起来,我的消息已发送,我收到流事件 #4,然后我遇到了错误的访问崩溃。问题是我不知道它在访问时遇到了什么问题?

任何帮助将不胜感激!

0 投票
2 回答
1725 浏览

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?

0 投票
0 回答
583 浏览

ios - NSOutputstream 尽管开放流阻塞

我正在尝试在 ObjectiveC/iOS 上实现一个简单的 TCP 服务器。最简单的例子可以归结为以下几点:服务器应维护多个 TCP 连接。每当读取数据(4 个字节)时,服务器应在该连接上回复一个答案(4 个字节)。

我首先创建套接字侦听器并将其安排在 CFRunLoop 中:

然后,在传入连接上,调用连接处理程序(这有效):

最后,在传入字节上,调用输入处理程序。读取四个字节并发送一个四字节回复:

问题是: handleInput 期间的 [outputStream write:...] 调用不发送字节,而是阻塞并且没有任何反应。客户端同时等待数据。

这是日志:

但是:当我将句柄输入中标有 1) 的行移动到 2) 时,一切正常。但是然后我同步等待数据,我不想这样做。

然后,相应的日志文件如下所示:

这里有什么问题?

0 投票
0 回答
364 浏览

objective-c - NSStreamDelegate 没有收到消息

我有一个使用NSStreamDelegate和工作正常的 TCP 连接类。它接收消息并以任何方式响应它们。在某些情况下,它应该打开第二个连接。这是第二类,与第一类非常相似。

打开时,第一个类应该等到流报告打开状态:

我的问题是,流委托方法-stream:handleEvent:没有被调用。

我在第一堂课中使用了几乎相同的代码,这很有效。即使我删除了dispatch_semaphore_wait();调用,委托方法也不会触发。

如果我不等待,我可以写入流。但是我必须在异步环境(第一类)中实现超时。

我在第一类的方法中调用该-openWithTimeoutBlock:方法。-stream:handleEvent:这会打断第二节课NSStreamDelegate吗?

任何想法如何解决这个问题?

0 投票
1 回答
2479 浏览

ios - 写入 NSStream 依赖 hasSpaceAvailable 方法或委托事件 NSStreamEventHasSpaceAvailable

在写到NSStream我应该依靠

' hasSpaceAvailable' 方法或 'handle:event' 方法中的事件

' NSStreamEventHasSpaceAvailable'

或者我应该检查' hasSpaceAvailable'如果不可用,我必须在特定时间后重试还是应该等到委托事件调用直到我开始写?

到目前为止,当我使用 hasSpaceAvailable 并在一段时间后重试时它的工作,不知道它是否正确的做法。

任何帮助都会非常有用。

0 投票
2 回答
128 浏览

ios - How to resume data download in other views?

I am using AFNetworking to download an mp3 file. The download happens in a particular ViewController. Since the mp3 file is quite large, it takes a few minutes to complete the download. The problem is that when i go to another ViewController, the download stops and i have to stay on the download ViewController and wait for the download to complete. That would be frustrating for the user! Is there a way to get the download going even when the download ViewController is dismissed? Here is the code i use for downloading:

0 投票
1 回答
94 浏览

ios - 从服务器添加数据

我正在开发一个使用 NSOutputStream 和 NSInputStream 的应用程序来尝试一下,看看我能做什么。我已经修改了本教程以允许我使用旧计算机作为服务器!我遇到的问题是我试图通过 NSOutputStream 发送字典然后接收它。不幸的是,服务器似乎正在添加一个字节的数据,所以我无法成功取消归档数据。这是我的代码....

在尝试 unarchiveOjectWithData 时,我收到一条错误消息“ * -[NSKeyedUnarchiver initForReadingWithData:]: incomprehensible archive (0x62, 0x70, 0x6c, 0x69, 0x73, 0x74, 0x30, 0x30)”。

在查看数据时,除了从服务器传入的数据的最后两个值之外,它似乎都是相同的,它将“0a”添加到数据的末尾。

我的问题是出了什么问题,为什么将这些数据添加到服务器的某个位置?谢谢你的帮助!

0 投票
0 回答
306 浏览

ios - 将 NSOutputStream outputStreamWithURL 与自定义 URL 协议一起使用

我正在编写一个自定义 URL 协议(NSURLProtocol 的子类)来处理需要特殊读写方式的本地文件。阅读时没问题:我可以成功地创建一个 URL,例如 -“my-funny-file-protocol://....”,并且一切正常。

当我尝试写入这种 URL 时,就会出现问题。特别是,我需要使用 NSOutputStream,所以我需要调用类似:

不会引发异常,控制台上没有日志,但结果始终是nil. 如果我使用标准file:协议,相同的文件可以工作:

为什么?事实上 NSURLProtocol 文档并没有很好地解释我的情况。也许我在我的 URLProtocol 实现中遗漏了一些东西......但是什么?

提前谢谢了,

0 投票
1 回答
229 浏览

ios - iOS - 在 FTP 中使用服务器外部 IP

我正在开发一个将数据直接上传到 FTP 服务器的应用程序,我正在使用苹果的simpleFTPSample示例。一切正常,除了当我尝试访问本地网络之外的 FTP 时,我无法连接到 FTP 服务器。

我遇到的问题是我需要使用服务器外部 IP。我正在使用通用 IP 连接服务器,但如何将指示传递给代码以使用服务器外部 IP?我是否必须更改NSOutputStream的某些属性或必须做其他事情?

更新:我一直在修改NSOutputStream,例如:

我的猜测是我必须对NSOutputStreamNSUrlConnection做一些事情,但我找不到任何地方。

0 投票
1 回答
592 浏览

ios - 流式传输视频的更好方式

目前我正在使用AVFoundation从 iPhone 相机中抓取帧然后将它们转换为UIImage然后我将它传输到NSOutputStream我将它发送到我的其他设备。

不幸的是,我很可能因内存过多而崩溃,因为它一度达到 300mb。

我的问题:有没有更好的方法来做到这一点或其他一些方法可以使它停止崩溃或在我发送图像和在另一台设备上获取图像之间有更少的延迟?或者我可以让它像一个生命流,它几乎就像接收设备上的一个视频?