我需要在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也已经看起来很糟糕了。有没有办法以更优雅和有效的方式撰写数据包?