【问题标题】:NSInputStream example?NSInputStream 例子?
【发布时间】:2011-07-24 01:22:06
【问题描述】:

我正在尝试创建一个可以与服务器通信的简单 iPhone 应用程序(该服务器目前正在我的计算机上运行并且工作正常)。我一直在尝试使用 NSStream 类,但遇到了很多问题。我真的只是想模仿使用流的 telnet 类型的连接。我已经设法使用 NSOutputStream 将数据发送到我的服务器,但我不知道如何使用 NSInputStream 来读取从服务器发送的回复。这是我到目前为止的方法:

    -(void)sendName:(NSString *)name{
NSData*nameData = [name dataUsingEncoding:NSUTF8StringEncoding];
[outputStream write:(uint8_t *)[nameData bytes] maxLength:[nameData length]];

    //The server sends a reply here.
    [inputStream read:? maxLength:?]; // I don't know what do to here.


[inputStream close]; //Created and opened elsewhere.
[outputStream close]; //Created and opened elsewhere.
    }

我不知道如何让 inputStream 读取服务器发送的内容。我尝试将 NSData 对象作为缓冲区传递,但它总是崩溃。那么如何创建缓冲区呢?此外,为了确保缓冲区不会填满(尽管可能会浪费空间),使长度变大是不是很糟糕?一些示例代码会很棒!提前致谢!

【问题讨论】:

标签: iphone objective-c


【解决方案1】:

关于 NSStreams,您需要了解的是“不要给我们打电话,我们会打电话给你”。当流有可用数据时,它会通知它的委托,然后你读取任何可用数据并告诉它去获取更多数据。

阅读Streams Programming Guide

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多