2011-09-23 2 views
2

소켓에 데이터를 보내려면 소켓을 열어야합니다. 이미지를 보내려고하면 충돌이 발생하고 문자열을 보내면 제대로 작동합니다. 이미지를 다음으로 변환합니다. 데이터를 입력 한 다음이 데이터를 서버로 보내야하는 문자열에 넣습니다.소켓 스트리밍을 사용하여 이미지 또는 비디오를 보내십시오.

필요지도, // 아래

, 난 내가

- (void)stream:(NSStream *)stream handleEvent:(NSStreamEvent)eventCode { 
int byteIndex; 
switch(eventCode) { 
    case NSStreamEventHasSpaceAvailable: 

    { 
     if (stream == oStream) { 

      //NSString * str = [NSString stringWithFormat: 

//
를 스트리밍 쓰기 여기

NSString *urlStr = @"http://182.71.22.107:1935/VideoCalling/5d14a9bc-b816-4c82-bbb7-623d18243a02.sdp/playlist.m3u8"; 

if (![urlStr isEqualToString:@""]) 
{ 


    NSURL *website = [NSURL URLWithString:urlStr]; 

    if (!website) 
    { 

     NSLog(@"%@ is not a valid URL"); 

     return; 

    } 

    NSHost *host = [NSHost hostWithName:[website host]]; 

    // iStream and oStream are instance variables 

    [NSStream getStreamsToHost:host port:8081 inputStream:&iStream outputStream:&oStream]; 

    [iStream retain]; 

    [oStream retain]; 

    [iStream setDelegate:self]; 

    [oStream setDelegate:self]; 
     NSData *data = UIImageJPEGRepresentation([UIImage imageNamed:@"abc.png"], 90); 
     // Convert from host to network endianness 
     uint32_t length = (uint32_t)htonl([data length]); 
    // Don't forget to check the return value of 'write' 
     [oStream write:(uint8_t *)&length maxLength:4]; 
     [oStream write:[data bytes] maxLength:length];//writes to stream 

    [iStream scheduleInRunLoop:[NSRunLoop currentRunLoop] 

         forMode:NSDefaultRunLoopMode]; 

    [oStream scheduleInRunLoop:[NSRunLoop currentRunLoop] 

         forMode:NSDefaultRunLoopMode]; 

    [iStream open]; 

    [oStream open]; 

} 

스트림과 연결 코드를 사용하고 있습니다 도와주세요 @ "sdsdfdfggghhfhfh"];

NSString * str = [[NSString alloc] initWithData : 데이터 인코딩 : NSUTF16StringEncoding];

  NSLog(@"%@,lenght===%d",str,[str length]); 

      const uint8_t * rawstring = (const uint8_t *)[str UTF8String]; 

// [oStream write : datap maxLength : strlen (rawstring)]]; [oStream 쓰기 : rawstring maxLength : strlen (15)];

  [oStream close]; 

     } 

     UIAlertView *a = [[UIAlertView alloc]initWithTitle:@"h" message:@"Available" delegate:nil cancelButtonTitle:@"ok" otherButtonTitles:nil]; 
     [a show]; 
     [a release]; 
    } 
     break; 
+1

당신은 프로그래밍 언어를 사용하고 있습니까? 코드가 어떻게 보이나요? – harper

+0

객관적인 C를 사용하여 iphone/ipad 개발 –

+0

질문 편집 ... –

답변

0
+2

이것은 이론적으로 질문에 대답 할 수 있지만 (http://meta.stackexchange.com/q/8259) 여기에 대한 답변의 필수적인 부분을 제공하고 참조 용 링크를 제공합니다. –

관련 문제