2017-01-06 2 views
0

Я пытаюсь подключиться к объекту 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); 
} 
+0

Планировало ли вы поток в цикле выполнения (используя 'scheduleInRunLoop: forMode:')? – jcaron

+0

Вы также должны установить делегат для приема событий в потоке, который даст вам более подробную информацию о его статусе. BTW, оба явно включены в оба указанных вами учебника, а также в руководство по программированию Apple Stream. – jcaron

ответ

-2

прочитанных на материнской почте, попробуйте добавить \ r \ n к строке