发送数据包给客户端
Send Data packet to Client
我需要发送包含 JSON 个字符串的 NSData 以及(实际字符串的长度+实际字符串的长度)形式的总长度。我需要发送一个保留前 10 个字节的数据包对于字符串的长度,然后是字符串
在发送 NSData 对象时,我还需要在前 10 个字节中发送它的长度,然后是数据,例如:
数据长度 + JSON 字符串 = 发送到 java 客户端的总数据。
进一步 java 客户端将读取前 10 个字节以了解构成字节数组的实际数据长度并进一步移动。
这个暴力破解示例使用前 10 个字符作为有效载荷长度的字符串表示,后跟实际有效载荷。
NSArray *arrPayload = @[@"Hello", @"world"];
NSData *jsonData = [NSJSONSerialization dataWithJSONObject:arrPayload
options:0
error:nil];
NSString *jsonString = [[NSString alloc] initWithData:jsonData
encoding:NSUTF8StringEncoding];
NSString *comboString = [NSString stringWithFormat:@"%010lu%@",
(unsigned long)jsonString.length, jsonString];
NSLog(@"%@", comboString);
NSData* combinedData = [comboString dataUsingEncoding:NSUTF8StringEncoding];
结果:
0000000017["Hello","world"]
但是:如果这应该作为 HTTP 请求发送,您可能需要考虑使用 Content-Length header 来传递长度信息。
我需要发送包含 JSON 个字符串的 NSData 以及(实际字符串的长度+实际字符串的长度)形式的总长度。我需要发送一个保留前 10 个字节的数据包对于字符串的长度,然后是字符串
在发送 NSData 对象时,我还需要在前 10 个字节中发送它的长度,然后是数据,例如:
数据长度 + JSON 字符串 = 发送到 java 客户端的总数据。
进一步 java 客户端将读取前 10 个字节以了解构成字节数组的实际数据长度并进一步移动。
这个暴力破解示例使用前 10 个字符作为有效载荷长度的字符串表示,后跟实际有效载荷。
NSArray *arrPayload = @[@"Hello", @"world"];
NSData *jsonData = [NSJSONSerialization dataWithJSONObject:arrPayload
options:0
error:nil];
NSString *jsonString = [[NSString alloc] initWithData:jsonData
encoding:NSUTF8StringEncoding];
NSString *comboString = [NSString stringWithFormat:@"%010lu%@",
(unsigned long)jsonString.length, jsonString];
NSLog(@"%@", comboString);
NSData* combinedData = [comboString dataUsingEncoding:NSUTF8StringEncoding];
结果:
0000000017["Hello","world"]
但是:如果这应该作为 HTTP 请求发送,您可能需要考虑使用 Content-Length header 来传递长度信息。