したがって、一般的に私はNettyを使用しており、Javaで(c ++ソフトウェアから)歌われていないshortを受信するのはBigEndianHeapChannelBufferです。私がこのようにそれをするとき:
buf.readUnsignedByte(); buf.readUnsignedByte();
戻ります:
149 and 00
。今まですべてが順調です。サーバーが149をunsignedshort[2バイト]として送信したためです。
これの代わりに、unsigned short(アプリケーションを再起動した後のofc)を受け取りたいです:
buf.readUnsignedShort();
そして魔法が起こります。戻ります:38144
。
次のステップは、符号なしバイトを取得することです。
short type = buf.readUnsignedByte();
System.out.println(type);
そしてそれは戻ります:1
これは正しい出力です。
誰かがこれで私を助けることができますか?私はもっと深く見て、これがnettyがそれを使って行うことです:
public short readShort() {
checkReadableBytes(2);
short v = getShort(readerIndex);
readerIndex += 2;
return v;
}
public int readUnsignedShort() {
return readShort() & 0xFFFF;
}
しかし、それでも私は何が悪いのか理解できません。その149が読めるようになりたいです。