public final class java.net.DatagramPacket
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: java.net.DatagramPacket
  super_class: java.lang.Object
{
  byte[] buf;
    descriptor: [B
    flags: (0x0000) 

  int offset;
    descriptor: I
    flags: (0x0000) 

  int length;
    descriptor: I
    flags: (0x0000) 

  int bufLength;
    descriptor: I
    flags: (0x0000) 

  java.net.InetAddress address;
    descriptor: Ljava/net/InetAddress;
    flags: (0x0000) 

  int port;
    descriptor: I
    flags: (0x0000) 

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 50
            new java.net.DatagramPacket$1
            dup
            invokespecial java.net.DatagramPacket$1.<init>:()V
         1: .line 49
            invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
            pop
         2: .line 56
            invokestatic java.net.DatagramPacket.init:()V
         3: .line 57
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>(byte[], int, int);
    descriptor: ([BII)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // java.net.DatagramPacket this
        start local 1 // byte[] buf
        start local 2 // int offset
        start local 3 // int length
         0: .line 83
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 84
            aload 0 /* this */
            aload 1 /* buf */
            iload 2 /* offset */
            iload 3 /* length */
            invokevirtual java.net.DatagramPacket.setData:([BII)V
         2: .line 85
            aload 0 /* this */
            aconst_null
            putfield java.net.DatagramPacket.address:Ljava/net/InetAddress;
         3: .line 86
            aload 0 /* this */
            iconst_m1
            putfield java.net.DatagramPacket.port:I
         4: .line 87
            return
        end local 3 // int length
        end local 2 // int offset
        end local 1 // byte[] buf
        end local 0 // java.net.DatagramPacket this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    5     0    this  Ljava/net/DatagramPacket;
            0    5     1     buf  [B
            0    5     2  offset  I
            0    5     3  length  I
    MethodParameters:
        Name  Flags
      buf     
      offset  
      length  

  public void <init>(byte[], int);
    descriptor: ([BI)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // java.net.DatagramPacket this
        start local 1 // byte[] buf
        start local 2 // int length
         0: .line 100
            aload 0 /* this */
            aload 1 /* buf */
            iconst_0
            iload 2 /* length */
            invokespecial java.net.DatagramPacket.<init>:([BII)V
         1: .line 101
            return
        end local 2 // int length
        end local 1 // byte[] buf
        end local 0 // java.net.DatagramPacket this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Ljava/net/DatagramPacket;
            0    2     1     buf  [B
            0    2     2  length  I
    MethodParameters:
        Name  Flags
      buf     
      length  

  public void <init>(byte[], int, int, java.net.InetAddress, int);
    descriptor: ([BIILjava/net/InetAddress;I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=6, args_size=6
        start local 0 // java.net.DatagramPacket this
        start local 1 // byte[] buf
        start local 2 // int offset
        start local 3 // int length
        start local 4 // java.net.InetAddress address
        start local 5 // int port
         0: .line 119
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 121
            aload 0 /* this */
            aload 1 /* buf */
            iload 2 /* offset */
            iload 3 /* length */
            invokevirtual java.net.DatagramPacket.setData:([BII)V
         2: .line 122
            aload 0 /* this */
            aload 4 /* address */
            invokevirtual java.net.DatagramPacket.setAddress:(Ljava/net/InetAddress;)V
         3: .line 123
            aload 0 /* this */
            iload 5 /* port */
            invokevirtual java.net.DatagramPacket.setPort:(I)V
         4: .line 124
            return
        end local 5 // int port
        end local 4 // java.net.InetAddress address
        end local 3 // int length
        end local 2 // int offset
        end local 1 // byte[] buf
        end local 0 // java.net.DatagramPacket this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    5     0     this  Ljava/net/DatagramPacket;
            0    5     1      buf  [B
            0    5     2   offset  I
            0    5     3   length  I
            0    5     4  address  Ljava/net/InetAddress;
            0    5     5     port  I
    MethodParameters:
         Name  Flags
      buf      
      offset   
      length   
      address  
      port     

  public void <init>(byte[], int, int, java.net.SocketAddress);
    descriptor: ([BIILjava/net/SocketAddress;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=5
        start local 0 // java.net.DatagramPacket this
        start local 1 // byte[] buf
        start local 2 // int offset
        start local 3 // int length
        start local 4 // java.net.SocketAddress address
         0: .line 142
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 143
            aload 0 /* this */
            aload 1 /* buf */
            iload 2 /* offset */
            iload 3 /* length */
            invokevirtual java.net.DatagramPacket.setData:([BII)V
         2: .line 144
            aload 0 /* this */
            aload 4 /* address */
            invokevirtual java.net.DatagramPacket.setSocketAddress:(Ljava/net/SocketAddress;)V
         3: .line 145
            return
        end local 4 // java.net.SocketAddress address
        end local 3 // int length
        end local 2 // int offset
        end local 1 // byte[] buf
        end local 0 // java.net.DatagramPacket this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0     this  Ljava/net/DatagramPacket;
            0    4     1      buf  [B
            0    4     2   offset  I
            0    4     3   length  I
            0    4     4  address  Ljava/net/SocketAddress;
    MethodParameters:
         Name  Flags
      buf      
      offset   
      length   
      address  

  public void <init>(byte[], int, java.net.InetAddress, int);
    descriptor: ([BILjava/net/InetAddress;I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=5, args_size=5
        start local 0 // java.net.DatagramPacket this
        start local 1 // byte[] buf
        start local 2 // int length
        start local 3 // java.net.InetAddress address
        start local 4 // int port
         0: .line 161
            aload 0 /* this */
            aload 1 /* buf */
            iconst_0
            iload 2 /* length */
            aload 3 /* address */
            iload 4 /* port */
            invokespecial java.net.DatagramPacket.<init>:([BIILjava/net/InetAddress;I)V
         1: .line 162
            return
        end local 4 // int port
        end local 3 // java.net.InetAddress address
        end local 2 // int length
        end local 1 // byte[] buf
        end local 0 // java.net.DatagramPacket this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Ljava/net/DatagramPacket;
            0    2     1      buf  [B
            0    2     2   length  I
            0    2     3  address  Ljava/net/InetAddress;
            0    2     4     port  I
    MethodParameters:
         Name  Flags
      buf      
      length   
      address  
      port     

  public void <init>(byte[], int, java.net.SocketAddress);
    descriptor: ([BILjava/net/SocketAddress;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // java.net.DatagramPacket this
        start local 1 // byte[] buf
        start local 2 // int length
        start local 3 // java.net.SocketAddress address
         0: .line 178
            aload 0 /* this */
            aload 1 /* buf */
            iconst_0
            iload 2 /* length */
            aload 3 /* address */
            invokespecial java.net.DatagramPacket.<init>:([BIILjava/net/SocketAddress;)V
         1: .line 179
            return
        end local 3 // java.net.SocketAddress address
        end local 2 // int length
        end local 1 // byte[] buf
        end local 0 // java.net.DatagramPacket this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Ljava/net/DatagramPacket;
            0    2     1      buf  [B
            0    2     2   length  I
            0    2     3  address  Ljava/net/SocketAddress;
    MethodParameters:
         Name  Flags
      buf      
      length   
      address  

  public synchronized java.net.InetAddress getAddress();
    descriptor: ()Ljava/net/InetAddress;
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.net.DatagramPacket this
         0: .line 191
            aload 0 /* this */
            getfield java.net.DatagramPacket.address:Ljava/net/InetAddress;
            areturn
        end local 0 // java.net.DatagramPacket this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/net/DatagramPacket;

  public synchronized int getPort();
    descriptor: ()I
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.net.DatagramPacket this
         0: .line 203
            aload 0 /* this */
            getfield java.net.DatagramPacket.port:I
            ireturn
        end local 0 // java.net.DatagramPacket this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/net/DatagramPacket;

  public synchronized byte[] getData();
    descriptor: ()[B
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.net.DatagramPacket this
         0: .line 215
            aload 0 /* this */
            getfield java.net.DatagramPacket.buf:[B
            areturn
        end local 0 // java.net.DatagramPacket this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/net/DatagramPacket;

  public synchronized int getOffset();
    descriptor: ()I
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.net.DatagramPacket this
         0: .line 228
            aload 0 /* this */
            getfield java.net.DatagramPacket.offset:I
            ireturn
        end local 0 // java.net.DatagramPacket this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/net/DatagramPacket;

  public synchronized int getLength();
    descriptor: ()I
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.net.DatagramPacket this
         0: .line 240
            aload 0 /* this */
            getfield java.net.DatagramPacket.length:I
            ireturn
        end local 0 // java.net.DatagramPacket this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/net/DatagramPacket;

  public synchronized void setData(byte[], int, int);
    descriptor: ([BII)V
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=3, locals=4, args_size=4
        start local 0 // java.net.DatagramPacket this
        start local 1 // byte[] buf
        start local 2 // int offset
        start local 3 // int length
         0: .line 264
            iload 3 /* length */
            iflt 3
            iload 2 /* offset */
            iflt 3
         1: .line 265
            iload 3 /* length */
            iload 2 /* offset */
            iadd
            iflt 3
         2: .line 266
            iload 3 /* length */
            iload 2 /* offset */
            iadd
            aload 1 /* buf */
            arraylength
            if_icmple 4
         3: .line 267
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            ldc "illegal length or offset"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 269
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* buf */
            putfield java.net.DatagramPacket.buf:[B
         5: .line 270
            aload 0 /* this */
            iload 3 /* length */
            putfield java.net.DatagramPacket.length:I
         6: .line 271
            aload 0 /* this */
            iload 3 /* length */
            putfield java.net.DatagramPacket.bufLength:I
         7: .line 272
            aload 0 /* this */
            iload 2 /* offset */
            putfield java.net.DatagramPacket.offset:I
         8: .line 273
            return
        end local 3 // int length
        end local 2 // int offset
        end local 1 // byte[] buf
        end local 0 // java.net.DatagramPacket this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    9     0    this  Ljava/net/DatagramPacket;
            0    9     1     buf  [B
            0    9     2  offset  I
            0    9     3  length  I
    MethodParameters:
        Name  Flags
      buf     
      offset  
      length  

  public synchronized void setAddress(java.net.InetAddress);
    descriptor: (Ljava/net/InetAddress;)V
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.net.DatagramPacket this
        start local 1 // java.net.InetAddress iaddr
         0: .line 283
            aload 0 /* this */
            aload 1 /* iaddr */
            putfield java.net.DatagramPacket.address:Ljava/net/InetAddress;
         1: .line 284
            return
        end local 1 // java.net.InetAddress iaddr
        end local 0 // java.net.DatagramPacket this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Ljava/net/DatagramPacket;
            0    2     1  iaddr  Ljava/net/InetAddress;
    MethodParameters:
       Name  Flags
      iaddr  

  public synchronized void setPort(int);
    descriptor: (I)V
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // java.net.DatagramPacket this
        start local 1 // int iport
         0: .line 294
            iload 1 /* iport */
            iflt 1
            iload 1 /* iport */
            ldc 65535
            if_icmple 2
         1: .line 295
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Port out of range:"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 1 /* iport */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 297
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* iport */
            putfield java.net.DatagramPacket.port:I
         3: .line 298
            return
        end local 1 // int iport
        end local 0 // java.net.DatagramPacket this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    4     0   this  Ljava/net/DatagramPacket;
            0    4     1  iport  I
    MethodParameters:
       Name  Flags
      iport  

  public synchronized void setSocketAddress(java.net.SocketAddress);
    descriptor: (Ljava/net/SocketAddress;)V
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // java.net.DatagramPacket this
        start local 1 // java.net.SocketAddress address
         0: .line 312
            aload 1 /* address */
            ifnull 1
            aload 1 /* address */
            instanceof java.net.InetSocketAddress
            ifne 2
         1: .line 313
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            ldc "unsupported address type"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 314
      StackMap locals:
      StackMap stack:
            aload 1 /* address */
            checkcast java.net.InetSocketAddress
            astore 2 /* addr */
        start local 2 // java.net.InetSocketAddress addr
         3: .line 315
            aload 2 /* addr */
            invokevirtual java.net.InetSocketAddress.isUnresolved:()Z
            ifeq 5
         4: .line 316
            new java.lang.IllegalArgumentException
            dup
            ldc "unresolved address"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         5: .line 317
      StackMap locals: java.net.InetSocketAddress
      StackMap stack:
            aload 0 /* this */
            aload 2 /* addr */
            invokevirtual java.net.InetSocketAddress.getAddress:()Ljava/net/InetAddress;
            invokevirtual java.net.DatagramPacket.setAddress:(Ljava/net/InetAddress;)V
         6: .line 318
            aload 0 /* this */
            aload 2 /* addr */
            invokevirtual java.net.InetSocketAddress.getPort:()I
            invokevirtual java.net.DatagramPacket.setPort:(I)V
         7: .line 319
            return
        end local 2 // java.net.InetSocketAddress addr
        end local 1 // java.net.SocketAddress address
        end local 0 // java.net.DatagramPacket this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    8     0     this  Ljava/net/DatagramPacket;
            0    8     1  address  Ljava/net/SocketAddress;
            3    8     2     addr  Ljava/net/InetSocketAddress;
    MethodParameters:
         Name  Flags
      address  

  public synchronized java.net.SocketAddress getSocketAddress();
    descriptor: ()Ljava/net/SocketAddress;
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // java.net.DatagramPacket this
         0: .line 330
            new java.net.InetSocketAddress
            dup
            aload 0 /* this */
            invokevirtual java.net.DatagramPacket.getAddress:()Ljava/net/InetAddress;
            aload 0 /* this */
            invokevirtual java.net.DatagramPacket.getPort:()I
            invokespecial java.net.InetSocketAddress.<init>:(Ljava/net/InetAddress;I)V
            areturn
        end local 0 // java.net.DatagramPacket this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/net/DatagramPacket;

  public synchronized void setData(byte[]);
    descriptor: ([B)V
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // java.net.DatagramPacket this
        start local 1 // byte[] buf
         0: .line 348
            aload 1 /* buf */
            ifnonnull 2
         1: .line 349
            new java.lang.NullPointerException
            dup
            ldc "null packet buffer"
            invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 351
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* buf */
            putfield java.net.DatagramPacket.buf:[B
         3: .line 352
            aload 0 /* this */
            iconst_0
            putfield java.net.DatagramPacket.offset:I
         4: .line 353
            aload 0 /* this */
            aload 1 /* buf */
            arraylength
            putfield java.net.DatagramPacket.length:I
         5: .line 354
            aload 0 /* this */
            aload 1 /* buf */
            arraylength
            putfield java.net.DatagramPacket.bufLength:I
         6: .line 355
            return
        end local 1 // byte[] buf
        end local 0 // java.net.DatagramPacket this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Ljava/net/DatagramPacket;
            0    7     1   buf  [B
    MethodParameters:
      Name  Flags
      buf   

  public synchronized void setLength(int);
    descriptor: (I)V
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // java.net.DatagramPacket this
        start local 1 // int length
         0: .line 376
            iload 1 /* length */
            aload 0 /* this */
            getfield java.net.DatagramPacket.offset:I
            iadd
            aload 0 /* this */
            getfield java.net.DatagramPacket.buf:[B
            arraylength
            if_icmpgt 2
            iload 1 /* length */
            iflt 2
         1: .line 377
            iload 1 /* length */
            aload 0 /* this */
            getfield java.net.DatagramPacket.offset:I
            iadd
            ifge 3
         2: .line 378
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            ldc "illegal length"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 380
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* length */
            putfield java.net.DatagramPacket.length:I
         4: .line 381
            aload 0 /* this */
            aload 0 /* this */
            getfield java.net.DatagramPacket.length:I
            putfield java.net.DatagramPacket.bufLength:I
         5: .line 382
            return
        end local 1 // int length
        end local 0 // java.net.DatagramPacket this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    6     0    this  Ljava/net/DatagramPacket;
            0    6     1  length  I
    MethodParameters:
        Name  Flags
      length  

  private static native void init();
    descriptor: ()V
    flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
}
SourceFile: "DatagramPacket.java"
NestMembers:
  java.net.DatagramPacket$1
InnerClasses:
  java.net.DatagramPacket$1