编码回车

发布于 2024-12-28 02:14:22 字数 876 浏览 1 评论 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 6e616d65 20676574 0d>哇哦

只是普通 /r 换了一行,因此 nslog 中数据后面的 wtf 字符

Im trying to send ascii encoded message to a server. My problem is coming in when I try to append the carriage return to the string

-(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];  

}

currently this outputs this:

string <68333233 6e616d65 20676574 5c72> wtf

which should be

string <68333233 6e616d65 20676574 0d> wtf

Just plain /r did a new line hence the wtf characters after the data in the nslog

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

紫南 2025-01-04 02:14:22

你的反斜杠太多了。试试这个:

[string appendString:@"\r"]; 

此外,您创建的 testData 是完全错误的。创建 testData 的方式是将指针传递给 NSData 对象作为“bytes”参数,并将指针的大小传递给 NSData code> 作为“长度”参数。你应该这样做:

NSData *testData = [string dataUsingEncoding:NSASCIIStringEncoding];

You have too many backslashes. Try this:

[string appendString:@"\r"]; 

Also, your creation of testData is completely wrong. The way you are creating testData is passing a pointer to an NSData object as the "bytes" parameter, and passing the size of a pointer to an NSData as the "length" parameter. You should just do this:

NSData *testData = [string dataUsingEncoding:NSASCIIStringEncoding];
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文