我正在使用的协议要求将文件中的当前位置作为“无符号,网络字节顺序的4字节整数”发回。有这个几个问题,但他们假设我使用整数,而不是多头使用ByteBuffer将long转换为“无符号,网络字节顺序的4字节整数”
我试图端口这NIO的ByteBuffer的,因此它可以在插座通道发送:
long bytesTransfered = ... some number of bytes transfered...
//TODO: What does this actually do?
outBuffer[0] = (byte) ((bytesTransfered >> 24) & 0xff);
outBuffer[1] = (byte) ((bytesTransfered >> 16) & 0xff);
outBuffer[2] = (byte) ((bytesTransfered >> 8) & 0xff);
//TODO: Why does netbeans say this does nothing?
outBuffer[3] = (byte) ((bytesTransfered >> 0) & 0xff);
是他们的任何方法在ByteBuffer中完成了这个?希望以更明显,自我描述的方式,然后上面的变化魔术?
如果你使用'long'为什么你只需要4个字节?相反,如果你只需要4个字节,坚持'long'是毫无意义的。 – EJP