struct to nsarray


nsstring to nsdictionary


apple stream handleevent write

https://developer.apple.com/library/ios/documentation/cocoa/Conceptual/Streams/Articles/NetworkStreams.html

socket

//    // sonbong: create socket
//    self.socketRef = CFSocketCreate(kCFAllocatorDefault, PF_INET, SOCK_STREAM, 0, 
//                         kCFSocketReadCallBack|kCFSocketDataCallBack|kCFSocketConnectCallBack|kCFSocketWriteCallBack,
//                         CFSockCallBack, NULL);
//    struct sockaddr_in theName;
//    struct hostent *hp;
//    
//    theName.sin_port = htons(80);
//    theName.sin_family = AF_INET;
//    
//    hp = gethostbyname("naver.com");
//    if( hp == NULL ) {
//        return;
//    }
//    memcpy( &theName.sin_addr.s_addr, hp->h_addr, hp->h_length );
//    CFDataRef addressData = CFDataCreate( NULL, &theName, sizeof( struct sockaddr_in ) );
//    CFSocketConnectToAddress(self.socketRef, addressData, 30);
//    
//    CFRunLoopSourceRef FrameRunLoopSource = CFSocketCreateRunLoopSource(NULL, self.socketRef , 0);
//    CFRunLoopAddSource(CFRunLoopGetCurrent(), FrameRunLoopSource, kCFRunLoopCommonModes); 

NSStreamEventHasBytesAvailable

case NSStreamEventHasBytesAvailable:
            if (stream == self.inputStream) 
            {
                uint8_t buffer[4096];
                //  unsigned int len=0;
                int len;
                
                while ([self.inputStream hasBytesAvailable]) {
                    len = [self.inputStream read:buffer maxLength:sizeof(buffer)];
                    if (len > 0) {
                        
                        NSString *output = [[NSString alloc] initWithBytes:buffer length:len encoding:NSASCIIStringEncoding];
                        
                        if (nil != output && ![output isEqual:[NSNull null]]) {
                            
                            NSLog(@"server said: %@", [output description]);
                            
                            
                            if ([output length]>0) {
                                
                                NSArray *aArray = [output componentsSeparatedByString:@"#"];
                                NSLog(@"Array Count %d",[aArray count]);
                                NSLog(@"Array Description %@",[aArray description]);
                                NSLog(@"Array obj at 0 --> %@",[aArray objectAtIndex:0]);
//                                NSLog(@"Array obj at 1 --> %@",[aArray objectAtIndex:1]);
//                                NSString *tmpString=[aArray objectAtIndex:[aArray count]-1];
//                                NSArray *tmpArray=[tmpString componentsSeparatedByString:@"$"];
                                NSString *finalString=[NSString stringWithFormat:@"#%@$",[tmpArray objectAtIndex:0]];
                                NSLog(@"Final String %@",finalString);
                                
                                
                                [self.inputStream close];
                                [self.outputStream close];
                                output=@"";
                                
                                NSNotification *notif = [NSNotification notificationWithName:@"ReloadRequestForSocketData" object:self];
                                [[NSNotificationCenter defaultCenter] postNotification:notif];
                            }
                        }
                    }
                }
            }
            break;

1 2 3 4 5 6 7 8 9 10 다음