2011-07-14 56 views
1

您好,我在Objective C中遇到了NSOutputStream问题。我有一台服务器在我的计算机上运行,​​iPhone模拟器向服务器发送数据,服务器应该发回它。唯一的问题是,当我发送它时,它不会发送文本,直到我退出模拟器,并且只有服务器才能获取信息。客观C输出流冲洗问题?

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()方法。有谁知道这个问题?

谢谢!

+0

你是如何创建/初始化你流? – highlycaffeinated

+0

我编辑它^并包括创建/初始化 –

回答

1

在消息要发送给服务器添加为“\ r \ n”结尾:

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