前回はbyte[]でやってたけど、ByteBufferを使うようにしてみた。ByteBufferだとgetShortがあるのでちょっと楽できた
public void set(ByteBuffer packet){ int first = packet.get(); version = (first >> 4) & 0x0F; headerLength = first & 0x0F; serviceType = packet.get() & 0xFF; packetLength = packet.getShort() & 0xFFFF; id = packet.getShort() & 0xFFFF; int flagPosition = packet.getShort(); flag = (flagPosition >> 13) & 0x0F; offset = flagPosition & 0x1FFF; ttl = packet.get() & 0xFF; protocol = packet.get() & 0xFF; checksum = packet.getShort() & 0xFFFF; srcAddress = ip2Str(packet); dstAddress = ip2Str(packet); }