2012-01-19 2 views
0

서버로 ASCII 인코딩 된 메시지를 보내려고합니다. 내 문제는 내가인코딩을위한 캐리지 리턴

-(void)button2Pressed 
{ 
    NSMutableString *mutableString = [NSMutableString stringWithString:@"h323name get"]; 

    [self sendStringCommand:mutableString]; 
} 

-(void)sendStringCommand:(NSMutableString*)string 
{  
    [string appendString:@"\\r"]; 

    NSLog(@"string %@ wtf",[string dataUsingEncoding:NSASCIIStringEncoding]); 
    NSData * testData = [[NSData alloc]initWithBytes:[string dataUsingEncoding:NSASCIIStringEncoding] length:sizeof([string dataUsingEncoding:NSASCIIStringEncoding])]; 


    [socket writeData:testData withTimeout:20 tag:1]; 

} 

현재는이 출력 문자열에 캐리지 리턴을 추가 할 때오고 :

문자열 < 68333233 6e616d65 20676574 5c72> 태권도 연맹

하는해야 수

문자열 < 68333233 6e616d > 태권도 연맹

그냥 일반/R (65) 20676574 0D는 따라서 무슨 일 문자 당신은 너무 많은 백 슬래시가있는 nslog

답변

1

의 데이터를 후 새 줄을했다. 사용해보기 :

[string appendString:@"\r"]; 

testData의 생성은 완전히 잘못되었습니다. testData을 만드는 방법은 NSData 개체에 대한 포인터를 "bytes"매개 변수로 전달하고 NSData에 대한 포인터 크기를 "length"매개 변수로 전달합니다. 이 작업을 수행해야합니다 :

NSData *testData = [string dataUsingEncoding:NSASCIIStringEncoding]; 
+0

작동 해 주셔서 감사합니다. idk 내가 처음 시도했을 때 생각했던 것과 그것이 작동하지 않았습니까 ??? o 잘 다시 감사합니다. –