你好,我在 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/