public abstract class java.net.DatagramSocketImpl implements java.net.SocketOptions
  minor version: 0
  major version: 59
  flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
  this_class: java.net.DatagramSocketImpl
  super_class: java.lang.Object
{
  protected int localPort;
    descriptor: I
    flags: (0x0004) ACC_PROTECTED

  protected java.io.FileDescriptor fd;
    descriptor: Ljava/io/FileDescriptor;
    flags: (0x0004) ACC_PROTECTED

  java.net.DatagramSocket socket;
    descriptor: Ljava/net/DatagramSocket;
    flags: (0x0000) 

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.net.DatagramSocketImpl this
         0: .line 38
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // java.net.DatagramSocketImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/net/DatagramSocketImpl;

  int dataAvailable();
    descriptor: ()I
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.net.DatagramSocketImpl this
         0: .line 53
            iconst_0
            ireturn
        end local 0 // java.net.DatagramSocketImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/net/DatagramSocketImpl;

  void setDatagramSocket(java.net.DatagramSocket);
    descriptor: (Ljava/net/DatagramSocket;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.net.DatagramSocketImpl this
        start local 1 // java.net.DatagramSocket socket
         0: .line 63
            aload 0 /* this */
            aload 1 /* socket */
            putfield java.net.DatagramSocketImpl.socket:Ljava/net/DatagramSocket;
         1: .line 64
            return
        end local 1 // java.net.DatagramSocket socket
        end local 0 // java.net.DatagramSocketImpl this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Ljava/net/DatagramSocketImpl;
            0    2     1  socket  Ljava/net/DatagramSocket;
    MethodParameters:
        Name  Flags
      socket  

  java.net.DatagramSocket getDatagramSocket();
    descriptor: ()Ljava/net/DatagramSocket;
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.net.DatagramSocketImpl this
         0: .line 67
            aload 0 /* this */
            getfield java.net.DatagramSocketImpl.socket:Ljava/net/DatagramSocket;
            areturn
        end local 0 // java.net.DatagramSocketImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/net/DatagramSocketImpl;

  protected abstract void create();
    descriptor: ()V
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
    Exceptions:
      throws java.net.SocketException

  protected abstract void bind(int, java.net.InetAddress);
    descriptor: (ILjava/net/InetAddress;)V
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
    Exceptions:
      throws java.net.SocketException
    MethodParameters:
       Name  Flags
      lport  
      laddr  

  protected abstract void send(java.net.DatagramPacket);
    descriptor: (Ljava/net/DatagramPacket;)V
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      p     

  protected void connect(java.net.InetAddress, int);
    descriptor: (Ljava/net/InetAddress;I)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=0, locals=3, args_size=3
        start local 0 // java.net.DatagramSocketImpl this
        start local 1 // java.net.InetAddress address
        start local 2 // int port
         0: .line 115
            return
        end local 2 // int port
        end local 1 // java.net.InetAddress address
        end local 0 // java.net.DatagramSocketImpl this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Ljava/net/DatagramSocketImpl;
            0    1     1  address  Ljava/net/InetAddress;
            0    1     2     port  I
    Exceptions:
      throws java.net.SocketException
    MethodParameters:
         Name  Flags
      address  
      port     

  protected void disconnect();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=0, locals=1, args_size=1
        start local 0 // java.net.DatagramSocketImpl this
         0: .line 121
            return
        end local 0 // java.net.DatagramSocketImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/net/DatagramSocketImpl;

  protected abstract int peek(java.net.InetAddress);
    descriptor: (Ljava/net/InetAddress;)I
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      i     

  protected abstract int peekData(java.net.DatagramPacket);
    descriptor: (Ljava/net/DatagramPacket;)I
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      p     

  protected abstract void receive(java.net.DatagramPacket);
    descriptor: (Ljava/net/DatagramPacket;)V
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      p     

  protected abstract void setTTL(byte);
    descriptor: (B)V
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
    Exceptions:
      throws java.io.IOException
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
      Name  Flags
      ttl   

  protected abstract byte getTTL();
    descriptor: ()B
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
    Exceptions:
      throws java.io.IOException
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()

  protected abstract void setTimeToLive(int);
    descriptor: (I)V
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      ttl   

  protected abstract int getTimeToLive();
    descriptor: ()I
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
    Exceptions:
      throws java.io.IOException

  protected abstract void join(java.net.InetAddress);
    descriptor: (Ljava/net/InetAddress;)V
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
    Exceptions:
      throws java.io.IOException
    MethodParameters:
          Name  Flags
      inetaddr  

  protected abstract void leave(java.net.InetAddress);
    descriptor: (Ljava/net/InetAddress;)V
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
    Exceptions:
      throws java.io.IOException
    MethodParameters:
          Name  Flags
      inetaddr  

  protected abstract void joinGroup(java.net.SocketAddress, java.net.NetworkInterface);
    descriptor: (Ljava/net/SocketAddress;Ljava/net/NetworkInterface;)V
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
    Exceptions:
      throws java.io.IOException
    MethodParameters:
           Name  Flags
      mcastaddr  
      netIf      

  protected abstract void leaveGroup(java.net.SocketAddress, java.net.NetworkInterface);
    descriptor: (Ljava/net/SocketAddress;Ljava/net/NetworkInterface;)V
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
    Exceptions:
      throws java.io.IOException
    MethodParameters:
           Name  Flags
      mcastaddr  
      netIf      

  protected abstract void close();
    descriptor: ()V
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT

  protected int getLocalPort();
    descriptor: ()I
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.net.DatagramSocketImpl this
         0: .line 253
            aload 0 /* this */
            getfield java.net.DatagramSocketImpl.localPort:I
            ireturn
        end local 0 // java.net.DatagramSocketImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/net/DatagramSocketImpl;

  <T> void setOption(java.net.SocketOption<T>, );
    descriptor: (Ljava/net/SocketOption;Ljava/lang/Object;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // java.net.DatagramSocketImpl this
        start local 1 // java.net.SocketOption name
        start local 2 // java.lang.Object value
         0: .line 257
            aload 1 /* name */
            getstatic java.net.StandardSocketOptions.SO_SNDBUF:Ljava/net/SocketOption;
            if_acmpne 3
         1: .line 258
            aload 0 /* this */
            sipush 4097
            aload 2 /* value */
            invokevirtual java.net.DatagramSocketImpl.setOption:(ILjava/lang/Object;)V
         2: .line 259
            goto 27
      StackMap locals:
      StackMap stack:
         3: aload 1 /* name */
            getstatic java.net.StandardSocketOptions.SO_RCVBUF:Ljava/net/SocketOption;
            if_acmpne 6
         4: .line 260
            aload 0 /* this */
            sipush 4098
            aload 2 /* value */
            invokevirtual java.net.DatagramSocketImpl.setOption:(ILjava/lang/Object;)V
         5: .line 261
            goto 27
      StackMap locals:
      StackMap stack:
         6: aload 1 /* name */
            getstatic java.net.StandardSocketOptions.SO_REUSEADDR:Ljava/net/SocketOption;
            if_acmpne 9
         7: .line 262
            aload 0 /* this */
            iconst_4
            aload 2 /* value */
            invokevirtual java.net.DatagramSocketImpl.setOption:(ILjava/lang/Object;)V
         8: .line 263
            goto 27
      StackMap locals:
      StackMap stack:
         9: aload 1 /* name */
            getstatic java.net.StandardSocketOptions.IP_TOS:Ljava/net/SocketOption;
            if_acmpne 12
        10: .line 264
            aload 0 /* this */
            iconst_3
            aload 2 /* value */
            invokevirtual java.net.DatagramSocketImpl.setOption:(ILjava/lang/Object;)V
        11: .line 265
            goto 27
      StackMap locals:
      StackMap stack:
        12: aload 1 /* name */
            getstatic java.net.StandardSocketOptions.IP_MULTICAST_IF:Ljava/net/SocketOption;
            if_acmpne 16
        13: .line 266
            aload 0 /* this */
            invokevirtual java.net.DatagramSocketImpl.getDatagramSocket:()Ljava/net/DatagramSocket;
            instanceof java.net.MulticastSocket
            ifeq 16
        14: .line 267
            aload 0 /* this */
            bipush 31
            aload 2 /* value */
            invokevirtual java.net.DatagramSocketImpl.setOption:(ILjava/lang/Object;)V
        15: .line 268
            goto 27
      StackMap locals:
      StackMap stack:
        16: aload 1 /* name */
            getstatic java.net.StandardSocketOptions.IP_MULTICAST_TTL:Ljava/net/SocketOption;
            if_acmpne 22
        17: .line 269
            aload 0 /* this */
            invokevirtual java.net.DatagramSocketImpl.getDatagramSocket:()Ljava/net/DatagramSocket;
            instanceof java.net.MulticastSocket
            ifeq 22
        18: .line 270
            aload 2 /* value */
            instanceof java.lang.Integer
            ifne 20
        19: .line 271
            new java.lang.IllegalArgumentException
            dup
            ldc "not an integer"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        20: .line 273
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* value */
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            invokevirtual java.net.DatagramSocketImpl.setTimeToLive:(I)V
        21: .line 274
            goto 27
      StackMap locals:
      StackMap stack:
        22: aload 1 /* name */
            getstatic java.net.StandardSocketOptions.IP_MULTICAST_LOOP:Ljava/net/SocketOption;
            if_acmpne 26
        23: .line 275
            aload 0 /* this */
            invokevirtual java.net.DatagramSocketImpl.getDatagramSocket:()Ljava/net/DatagramSocket;
            instanceof java.net.MulticastSocket
            ifeq 26
        24: .line 276
            aload 0 /* this */
            bipush 18
            aload 2 /* value */
            invokevirtual java.net.DatagramSocketImpl.setOption:(ILjava/lang/Object;)V
        25: .line 277
            goto 27
        26: .line 278
      StackMap locals:
      StackMap stack:
            new java.lang.UnsupportedOperationException
            dup
            ldc "unsupported option"
            invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;)V
            athrow
        27: .line 280
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.lang.Object value
        end local 1 // java.net.SocketOption name
        end local 0 // java.net.DatagramSocketImpl this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   28     0   this  Ljava/net/DatagramSocketImpl;
            0   28     1   name  Ljava/net/SocketOption<TT;>;
            0   28     2  value  TT;
    Exceptions:
      throws java.io.IOException
    Signature: <T:Ljava/lang/Object;>(Ljava/net/SocketOption<TT;>;TT;)V
    MethodParameters:
       Name  Flags
      name   
      value  

  <T> T getOption(java.net.SocketOption<T>);
    descriptor: (Ljava/net/SocketOption;)Ljava/lang/Object;
    flags: (0x0000) 
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // java.net.DatagramSocketImpl this
        start local 1 // java.net.SocketOption name
         0: .line 283
            aload 1 /* name */
            getstatic java.net.StandardSocketOptions.SO_SNDBUF:Ljava/net/SocketOption;
            if_acmpne 2
         1: .line 284
            aload 0 /* this */
            sipush 4097
            invokevirtual java.net.DatagramSocketImpl.getOption:(I)Ljava/lang/Object;
            areturn
         2: .line 285
      StackMap locals:
      StackMap stack:
            aload 1 /* name */
            getstatic java.net.StandardSocketOptions.SO_RCVBUF:Ljava/net/SocketOption;
            if_acmpne 4
         3: .line 286
            aload 0 /* this */
            sipush 4098
            invokevirtual java.net.DatagramSocketImpl.getOption:(I)Ljava/lang/Object;
            areturn
         4: .line 287
      StackMap locals:
      StackMap stack:
            aload 1 /* name */
            getstatic java.net.StandardSocketOptions.SO_REUSEADDR:Ljava/net/SocketOption;
            if_acmpne 6
         5: .line 288
            aload 0 /* this */
            iconst_4
            invokevirtual java.net.DatagramSocketImpl.getOption:(I)Ljava/lang/Object;
            areturn
         6: .line 289
      StackMap locals:
      StackMap stack:
            aload 1 /* name */
            getstatic java.net.StandardSocketOptions.IP_TOS:Ljava/net/SocketOption;
            if_acmpne 8
         7: .line 290
            aload 0 /* this */
            iconst_3
            invokevirtual java.net.DatagramSocketImpl.getOption:(I)Ljava/lang/Object;
            areturn
         8: .line 291
      StackMap locals:
      StackMap stack:
            aload 1 /* name */
            getstatic java.net.StandardSocketOptions.IP_MULTICAST_IF:Ljava/net/SocketOption;
            if_acmpne 11
         9: .line 292
            aload 0 /* this */
            invokevirtual java.net.DatagramSocketImpl.getDatagramSocket:()Ljava/net/DatagramSocket;
            instanceof java.net.MulticastSocket
            ifeq 11
        10: .line 293
            aload 0 /* this */
            bipush 31
            invokevirtual java.net.DatagramSocketImpl.getOption:(I)Ljava/lang/Object;
            areturn
        11: .line 294
      StackMap locals:
      StackMap stack:
            aload 1 /* name */
            getstatic java.net.StandardSocketOptions.IP_MULTICAST_TTL:Ljava/net/SocketOption;
            if_acmpne 15
        12: .line 295
            aload 0 /* this */
            invokevirtual java.net.DatagramSocketImpl.getDatagramSocket:()Ljava/net/DatagramSocket;
            instanceof java.net.MulticastSocket
            ifeq 15
        13: .line 296
            aload 0 /* this */
            invokevirtual java.net.DatagramSocketImpl.getTimeToLive:()I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            astore 2 /* ttl */
        start local 2 // java.lang.Integer ttl
        14: .line 297
            aload 2 /* ttl */
            areturn
        end local 2 // java.lang.Integer ttl
        15: .line 298
      StackMap locals:
      StackMap stack:
            aload 1 /* name */
            getstatic java.net.StandardSocketOptions.IP_MULTICAST_LOOP:Ljava/net/SocketOption;
            if_acmpne 18
        16: .line 299
            aload 0 /* this */
            invokevirtual java.net.DatagramSocketImpl.getDatagramSocket:()Ljava/net/DatagramSocket;
            instanceof java.net.MulticastSocket
            ifeq 18
        17: .line 300
            aload 0 /* this */
            bipush 18
            invokevirtual java.net.DatagramSocketImpl.getOption:(I)Ljava/lang/Object;
            areturn
        18: .line 302
      StackMap locals:
      StackMap stack:
            new java.lang.UnsupportedOperationException
            dup
            ldc "unsupported option"
            invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;)V
            athrow
        end local 1 // java.net.SocketOption name
        end local 0 // java.net.DatagramSocketImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   19     0  this  Ljava/net/DatagramSocketImpl;
            0   19     1  name  Ljava/net/SocketOption<TT;>;
           14   15     2   ttl  Ljava/lang/Integer;
    Exceptions:
      throws java.io.IOException
    Signature: <T:Ljava/lang/Object;>(Ljava/net/SocketOption<TT;>;)TT;
    MethodParameters:
      Name  Flags
      name  

  protected java.io.FileDescriptor getFileDescriptor();
    descriptor: ()Ljava/io/FileDescriptor;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.net.DatagramSocketImpl this
         0: .line 312
            aload 0 /* this */
            getfield java.net.DatagramSocketImpl.fd:Ljava/io/FileDescriptor;
            areturn
        end local 0 // java.net.DatagramSocketImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/net/DatagramSocketImpl;
}
SourceFile: "DatagramSocketImpl.java"