问题标签 [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 投票
2 回答
6746 浏览

ios - 将字节读入 Swift 字符串

我有一个包含以下数据的二进制文件 test.data:

例如第一个字节就是一个序号01。接下来的6个字节是两个UTF8汉字“测试”。然后第8个字节又是另一个序号02。

据我所知,UTF8 是可变长度(1-4 个字节)。请参考这篇文章

我正在使用以下代码来读取 Int32 和 Byte(UInt8):

我想写一个从流中读取字符串的方法。这是我的想法:

  • 读取字节(假设我知道要读取多少字节)
  • 将字节转换为字符
  • 将字符附加到字符串中

但问题是要为一个字符读取多少字节,因为 UTF8 长度是不同的?一般来说,我的问题是我应该如何阅读 UTF8 字符串?提前致谢。

0 投票
3 回答
956 浏览

ios - 将 Objective-C 方法转换为 NSInputStream 的 Swift(将字节转换为双精度)

我在 Objective-C 中有以下代码:

有用。但我不知道如何将其转换为 Swift。这是我的代码:

错误信息是:

无法使用类型为“($T4,maxLength:IntegerLiteralConvertible)”的参数列表调用“&”

有人可以帮忙吗?谢谢

我正在使用的测试数据(1.25):

更新:

一个简单的 c 解决方案,但如何在 Swift 中做到这一点?

0 投票
1 回答
378 浏览

objective-c - NSInputStream read:maxLength: 无法读取数据,返回-1

在Objective C中,我有这样的东西:

我正在转换nsstring然后nsinputstream尝试阅读内容

但是在我调试代码之后,count里面有-1,即读取时发生错误。我不明白我在这里做错了什么!有人可以帮帮我吗。

注意Test.txt是一个纯文本文件,内容只是“Hello”,调试节目Str是用内容初始化的。这意味着try块中有问题。

任何帮助表示赞赏。

0 投票
0 回答
222 浏览

objective-c - 带有 NSStreamEventHasBytesAvailable 的 EXC_BAD_ACCESS

这是一个非常令人困惑的错误,因为即使我发送和接收相同的数据,有时也会发生,有时不会。

我通过 NSInputStream 接收一个流,我使用标准代码读取在该流中接收到的字节并将它们传递给另一个方法,如下所示:

有时,当开始接收流时,我会收到一条EXC_BAD_ACCESS (code = 1, address = 0x8)错误消息

我看不出是什么导致了这个问题,因为 aStream 永远不会等于 nil,因此在我阅读里面的内容之前永远不会被释放。我的理解是: maxLength 返回一个 NSInteger ,然后将其存储在长度中。我能想到的唯一问题是流中的数据,但除非我阅读它,否则我无法测试这些数据,这会导致恶性循环。

有什么想法吗?

编辑

这是完整的堆栈跟踪:

0 投票
1 回答
1232 浏览

ios - 可以获取 NSInputStream 数据并播放视频

我正在使用 NSSInputStream 和 NSOutputStream 发送和接收数据,在服务器中(我命名它):打开流向客户端发送数据

在 - (void)stream:(NSStream *)aStream handleEvent:(NSStreamEvent)eventCode

在客户端,如何接收数据和播放视频?,谢谢

0 投票
1 回答
893 浏览

ios - 在 NSRunLoop 上调度流

我一直在关注本教程http://www.raywenderlich.com/3932/networking-tutorial-for-ios-how-to-create-a-socket-based-iphone-app-and-server并且一切正常好的,但是文本中有一行我不明白:

我们的流必须不断准备好发送或接收数据。为了实现这一点,我们必须安排流在运行循环中接收事件。如果我们不分配运行循环,委托将阻止我们代码的执行,直到流上没有数据可读取或写入,这是我们想要避免的情况。

但是,如果我在代码中注释这些行:

一切都会正常工作。我真的不明白为什么我必须在主运行循环上安排这个?

正如我所看到的,主线程上发生的所有事情都在这个运行循环中处理。因此,如果我按下按钮,它将在主运行循环中处理。在这里,如果我没有在主运行循环上安排这个,字节仍然会被接收和发送,所以对我来说这意味着它们是在主运行循环上处理的。

0 投票
1 回答
331 浏览

ios - 使用 NSInputStream 从 iOS 客户端中的 Java 服务器接收到第一条消息后没有收到更多消息

我有一个 Java 服务器(它能够正确读取来自我的 iOS 客户端的请求——它甚至会生成一个响应并且似乎可以正确发送它,尽管我每次都从服务器收到第一个消息响应,但之后没有收到其他消息接收第一条消息):

沟通顺序

大多数时候不调用不止一个,但有时它调用并获取 MessagePacket2 或 MessagePacket4 数据。

请帮帮我,我无法弄清楚为什么我只收到来自服务器的第一个数据包而不是 4 个数据包,因为服务器发送了 4 个数据包。

我使用了以下教程中的代码-> http://www.raywenderlich.com/3932/networking-tutorial-for-ios-how-to-create-a-socket-based-iphone-app-and-server#注释

我的代码在这里->

0 投票
1 回答
134 浏览

ios - NSInputStream 子类

我实现NSInputStream了如下子类:

班级名称:SampleInputStream

之后我像这样从其他类调用这个类

但是read方法和getBuffer方法没有调用。

你能建议一下吗?

0 投票
0 回答
968 浏览

ios - NSStream 委托方法流:handleEvent:使用 EXC_BAD_ACCESS code=1 使应用程序崩溃

我正在使用 NSInputStream 以下列方式将媒体文件上传到服务器。

在 NSStream 委托方法 stream:handleEvent: 我正在获取媒体文件块并上传到服务器。

}

到目前为止一切顺利,在模拟器中一切正常。问题是,如果我在真实设备(现在是 iPad-mini)中测试相同的代码,它总是在委托方法 stream:handleEvent: 的分层中使用 EXC_BAD_ACCESS code=1 使应用程序崩溃。

有人对此有任何想法吗?任何帮助将不胜感激。

谢谢,杰伊·斯蒂芬。

0 投票
1 回答
79 浏览

ios - 无法强制取消 ftp 下载

我正在使用SimpleFTPSample从 FTP 服务器下载和上传。无论是否完成,我都必须在特定时间后取消下载并开始上传。但是如果我取消下载然后开始上传委托方法stream:handleEvent:就不会被调用。如果在下载完成后开始上传,则会调用委托方法。

我无法理解原因。我正在为这两个任务创建单独的连接。

由于我们需要调度runloop来处理网络流,而当我们强行取消下载时,runloop没有退出,这是这个原因吗?

我是否需要在单独的线程中启动这两个操作,以便在特定时间后开始上传?