Obj-C отправлять и получать массив через TCP-сокеты для iPhone. - PullRequest
0 голосов
/ 10 марта 2012

Я пытаюсь выяснить, как и если вы можете отправлять и получать массивы через сокет TCP.Я немного новичок в цели C, но я смог отправлять и получать строки.Я просто хочу заставить его делать массивы сейчас.

 (void)stream:(NSStream *)theStream handleEvent:(NSStreamEvent)streamEvent {

NSLog(@"stream event %i", streamEvent);

switch (streamEvent) {

    case NSStreamEventOpenCompleted:
        NSLog(@"Stream opened");
        break;
    case NSStreamEventHasBytesAvailable:

        if (theStream == inputStream) {

            uint8_t buffer[1024];
            int len;

            while ([inputStream hasBytesAvailable]) {
                len = [inputStream read:buffer maxLength:sizeof(buffer)];
                if (len > 0) {
                    output = [[NSString alloc] initWithBytes:buffer length:len encoding:NSASCIIStringEncoding];

                    if (nil != output) {



                        chSent = [output substringWithRange: NSMakeRange (0, 6)];

                        dimensionString = [output substringWithRange: NSMakeRange (7, 3)];
                        colorString = [output substringWithRange: NSMakeRange (7, 3)];


                         if ([chSent isEqualToString:@"dimen:"])
                        {

                            dimensionInt = [dimensionString intValue];

                        }

                        if ([chSent isEqualToString:@"color:"]) {

                           // insert array named color in here some how

                        }                                


                    }
                }
            }
        }
        break;


    case NSStreamEventErrorOccurred:

        NSLog(@"Can not connect to the host!");
        break;

    case NSStreamEventEndEncountered:

        [theStream close];
        [theStream removeFromRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode];
       // [theStream release];
        theStream = nil;

        break;
    default:
        NSLog(@"Unknown event");
}
 }

Вот что у меня есть.где я поставил // вставьте массив, где я пытаюсь поместить его

Заранее спасибо, если вы можете помочь

1 Ответ

1 голос
/ 10 марта 2012

Вы можете отправить данные массива, например, целые числа, в виде строки, разделенной некоторым разделителем, «color: 1; 2; 3; 4;»а затем просто отделить строки.Если вам нужно передать более сложные структуры данных, вы можете кодировать, отправлять, декодировать.Для этого взгляните на класс NSKeyedArchiver.

...