c++与java通信socket通信,关于字节序列的问题
最近学习了Apache MINA通讯,在使用过程中碰到了一些问题,记录下一些心得。在服务端和客户端都使用MINA提供的库时,通讯一切正常,当我把客户端改为C++代码时,发现客户端发送给服务端的二进制流中的整形数据,位置被倒置了。
C++客户端16进制 :0x00000013
MINA(java)服务端16进制:0x13000000
查询了网上资料后才知道Java在所有平台上都默认是big-endian,而C++在不同的平台上有不同的字节序, X86上是little-endian, solaris上是big-endian。
我想知道的是Qt平台用的是哪个字节序列?谢谢大家! --------------------编程问答-------------------- 校正字节序是在底层socket连接时的一个必要步骤,但在Qt这个级别,是不需要关心的。 --------------------编程问答-------------------- 刚测试过,的确是qt已经校正了序列,不过用原始的c++来写,还是得自己来转换吧? --------------------编程问答-------------------- 另外提醒一下,不管主机字节序是怎样的,在使用底层socket时,都需要校正到网络字节序。这是很容易被忽视的地方。
补充:移动开发 , Qt