iphone - Objective-C 输出流刷新问题?

标签 iphone objective-c tcp flush outputstream

你好,我在 Objective C 中遇到了 NSOutputStream 的问题。我的计算机上运行着一个服务器,iPhone 模拟器将数据发送到服务器,服务器应该将数据发回。唯一的问题是,当我发送它时,它不会发送文本,直到我退出模拟器,然后服务器才会获取信息。

NSString* toSend = chatField.text;
NSData* sendData = [[NSData alloc] initWithData:[toSend dataUsingEncoding:NSASCIIStringEncoding]];
[outStream write:[sendData bytes] maxLength:[sendData length]];
[chatField setText:@""];

我用

初始化了它
CFReadStreamRef reader;
CFWriteStreamRef writer;
CFStreamCreatePairWithSocketToHost(NULL, (CFStringRef)ipField.text, 5000, &reader, &writer);
inStream = (NSInputStream *)reader;
outStream = (NSOutputStream *)writer;
[inStream setDelegate:self];
[outStream setDelegate:self];
[inStream scheduleInRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode];
[outStream scheduleInRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode];
[inStream open];
[outStream open];

在我看来,我似乎缺少类似于 Java .flush() 方法的东西。有谁知道这个问题?

谢谢!

最佳答案

在发送给服务器的消息末尾添加“\r\n”:

NSString* toSend = [NSString stringWithFormat:@"%@\r\n", chatField.text];

关于iphone - Objective-C 输出流刷新问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6695202/

相关文章:

objective-c - 一些 objc_release 崩溃。可能是什么原因?

c# - 通过临时启用 NoDelay 套接字 "Flush"

c++ - BOOST ASIO - 如何编写控制台服务器

c++ - TCP 是否支持不可打印的字符?

iphone - 使用多个对象对 NSMutableArray/Dictionary 进行排序

iphone - 跨平台移动开发做了哪些工作?

iphone - 如何在 Coredata 中使用结构存储自定义对象

iphone - 如何在Core Data中定义条件级联删除规则?

iphone - 当 Cordova 2 在 iPhone 的外部页面中加载时,“deviceready”不会触发

objective-c - 如何在 Cocoa 中接收 NSTask 的输出?