Rust与Python序列化字节序差异:bincode修改无效的解决
解决Rust通过TCPStream向机器人服务器发送字节序匹配问题
- 本人有编程基础但刚接触Rust,近期需要通过
TCPStream向机器人上的500Hz响应服务器发送数据,厂商提供了可正常运行的Python示例程序。 - 经Wireshark抓包对比:Python程序发送的正确字节序列为
00 05 56 00 02(其中05代表包大小、56是请求操作码、02为请求数据),但我的Rust程序发送的字节是05 00 56 02 00,字节序不匹配导致服务器无响应。 - 最初尝试仅通过
bincode::DefaultOptions::new().with_big_endian()设置大端字节序,问题未解决。 - 后续在bincode配置中添加
with_fixint_encoding()后,成功发送符合要求的字节序列,并且收到了服务器的正常响应。下一步将处理服务器响应数据的反序列化工作。
内容的提问来源于stack exchange,提问作者SkyNat
相关产品推荐
相关产品推荐

