当前位置:编程学习 > wap >>

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++来写,还是得自己来转换吧?
引用 1 楼 xiachm 的回复:
校正字节序是在底层socket连接时的一个必要步骤,但在Qt这个级别,是不需要关心的。
--------------------编程问答-------------------- 另外提醒一下,不管主机字节序是怎样的,在使用底层socket时,都需要校正到网络字节序。这是很容易被忽视的地方。
补充:移动开发 ,  Qt
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,