List of usage examples for io.netty.buffer ByteBuf readLong
public abstract long readLong();
From source file:com.example.time2.TimeDecoder.java
License:Apache License
@Override protected void decode(final ChannelHandlerContext ctx, final ByteBuf in, final List<Object> out) { if (in.readableBytes() >= 8) { final long epochSeconds = in.readLong(); out.add(Instant.ofEpochSecond(epochSeconds).atOffset(ZoneOffset.UTC)); }/*from w w w.ja v a2 s.c o m*/ }
From source file:com.farsunset.cim.sdk.server.filter.decoder.WebMessageDecoder.java
License:Apache License
@Override public void decode(ChannelHandlerContext arg0, ByteBuf iobuffer, List<Object> queue) throws Exception { iobuffer.markReaderIndex();//from ww w . j av a 2 s . com /** * ?fin??1 0 ?? */ byte tag = iobuffer.readByte(); int frameFin = tag > 0 ? 0 : 1; // ?byte ?1 ?0 fin 0 1 if (frameFin == 0) { iobuffer.resetReaderIndex(); return; } /** * ?protobuf?? OPCODE_BINARY? OPCODE_CLOSE */ int frameOqcode = tag & TAG_MASK; if (OPCODE_BINARY == frameOqcode) { byte head = iobuffer.readByte(); byte datalength = (byte) (head & PAYLOADLEN); int realLength = 0; /** * Payload len7?7+16?7+64????? 0-125payload * data 1267????2payload data * 1277????8payload data */ if (datalength == HAS_EXTEND_DATA) { realLength = iobuffer.readShort(); } else if (datalength == HAS_EXTEND_DATA_CONTINUE) { realLength = (int) iobuffer.readLong(); } else { realLength = datalength; } boolean masked = (head >> 7 & MASK) == 1; if (masked) {// ? // ?? byte[] mask = new byte[4]; iobuffer.readBytes(mask); byte[] data = new byte[realLength]; iobuffer.readBytes(data); for (int i = 0; i < realLength; i++) { // ?? data[i] = (byte) (data[i] ^ mask[i % 4]); } handleMessage(data, queue); } } else if (OPCODE_CLOSE == frameOqcode) { handleClose(arg0); } else { // ? iobuffer.readBytes(new byte[iobuffer.readableBytes()]); } }
From source file:com.flowpowered.engine.util.FlowByteBufUtils.java
License:MIT License
public static UUID readUUID(ByteBuf buffer) { final long lsb = buffer.readLong(); final long msb = buffer.readLong(); return new UUID(msb, lsb); }
From source file:com.friz.game.network.codec.LoginDecoder.java
License:Open Source License
@Override protected void decode(ChannelHandlerContext ctx, ByteBuf buf, List<Object> out) throws Exception { int type = buf.readUnsignedByte(); int size = buf.readUnsignedShort(); int major = buf.readInt(); int minor = buf.readInt(); boolean dropped = buf.readBoolean(); int rsaSize = buf.readUnsignedShort(); byte[] rsa = new byte[rsaSize]; buf.readBytes(rsa);/*from ww w . ja va 2s . c o m*/ ByteBuf rsaBuf = Unpooled.wrappedBuffer( new BigInteger(rsa).modPow(Constants.LOGIN_EXPONENT, Constants.LOGIN_MODULUS).toByteArray()); int rsaMagic = rsaBuf.readUnsignedByte(); int[] key = new int[4]; for (int i = 0; i < key.length; i++) key[i] = rsaBuf.readInt(); int block = rsaBuf.readUnsignedByte(); if (block == 1 || block == 3) { int code = rsaBuf.readUnsignedMedium(); rsaBuf.readerIndex(rsaBuf.readerIndex() + 1); } else if (block == 0) { int trusted = rsaBuf.readInt(); } else if (block == 2) { rsaBuf.readerIndex(rsaBuf.readerIndex() + 4); } String password = BufferUtils.getString(rsaBuf); long serverKey = rsaBuf.readLong(); long clientKey = rsaBuf.readLong(); byte[] xtea = new byte[buf.readableBytes()]; buf.readBytes(xtea); ByteBuf xteaBuf = Unpooled.wrappedBuffer(new XTEA(xtea).decrypt(key).toByteArray()); String username = ""; boolean asString = xteaBuf.readBoolean(); if (asString) username = BufferUtils.getString(xteaBuf); else username = BufferUtils.getBase37(xteaBuf); int display = xteaBuf.readUnsignedByte(); int width = xteaBuf.readUnsignedShort(); int height = xteaBuf.readUnsignedShort(); int multisample = xteaBuf.readByte(); byte[] uid = new byte[24]; for (int i = 0; i < uid.length; i++) uid[i] = xteaBuf.readByte(); String token = BufferUtils.getString(xteaBuf); int prefSize = xteaBuf.readUnsignedByte(); int prefVersion = xteaBuf.readUnsignedByte(); int aPref = xteaBuf.readUnsignedByte(); int antiAliasing = xteaBuf.readUnsignedByte(); int aPref1 = xteaBuf.readUnsignedByte(); int bloom = xteaBuf.readUnsignedByte(); int brightness = xteaBuf.readUnsignedByte(); int buildArea = xteaBuf.readUnsignedByte(); int aPref2 = xteaBuf.readUnsignedByte(); int flickeringEffects = xteaBuf.readUnsignedByte(); int fog = xteaBuf.readUnsignedByte(); int groundBlending = xteaBuf.readUnsignedByte(); int groundDecoration = xteaBuf.readUnsignedByte(); int idleAnimations = xteaBuf.readUnsignedByte(); int lighting = xteaBuf.readUnsignedByte(); int sceneryShadows = xteaBuf.readUnsignedByte(); int aPref3 = xteaBuf.readUnsignedByte(); int nullPref = xteaBuf.readUnsignedByte(); int orthoMode = xteaBuf.readUnsignedByte(); int particles = xteaBuf.readUnsignedByte(); int removeRoofs = xteaBuf.readUnsignedByte(); int maxScreenSize = xteaBuf.readUnsignedByte(); int skyboxes = xteaBuf.readUnsignedByte(); int mobShadows = xteaBuf.readUnsignedByte(); int textures = xteaBuf.readUnsignedByte(); int desiredToolkit = xteaBuf.readUnsignedByte(); int nullPref1 = xteaBuf.readUnsignedByte(); int water = xteaBuf.readUnsignedByte(); int screenSize = xteaBuf.readUnsignedByte(); int customCursors = xteaBuf.readUnsignedByte(); int graphics = xteaBuf.readUnsignedByte(); int cpu = xteaBuf.readUnsignedByte(); int aPref4 = xteaBuf.readUnsignedByte(); int safeMode = xteaBuf.readUnsignedByte(); int aPref5 = xteaBuf.readUnsignedByte(); int aPref6 = xteaBuf.readUnsignedByte(); int aPref7 = xteaBuf.readUnsignedByte(); int soundEffectsVolume = xteaBuf.readUnsignedByte(); int areaSoundsVolume = xteaBuf.readUnsignedByte(); int voiceOverVolume = xteaBuf.readUnsignedByte(); int musicVolume = xteaBuf.readUnsignedByte(); int themeMusicVolume = xteaBuf.readUnsignedByte(); int steroSound = xteaBuf.readUnsignedByte(); int infoVersion = xteaBuf.readUnsignedByte(); int osType = xteaBuf.readUnsignedByte(); boolean arch64 = xteaBuf.readBoolean(); int versionType = xteaBuf.readUnsignedByte(); int vendorType = xteaBuf.readUnsignedByte(); int jMajor = xteaBuf.readUnsignedByte(); int jMinor = xteaBuf.readUnsignedByte(); int jPatch = xteaBuf.readUnsignedByte(); boolean falseBool = xteaBuf.readBoolean(); int heapSize = xteaBuf.readUnsignedShort(); int pocessorCount = xteaBuf.readUnsignedByte(); int cpuPhyscialMemory = xteaBuf.readUnsignedMedium(); int cpuClock = xteaBuf.readUnsignedShort(); String gpuName = BufferUtils.getJagString(xteaBuf); String aString = BufferUtils.getJagString(xteaBuf); String dxVersion = BufferUtils.getJagString(xteaBuf); String aString1 = BufferUtils.getJagString(xteaBuf); int gpuDriverMonth = xteaBuf.readUnsignedByte(); int gpuDriverYear = xteaBuf.readUnsignedShort(); String cpuType = BufferUtils.getJagString(xteaBuf); String cpuName = BufferUtils.getJagString(xteaBuf); int cpuThreads = xteaBuf.readUnsignedByte(); int anInt = xteaBuf.readUnsignedByte(); int anInt1 = xteaBuf.readInt(); int anInt2 = xteaBuf.readInt(); int anInt3 = xteaBuf.readInt(); int anInt4 = xteaBuf.readInt(); String aString2 = BufferUtils.getString(xteaBuf); int anInt5 = xteaBuf.readInt(); int anInt6 = xteaBuf.readInt(); int anInt7 = xteaBuf.readInt(); String aString3 = BufferUtils.getString(xteaBuf); boolean hasAdditional = xteaBuf.readBoolean(); String additionalInfo = ""; if (hasAdditional) additionalInfo = BufferUtils.getString(xteaBuf); int anInt8 = xteaBuf.readUnsignedByte(); int anInt9 = xteaBuf.readUnsignedByte(); int anInt10 = xteaBuf.readUnsignedByte(); int anInt11 = xteaBuf.readInt(); String aString4 = BufferUtils.getString(xteaBuf); boolean newWorld = xteaBuf.readBoolean(); int lobbyId = xteaBuf.readUnsignedShort(); int[] checksums = new int[(xteaBuf.readableBytes() / 4) + 1]; for (int i = 0; i < checksums.length; i++) { if (i == 32) checksums[i] = -1; else checksums[i] = xteaBuf.readInt(); } }
From source file:com.friz.lobby.network.codec.LoginDecoder.java
License:Open Source License
@Override protected void decode(ChannelHandlerContext ctx, ByteBuf buf, List<Object> out) throws Exception { if (!buf.isReadable()) return;//from w w w . j a va 2 s . c o m int type = buf.readUnsignedByte(); int size = buf.readUnsignedShort(); if (!buf.isReadable(size)) return; int major = buf.readInt(); int minor = buf.readInt(); int rsaSize = buf.readUnsignedShort(); byte[] rsa = new byte[rsaSize]; buf.readBytes(rsa); ByteBuf rsaBuf = Unpooled.wrappedBuffer( new BigInteger(rsa).modPow(Constants.LOGIN_EXPONENT, Constants.LOGIN_MODULUS).toByteArray()); int rsaMagic = rsaBuf.readUnsignedByte(); int[] key = new int[4]; for (int i = 0; i < key.length; i++) key[i] = rsaBuf.readInt(); int block = rsaBuf.readUnsignedByte(); if (block == 1 || block == 3) { int code = rsaBuf.readUnsignedMedium(); rsaBuf.readerIndex(rsaBuf.readerIndex() + 1); System.out.println(new GoogleAuthenticator().authorize("OE2ZSYF6T7N2R5CG", code)); } else if (block == 0) { int trusted = rsaBuf.readInt(); } else if (block == 2) { rsaBuf.readerIndex(rsaBuf.readerIndex() + 4); } String password = BufferUtils.getString(rsaBuf); long serverKey = rsaBuf.readLong(); long clientKey = rsaBuf.readLong(); byte[] xtea = new byte[buf.readableBytes()]; buf.readBytes(xtea); ByteBuf xteaBuf = Unpooled.wrappedBuffer(new XTEA(xtea).decrypt(key).toByteArray()); String username = ""; boolean asString = xteaBuf.readBoolean(); if (asString) username = BufferUtils.getString(xteaBuf); else username = BufferUtils.getBase37(xteaBuf); int game = xteaBuf.readUnsignedByte(); int lang = xteaBuf.readUnsignedByte(); int display = xteaBuf.readUnsignedByte(); int width = xteaBuf.readUnsignedShort(); int height = xteaBuf.readUnsignedShort(); int multisample = xteaBuf.readByte(); byte[] uid = new byte[24]; for (int i = 0; i < uid.length; i++) uid[i] = xteaBuf.readByte(); String token = BufferUtils.getString(xteaBuf); int prefSize = xteaBuf.readUnsignedByte(); int prefVersion = xteaBuf.readUnsignedByte(); int aPref = xteaBuf.readUnsignedByte(); int antiAliasing = xteaBuf.readUnsignedByte(); int aPref1 = xteaBuf.readUnsignedByte(); int bloom = xteaBuf.readUnsignedByte(); int brightness = xteaBuf.readUnsignedByte(); int buildArea = xteaBuf.readUnsignedByte(); int aPref2 = xteaBuf.readUnsignedByte(); int flickeringEffects = xteaBuf.readUnsignedByte(); int fog = xteaBuf.readUnsignedByte(); int groundBlending = xteaBuf.readUnsignedByte(); int groundDecoration = xteaBuf.readUnsignedByte(); int idleAnimations = xteaBuf.readUnsignedByte(); int lighting = xteaBuf.readUnsignedByte(); int sceneryShadows = xteaBuf.readUnsignedByte(); int aPref3 = xteaBuf.readUnsignedByte(); int nullPref = xteaBuf.readUnsignedByte(); int orthoMode = xteaBuf.readUnsignedByte(); int particles = xteaBuf.readUnsignedByte(); int removeRoofs = xteaBuf.readUnsignedByte(); int maxScreenSize = xteaBuf.readUnsignedByte(); int skyboxes = xteaBuf.readUnsignedByte(); int mobShadows = xteaBuf.readUnsignedByte(); int textures = xteaBuf.readUnsignedByte(); int desiredToolkit = xteaBuf.readUnsignedByte(); int nullPref1 = xteaBuf.readUnsignedByte(); int water = xteaBuf.readUnsignedByte(); int screenSize = xteaBuf.readUnsignedByte(); int customCursors = xteaBuf.readUnsignedByte(); int graphics = xteaBuf.readUnsignedByte(); int cpu = xteaBuf.readUnsignedByte(); int aPref4 = xteaBuf.readUnsignedByte(); int safeMode = xteaBuf.readUnsignedByte(); int aPref5 = xteaBuf.readUnsignedByte(); int aPref6 = xteaBuf.readUnsignedByte(); int aPref7 = xteaBuf.readUnsignedByte(); int soundEffectsVolume = xteaBuf.readUnsignedByte(); int areaSoundsVolume = xteaBuf.readUnsignedByte(); int voiceOverVolume = xteaBuf.readUnsignedByte(); int musicVolume = xteaBuf.readUnsignedByte(); int themeMusicVolume = xteaBuf.readUnsignedByte(); int steroSound = xteaBuf.readUnsignedByte(); int infoVersion = xteaBuf.readUnsignedByte(); int osType = xteaBuf.readUnsignedByte(); boolean arch64 = xteaBuf.readBoolean(); int versionType = xteaBuf.readUnsignedByte(); int vendorType = xteaBuf.readUnsignedByte(); int jMajor = xteaBuf.readUnsignedByte(); int jMinor = xteaBuf.readUnsignedByte(); int jPatch = xteaBuf.readUnsignedByte(); boolean falseBool = xteaBuf.readBoolean(); int heapSize = xteaBuf.readUnsignedShort(); int pocessorCount = xteaBuf.readUnsignedByte(); int cpuPhyscialMemory = xteaBuf.readUnsignedMedium(); int cpuClock = xteaBuf.readUnsignedShort(); String gpuName = BufferUtils.getJagString(xteaBuf); String aString = BufferUtils.getJagString(xteaBuf); String dxVersion = BufferUtils.getJagString(xteaBuf); String aString1 = BufferUtils.getJagString(xteaBuf); int gpuDriverMonth = xteaBuf.readUnsignedByte(); int gpuDriverYear = xteaBuf.readUnsignedShort(); String cpuType = BufferUtils.getJagString(xteaBuf); String cpuName = BufferUtils.getJagString(xteaBuf); int cpuThreads = xteaBuf.readUnsignedByte(); int anInt = xteaBuf.readUnsignedByte(); int anInt1 = xteaBuf.readInt(); int anInt2 = xteaBuf.readInt(); int anInt3 = xteaBuf.readInt(); int anInt4 = xteaBuf.readInt(); String aString2 = BufferUtils.getJagString(xteaBuf); int anInt5 = xteaBuf.readInt(); String aString3 = BufferUtils.getString(xteaBuf); int affiliate = xteaBuf.readInt(); int anInt6 = xteaBuf.readInt(); String aString4 = BufferUtils.getString(xteaBuf); int anInt7 = xteaBuf.readUnsignedByte(); int[] checksums = new int[(xteaBuf.readableBytes() / 4) + 1]; for (int i = 0; i < checksums.length; i++) { if (i == 32) checksums[i] = -1; else checksums[i] = xteaBuf.readInt(); } final List<Module> modules = new ArrayList<>(); modules.add(new ClientVersionModule(major, minor)); modules.add(new ClientTypeModule(game, lang, display, width, height)); out.add(new LoginRequestEvent(modules)); }
From source file:com.friz.network.utility.BufferUtils.java
License:Open Source License
/** * Reads a string from a bytebuf.//ww w.j ava 2 s. c o m * @param buf The bytebuf. * @return The decoded string. */ public static String getBase37(ByteBuf buf) { long value = buf.readLong(); char[] chars = new char[12]; int pos = 0; while (value != 0) { int remainder = (int) (value % 37); value /= 37; char c; if (remainder >= 1 && remainder <= 26) c = (char) ('a' + remainder - 1); else if (remainder >= 27 && remainder <= 36) c = (char) ('0' + remainder - 27); else c = '_'; chars[chars.length - pos++ - 1] = c; } return new String(chars, chars.length - pos, pos); }
From source file:com.friz.owari.network.codec.PatchInitDecoder.java
License:Open Source License
@Override protected void decode(ChannelHandlerContext ctx, ByteBuf in, List<Object> out) throws Exception { if (!in.isReadable()) return;/*from w w w. j ava 2 s.co m*/ int count = in.readInt(); long size = in.readLong(); out.add(new PatchInitEvent(count, size)); }
From source file:com.github.milenkovicm.kafka.protocol.Convert.java
License:Apache License
public static long decodeLong(ByteBuf buf) { return buf.readLong(); }
From source file:com.github.sparkfy.network.protocol.MessageWithHeaderSuite.java
License:Apache License
@Test public void testByteBufBody() throws Exception { ByteBuf header = Unpooled.copyLong(42); ByteBuf bodyPassedToNettyManagedBuffer = Unpooled.copyLong(84); assertEquals(1, header.refCnt());//ww w .jav a 2 s. c om assertEquals(1, bodyPassedToNettyManagedBuffer.refCnt()); ManagedBuffer managedBuf = new NettyManagedBuffer(bodyPassedToNettyManagedBuffer); Object body = managedBuf.convertToNetty(); assertEquals(2, bodyPassedToNettyManagedBuffer.refCnt()); assertEquals(1, header.refCnt()); MessageWithHeader msg = new MessageWithHeader(managedBuf, header, body, managedBuf.size()); ByteBuf result = doWrite(msg, 1); assertEquals(msg.count(), result.readableBytes()); assertEquals(42, result.readLong()); assertEquals(84, result.readLong()); assert (msg.release()); assertEquals(0, bodyPassedToNettyManagedBuffer.refCnt()); assertEquals(0, header.refCnt()); }
From source file:com.github.sparkfy.network.protocol.MessageWithHeaderSuite.java
License:Apache License
private void testFileRegionBody(int totalWrites, int writesPerCall) throws Exception { ByteBuf header = Unpooled.copyLong(42); int headerLength = header.readableBytes(); TestFileRegion region = new TestFileRegion(totalWrites, writesPerCall); MessageWithHeader msg = new MessageWithHeader(null, header, region, region.count()); ByteBuf result = doWrite(msg, totalWrites / writesPerCall); assertEquals(headerLength + region.count(), result.readableBytes()); assertEquals(42, result.readLong()); for (long i = 0; i < 8; i++) { assertEquals(i, result.readLong()); }//from ww w. j av a 2s. c om assert (msg.release()); }