【发布时间】:2013-06-12 10:31:07
【问题描述】:
我在 Java 中使用 Netty 实现服务器,而客户端在 Adobe Flash 中。
当我在缓冲区中发送请求或响应时,我首先写入缓冲区的长度,然后是数据。我正在使用服务器端的 ChannelBuffer.writeInt() 和客户端的 ByteArray.writeInt() 写入数据的长度,然后使用客户端的 ByteArray.readInt() 和 ChannelBuffer.readInt() 在另一端读取它为服务器。 但我对他们两个都得到了错误的值。
我的问题是,当我在 java 中执行 ChannelBuffer.writeInt() / ChannelBuffer.readInt() 并在 Adobe Flash actionscript 中执行相应的 ByteArray.readInt() / ByteArray.writeInt() 时是否有区别。如果是,请告诉我它是什么以及如何使它工作。
我试图做一些位移操作来使它工作,但它不起作用。 这取决于 Endianess 吗?如果是,如何? 如果它不依赖,那么它可能依赖于什么?
谢谢
【问题讨论】:
-
给我们举个例子,说明你写的和读回来的。
-
Endianness is 当然可以在这种情况下发挥作用。如果您将读/写的值打印为十六进制值,您应该很容易看到模式是否反转(即:如果字节顺序错误,0x00112233 将是 0x33221100)。
标签: java actionscript-3 io netty