Я пытаюсь подключиться к объекту c tcp socket для подключения к серверу, я использовал код из этих двух руководств: https://www.raywenderlich.com/3932/networking-tutorial-for-ios-how-to-create-a-socket-based-iphone-app-and-server и https://gist.github.com/rjungemann/446256. Я заметил, что когда я пытаюсь отправить данные из его не посылать, пока я не остановить приложение (в этот момент принимается на сервере), такие же поведение при следовании как учебных пособий, ниже соответствующего кода:Objective C TCP Socket
- (void)setup {
NSURL *url = [NSURL URLWithString:host];
NSLog(@"Setting up connection to %@ : %i", [url absoluteString], port);
CFStreamCreatePairWithSocketToHost(kCFAllocatorDefault, (__bridge CFStringRef)[url host], port, &readStream, &writeStream);
if(!CFWriteStreamOpen(writeStream)) {
NSLog(@"Error, writeStream not open");
return;
}
[self open];
NSLog(@"Status of outputStream: %lu", (unsigned long)[outputStream streamStatus]);
return;
}
- (void)writeOut:(NSString *)s {
uint8_t *buf = (uint8_t *)[s UTF8String];
[outputStream write:buf maxLength:strlen((char *)buf)];
NSLog(@"Writing out the following:");
NSLog(@"%@", s);
}
Планировало ли вы поток в цикле выполнения (используя 'scheduleInRunLoop: forMode:')? – jcaron
Вы также должны установить делегат для приема событий в потоке, который даст вам более подробную информацию о его статусе. BTW, оба явно включены в оба указанных вами учебника, а также в руководство по программированию Apple Stream. – jcaron