Проблема с промывкой выходного потока цели C? - PullRequest
1 голос
/ 14 июля 2011

Здравствуйте, у меня проблема с NSOutputStream в Objective C. У меня запущен сервер на моем компьютере, и эмулятор 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 ().Кто-нибудь знает проблему?

Спасибо!

1 Ответ

1 голос
/ 13 июня 2013

В конце сообщения, отправляемого на сервер, добавьте «\ r \ n»:

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