C ++:TCP文件传输中的字节顺序差异
C++: Endianness difference within TCP file transfer
我想问一下当我将字符串从一台计算机传输到另一台具有不同字节序的字符串时会遇到的问题。
我正在读取传输到std::deque<char>
的数据,然后将其解析为std::string
。
我可以想象,如果我的计算机是 LE(小端)而另一方面的计算机是 BE(大端),那么我所要做的就是在排队之前颠倒字节的顺序并解析它们。
PDP 字节顺序如何?可以修复吗?
或者整个修复错误的想法是因为当我传输一系列 1 字节的 char
s 时字节顺序无关紧要?
对于 1 字节的字符应该无关紧要,除非它们在两边都被解释为更宽的整数。
不过,对于更宽的整数,您应该在将值写入网络之前将其转换为网络顺序。接收方将在他们这边将它们从网络顺序转换为主机顺序。
您通常为此使用 hton/ntoh 系列函数。
我想问一下当我将字符串从一台计算机传输到另一台具有不同字节序的字符串时会遇到的问题。
我正在读取传输到std::deque<char>
的数据,然后将其解析为std::string
。
我可以想象,如果我的计算机是 LE(小端)而另一方面的计算机是 BE(大端),那么我所要做的就是在排队之前颠倒字节的顺序并解析它们。
PDP 字节顺序如何?可以修复吗?
或者整个修复错误的想法是因为当我传输一系列 1 字节的 char
s 时字节顺序无关紧要?
对于 1 字节的字符应该无关紧要,除非它们在两边都被解释为更宽的整数。
不过,对于更宽的整数,您应该在将值写入网络之前将其转换为网络顺序。接收方将在他们这边将它们从网络顺序转换为主机顺序。
您通常为此使用 hton/ntoh 系列函数。