我正在编写一个用于加密网络通信的小型客户端/服务器程序,并使用以下结构体允许端点协商能力。
struct KeyExchangePacket {
kexinit: u8,
replay_cookie: [u8; 32],
kex_algorithms: String,
kgen_algorithms: String,
encryption_algorithms: String,
mac_algorithms: String,
compression_algorithms: String,
supported_languages: String,
}
为了通过 TcpStream
发送这些字段,我需要将它们转换为字节,但目前我只能每次转换一个。
send_buffer.extend_from_slice(kex_algorithms.as_bytes());
send_buffer.extend_from_slice(kgen_algorithms.as_bytes());
etc...
有没有一种方法可以迭代字段并将它们的字节值推入缓冲区以便发送?
Vec <u8>
序列化/反序列化。 - mcartonVec<u8>
中,但并不知道还有一种模式可以将结构体的所有字节合并在一起。那么,如果我想让 serde 输出 OP 的数据而不附带任何序列化格式,该如何实现呢? - Shepmaster