ByteBuffer bb = ByteBuffer.allocate(4).order(ByteOrder.nativeOrder()).putInt(123); bb.rewind(); return bb.order(ByteOrder.BIG_ENDIAN).getInt();
想问一下大佬们,这个是本地序转成网络序的一段代码,这段代码是正确的写法吗?从网络上搜不到相关答案
我的疑问是:
如果这段代码写法不正确,那应该是如何写呢?如果这段代码是正确的,还有以下疑问
由于java jvm 是屏蔽大小端序的,如果把这个值通过网络发出去,接收端是 python ,python 应该也需要进行大小端序的转换吧?(假设python 没有像java 的jvm 屏蔽大小端序的功能哈),如果接收端还是 java ,那应该是就不需要转也能获取正确的数值吧?
万分感谢
Netty
java字节序和网络序保持一致,用大字节序,一般来说不用你自己处理,除非和你交互的对端一定要用小字节序,那你的代码还是得转换的。
若是大端不用改,若是小端 你若要与他交互改为小端即可