有效地用C ++编写自定义二进制数据包

时间:2016-05-22 21:29:46

标签: c++

我需要在TCP上传输一个如下所示的数据包:

Unsigned Long A  + Byte B[32] + Unsigned Long C

A和C是数字,B是包含sha256哈希的字节数组。在服务器端知道数据包的结构,我可以解析它,就像前4个字节一样,接下来的32就是散列,所以...在我的客户端,用C ++写的我在编写代码时遇到问题更干净的方式:

String hn_token = readToken();
long nounce = getNounce();
String secret = String(hn_token) + "{" + String(nounce) +  "}";
char buff[128] = {};
int len = secret.length()+1;
secret.toCharArray(buff, len);
String secretHash  = sha256(buff, len-1);
char stream[64] = {};
secretHash.toCharArray(stream, 64);
client.write((const uint8_t*)stream, 64);

那部分只是B的生成和传递,但从String到Char数组再到String也已经看起来很糟糕了。有没有办法以更优雅和有效的方式撰写数据包?

0 个答案:

没有答案