以下是我在做java和c++ socket通信过程中如何正确使用java接收函数的问题,主要还是为了完成项目,可能不够详细,请多多指正:
1、c++端发送:如果发送的是整型等多字节类型,必须先要经过大小端的转换才可以发送,java端接收此种类型时用readInt、readFloat等函数,否则java端会出现乱码;
大小端代码转换如下:
#define BSWAP_32(x) \
(UINT32) ( (( ((UINT32)(x)) & 0xff000000 ) >> 24) | \
(( ((UINT32)(x)) & 0x00ff0000 ) >> 8 ) | \
(( ((UINT32)(x)) & 0x0000ff00 ) << 8 ) | \
(( ((UINT32)(x)) & 0x000000ff ) << 24) \
)
#define BSWAP_16(x) \
(UINT16) ( ((((UINT16)(x)) & 0x00ff) << 8 ) | \
((((UINT16)(x)) & 0xff00) >> 8 ) \
)
//c++端
int tmp = 20;
int length = BSWAP_32(