我试图将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];
}
目前这输出:
string< 68333233 6e616d65 20676574 5c72> WTF
应该是
string< 68333233 6e616d65 20676574 0d> WTF
Just plain / r做了一个新行,因此在nslog
中的数据后面有wtf字符答案 0 :(得分:1)
你有太多的反斜杠。试试这个:
[string appendString:@"\r"];
此外,您创建testData
是完全错误的。创建testData
的方法是将指向NSData
对象的指针作为“bytes”参数传递,并将指针的大小作为“length”参数传递给NSData
。你应该这样做:
NSData *testData = [string dataUsingEncoding:NSASCIIStringEncoding];