我正在尝试创建一个简单的iPhone应用程序,它可以与服务器通信(服务器目前在我的计算机上运行,工作正常)。我一直在尝试使用NSStream类,但遇到了很多问题。我真的只想使用streams来模拟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对象作为缓冲区传入,但它总是崩溃。那么如何创建缓冲区呢?另外,让长度变大以确保缓冲区不会填满(尽管可能会浪费空间),这是不是很糟糕?一些示例代码将会很棒!提前感谢!
发布于 2011-07-24 11:28:19
关于NSStreams,你需要理解的是:“不要打电话给我们,我们会打电话给你的。”当流有可用的数据时,它会通知它的委托,然后您读取任何可用的数据,并告诉它去获取更多数据。
阅读Streams Programming Guide
https://stackoverflow.com/questions/6804400
复制相似问题