public class java.net.MulticastSocket extends java.net.DatagramSocket
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: java.net.MulticastSocket
super_class: java.net.DatagramSocket
{
private boolean interfaceSet;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private java.lang.Object ttlLock;
descriptor: Ljava/lang/Object;
flags: (0x0002) ACC_PRIVATE
private java.lang.Object infLock;
descriptor: Ljava/lang/Object;
flags: (0x0002) ACC_PRIVATE
private java.net.InetAddress infAddress;
descriptor: Ljava/net/InetAddress;
flags: (0x0002) ACC_PRIVATE
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=1, args_size=1
start local 0 0: aload 0
new java.net.InetSocketAddress
dup
iconst_0
invokespecial java.net.InetSocketAddress.<init>:(I)V
invokespecial java.net.MulticastSocket.<init>:(Ljava/net/SocketAddress;)V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljava/net/MulticastSocket;
Exceptions:
throws java.io.IOException
public void <init>(int);
descriptor: (I)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
new java.net.InetSocketAddress
dup
iload 1
invokespecial java.net.InetSocketAddress.<init>:(I)V
invokespecial java.net.MulticastSocket.<init>:(Ljava/net/SocketAddress;)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljava/net/MulticastSocket;
0 2 1 port I
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
port
public void <init>(java.net.SocketAddress);
descriptor: (Ljava/net/SocketAddress;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 0
aconst_null
invokespecial java.net.DatagramSocket.<init>:(Ljava/net/SocketAddress;)V
1: aload 0
new java.lang.Object
dup
invokespecial java.lang.Object.<init>:()V
putfield java.net.MulticastSocket.ttlLock:Ljava/lang/Object;
2: aload 0
new java.lang.Object
dup
invokespecial java.lang.Object.<init>:()V
putfield java.net.MulticastSocket.infLock:Ljava/lang/Object;
3: aload 0
aconst_null
putfield java.net.MulticastSocket.infAddress:Ljava/net/InetAddress;
4: aload 0
iconst_1
invokevirtual java.net.MulticastSocket.setReuseAddress:(Z)V
5: aload 1
ifnull 14
6: aload 0
aload 1
invokevirtual java.net.MulticastSocket.bind:(Ljava/net/SocketAddress;)V
7: goto 12
StackMap locals: java.net.MulticastSocket java.net.SocketAddress
StackMap stack: java.lang.Throwable
8: astore 2
9: aload 0
invokevirtual java.net.MulticastSocket.isBound:()Z
ifne 11
10: aload 0
invokevirtual java.net.MulticastSocket.close:()V
11: StackMap locals: java.lang.Throwable
StackMap stack:
aload 2
athrow
12: StackMap locals:
StackMap stack:
aload 0
invokevirtual java.net.MulticastSocket.isBound:()Z
ifne 14
13: aload 0
invokevirtual java.net.MulticastSocket.close:()V
14: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Ljava/net/MulticastSocket;
0 15 1 bindaddr Ljava/net/SocketAddress;
Exception table:
from to target type
6 8 8 any
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
bindaddr
public void setTTL(byte);
descriptor: (B)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual java.net.MulticastSocket.isClosed:()Z
ifeq 2
1: new java.net.SocketException
dup
ldc "Socket is closed"
invokespecial java.net.SocketException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 0
invokevirtual java.net.MulticastSocket.getImpl:()Ljava/net/DatagramSocketImpl;
iload 1
invokevirtual java.net.DatagramSocketImpl.setTTL:(B)V
3: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Ljava/net/MulticastSocket;
0 4 1 ttl B
Exceptions:
throws java.io.IOException
RuntimeVisibleAnnotations:
java.lang.Deprecated()
MethodParameters:
Name Flags
ttl
public void setTimeToLive(int);
descriptor: (I)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: iload 1
iflt 1
iload 1
sipush 255
if_icmple 2
1: StackMap locals:
StackMap stack:
new java.lang.IllegalArgumentException
dup
ldc "ttl out of range"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 0
invokevirtual java.net.MulticastSocket.isClosed:()Z
ifeq 4
3: new java.net.SocketException
dup
ldc "Socket is closed"
invokespecial java.net.SocketException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals:
StackMap stack:
aload 0
invokevirtual java.net.MulticastSocket.getImpl:()Ljava/net/DatagramSocketImpl;
iload 1
invokevirtual java.net.DatagramSocketImpl.setTimeToLive:(I)V
5: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Ljava/net/MulticastSocket;
0 6 1 ttl I
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
ttl
public byte getTTL();
descriptor: ()B
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual java.net.MulticastSocket.isClosed:()Z
ifeq 2
1: new java.net.SocketException
dup
ldc "Socket is closed"
invokespecial java.net.SocketException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 0
invokevirtual java.net.MulticastSocket.getImpl:()Ljava/net/DatagramSocketImpl;
invokevirtual java.net.DatagramSocketImpl.getTTL:()B
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljava/net/MulticastSocket;
Exceptions:
throws java.io.IOException
RuntimeVisibleAnnotations:
java.lang.Deprecated()
public int getTimeToLive();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual java.net.MulticastSocket.isClosed:()Z
ifeq 2
1: new java.net.SocketException
dup
ldc "Socket is closed"
invokespecial java.net.SocketException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 0
invokevirtual java.net.MulticastSocket.getImpl:()Ljava/net/DatagramSocketImpl;
invokevirtual java.net.DatagramSocketImpl.getTimeToLive:()I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljava/net/MulticastSocket;
Exceptions:
throws java.io.IOException
public void joinGroup(java.net.InetAddress);
descriptor: (Ljava/net/InetAddress;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=4, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual java.net.MulticastSocket.isClosed:()Z
ifeq 2
1: new java.net.SocketException
dup
ldc "Socket is closed"
invokespecial java.net.SocketException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 0
aload 1
ldc "joinGroup"
invokevirtual java.net.MulticastSocket.checkAddress:(Ljava/net/InetAddress;Ljava/lang/String;)V
3: invokestatic java.lang.System.getSecurityManager:()Ljava/lang/SecurityManager;
astore 2
start local 2 4: aload 2
ifnull 6
5: aload 2
aload 1
invokevirtual java.lang.SecurityManager.checkMulticast:(Ljava/net/InetAddress;)V
6: StackMap locals: java.lang.SecurityManager
StackMap stack:
aload 1
invokevirtual java.net.InetAddress.isMulticastAddress:()Z
ifne 8
7: new java.net.SocketException
dup
ldc "Not a multicast address"
invokespecial java.net.SocketException.<init>:(Ljava/lang/String;)V
athrow
8: StackMap locals:
StackMap stack:
invokestatic java.net.NetworkInterface.getDefault:()Ljava/net/NetworkInterface;
astore 3
start local 3 9: aload 0
getfield java.net.MulticastSocket.interfaceSet:Z
ifne 11
aload 3
ifnull 11
10: aload 0
aload 3
invokevirtual java.net.MulticastSocket.setNetworkInterface:(Ljava/net/NetworkInterface;)V
11: StackMap locals: java.net.NetworkInterface
StackMap stack:
aload 0
invokevirtual java.net.MulticastSocket.getImpl:()Ljava/net/DatagramSocketImpl;
aload 1
invokevirtual java.net.DatagramSocketImpl.join:(Ljava/net/InetAddress;)V
12: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Ljava/net/MulticastSocket;
0 13 1 mcastaddr Ljava/net/InetAddress;
4 13 2 security Ljava/lang/SecurityManager;
9 13 3 defaultInterface Ljava/net/NetworkInterface;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
mcastaddr
public void leaveGroup(java.net.InetAddress);
descriptor: (Ljava/net/InetAddress;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual java.net.MulticastSocket.isClosed:()Z
ifeq 2
1: new java.net.SocketException
dup
ldc "Socket is closed"
invokespecial java.net.SocketException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 0
aload 1
ldc "leaveGroup"
invokevirtual java.net.MulticastSocket.checkAddress:(Ljava/net/InetAddress;Ljava/lang/String;)V
3: invokestatic java.lang.System.getSecurityManager:()Ljava/lang/SecurityManager;
astore 2
start local 2 4: aload 2
ifnull 6
5: aload 2
aload 1
invokevirtual java.lang.SecurityManager.checkMulticast:(Ljava/net/InetAddress;)V
6: StackMap locals: java.lang.SecurityManager
StackMap stack:
aload 1
invokevirtual java.net.InetAddress.isMulticastAddress:()Z
ifne 8
7: new java.net.SocketException
dup
ldc "Not a multicast address"
invokespecial java.net.SocketException.<init>:(Ljava/lang/String;)V
athrow
8: StackMap locals:
StackMap stack:
aload 0
invokevirtual java.net.MulticastSocket.getImpl:()Ljava/net/DatagramSocketImpl;
aload 1
invokevirtual java.net.DatagramSocketImpl.leave:(Ljava/net/InetAddress;)V
9: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Ljava/net/MulticastSocket;
0 10 1 mcastaddr Ljava/net/InetAddress;
4 10 2 security Ljava/lang/SecurityManager;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
mcastaddr
public void joinGroup(java.net.SocketAddress, java.net.NetworkInterface);
descriptor: (Ljava/net/SocketAddress;Ljava/net/NetworkInterface;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokevirtual java.net.MulticastSocket.isClosed:()Z
ifeq 2
1: new java.net.SocketException
dup
ldc "Socket is closed"
invokespecial java.net.SocketException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 1
ifnull 3
aload 1
instanceof java.net.InetSocketAddress
ifne 4
3: StackMap locals:
StackMap stack:
new java.lang.IllegalArgumentException
dup
ldc "Unsupported address type"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals:
StackMap stack:
aload 0
getfield java.net.MulticastSocket.oldImpl:Z
ifeq 6
5: new java.lang.UnsupportedOperationException
dup
invokespecial java.lang.UnsupportedOperationException.<init>:()V
athrow
6: StackMap locals:
StackMap stack:
aload 0
aload 1
checkcast java.net.InetSocketAddress
invokevirtual java.net.InetSocketAddress.getAddress:()Ljava/net/InetAddress;
ldc "joinGroup"
invokevirtual java.net.MulticastSocket.checkAddress:(Ljava/net/InetAddress;Ljava/lang/String;)V
7: invokestatic java.lang.System.getSecurityManager:()Ljava/lang/SecurityManager;
astore 3
start local 3 8: aload 3
ifnull 10
9: aload 3
aload 1
checkcast java.net.InetSocketAddress
invokevirtual java.net.InetSocketAddress.getAddress:()Ljava/net/InetAddress;
invokevirtual java.lang.SecurityManager.checkMulticast:(Ljava/net/InetAddress;)V
10: StackMap locals: java.lang.SecurityManager
StackMap stack:
aload 1
checkcast java.net.InetSocketAddress
invokevirtual java.net.InetSocketAddress.getAddress:()Ljava/net/InetAddress;
invokevirtual java.net.InetAddress.isMulticastAddress:()Z
ifne 12
11: new java.net.SocketException
dup
ldc "Not a multicast address"
invokespecial java.net.SocketException.<init>:(Ljava/lang/String;)V
athrow
12: StackMap locals:
StackMap stack:
aload 0
invokevirtual java.net.MulticastSocket.getImpl:()Ljava/net/DatagramSocketImpl;
aload 1
aload 2
invokevirtual java.net.DatagramSocketImpl.joinGroup:(Ljava/net/SocketAddress;Ljava/net/NetworkInterface;)V
13: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Ljava/net/MulticastSocket;
0 14 1 mcastaddr Ljava/net/SocketAddress;
0 14 2 netIf Ljava/net/NetworkInterface;
8 14 3 security Ljava/lang/SecurityManager;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
mcastaddr
netIf
public void leaveGroup(java.net.SocketAddress, java.net.NetworkInterface);
descriptor: (Ljava/net/SocketAddress;Ljava/net/NetworkInterface;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokevirtual java.net.MulticastSocket.isClosed:()Z
ifeq 2
1: new java.net.SocketException
dup
ldc "Socket is closed"
invokespecial java.net.SocketException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 1
ifnull 3
aload 1
instanceof java.net.InetSocketAddress
ifne 4
3: StackMap locals:
StackMap stack:
new java.lang.IllegalArgumentException
dup
ldc "Unsupported address type"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals:
StackMap stack:
aload 0
getfield java.net.MulticastSocket.oldImpl:Z
ifeq 6
5: new java.lang.UnsupportedOperationException
dup
invokespecial java.lang.UnsupportedOperationException.<init>:()V
athrow
6: StackMap locals:
StackMap stack:
aload 0
aload 1
checkcast java.net.InetSocketAddress
invokevirtual java.net.InetSocketAddress.getAddress:()Ljava/net/InetAddress;
ldc "leaveGroup"
invokevirtual java.net.MulticastSocket.checkAddress:(Ljava/net/InetAddress;Ljava/lang/String;)V
7: invokestatic java.lang.System.getSecurityManager:()Ljava/lang/SecurityManager;
astore 3
start local 3 8: aload 3
ifnull 10
9: aload 3
aload 1
checkcast java.net.InetSocketAddress
invokevirtual java.net.InetSocketAddress.getAddress:()Ljava/net/InetAddress;
invokevirtual java.lang.SecurityManager.checkMulticast:(Ljava/net/InetAddress;)V
10: StackMap locals: java.lang.SecurityManager
StackMap stack:
aload 1
checkcast java.net.InetSocketAddress
invokevirtual java.net.InetSocketAddress.getAddress:()Ljava/net/InetAddress;
invokevirtual java.net.InetAddress.isMulticastAddress:()Z
ifne 12
11: new java.net.SocketException
dup
ldc "Not a multicast address"
invokespecial java.net.SocketException.<init>:(Ljava/lang/String;)V
athrow
12: StackMap locals:
StackMap stack:
aload 0
invokevirtual java.net.MulticastSocket.getImpl:()Ljava/net/DatagramSocketImpl;
aload 1
aload 2
invokevirtual java.net.DatagramSocketImpl.leaveGroup:(Ljava/net/SocketAddress;Ljava/net/NetworkInterface;)V
13: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Ljava/net/MulticastSocket;
0 14 1 mcastaddr Ljava/net/SocketAddress;
0 14 2 netIf Ljava/net/NetworkInterface;
8 14 3 security Ljava/lang/SecurityManager;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
mcastaddr
netIf
public void setInterface(java.net.InetAddress);
descriptor: (Ljava/net/InetAddress;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual java.net.MulticastSocket.isClosed:()Z
ifeq 2
1: new java.net.SocketException
dup
ldc "Socket is closed"
invokespecial java.net.SocketException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 0
aload 1
ldc "setInterface"
invokevirtual java.net.MulticastSocket.checkAddress:(Ljava/net/InetAddress;Ljava/lang/String;)V
3: aload 0
getfield java.net.MulticastSocket.infLock:Ljava/lang/Object;
dup
astore 2
monitorenter
4: aload 0
invokevirtual java.net.MulticastSocket.getImpl:()Ljava/net/DatagramSocketImpl;
bipush 16
aload 1
invokevirtual java.net.DatagramSocketImpl.setOption:(ILjava/lang/Object;)V
5: aload 0
aload 1
putfield java.net.MulticastSocket.infAddress:Ljava/net/InetAddress;
6: aload 0
iconst_1
putfield java.net.MulticastSocket.interfaceSet:Z
7: aload 2
monitorexit
8: goto 11
StackMap locals: java.net.MulticastSocket java.net.InetAddress java.lang.Object
StackMap stack: java.lang.Throwable
9: aload 2
monitorexit
10: athrow
11: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Ljava/net/MulticastSocket;
0 12 1 inf Ljava/net/InetAddress;
Exception table:
from to target type
4 8 9 any
9 10 9 any
Exceptions:
throws java.net.SocketException
MethodParameters:
Name Flags
inf
public java.net.InetAddress getInterface();
descriptor: ()Ljava/net/InetAddress;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=6, args_size=1
start local 0 0: aload 0
invokevirtual java.net.MulticastSocket.isClosed:()Z
ifeq 2
1: new java.net.SocketException
dup
ldc "Socket is closed"
invokespecial java.net.SocketException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 0
getfield java.net.MulticastSocket.infLock:Ljava/lang/Object;
dup
astore 1
monitorenter
3: aload 0
invokevirtual java.net.MulticastSocket.getImpl:()Ljava/net/DatagramSocketImpl;
bipush 16
invokevirtual java.net.DatagramSocketImpl.getOption:(I)Ljava/lang/Object;
checkcast java.net.InetAddress
4: astore 2
start local 2 5: aload 0
getfield java.net.MulticastSocket.infAddress:Ljava/net/InetAddress;
ifnonnull 8
6: aload 2
aload 1
monitorexit
7: areturn
8: StackMap locals: java.lang.Object java.net.InetAddress
StackMap stack:
aload 2
aload 0
getfield java.net.MulticastSocket.infAddress:Ljava/net/InetAddress;
invokevirtual java.net.InetAddress.equals:(Ljava/lang/Object;)Z
ifeq 11
9: aload 2
aload 1
monitorexit
10: areturn
11: StackMap locals:
StackMap stack:
aload 2
invokestatic java.net.NetworkInterface.getByInetAddress:(Ljava/net/InetAddress;)Ljava/net/NetworkInterface;
astore 3
start local 3 12: aload 3
invokevirtual java.net.NetworkInterface.getInetAddresses:()Ljava/util/Enumeration;
astore 4
start local 4 13: goto 19
14: StackMap locals: java.net.NetworkInterface java.util.Enumeration
StackMap stack:
aload 4
invokeinterface java.util.Enumeration.nextElement:()Ljava/lang/Object;
checkcast java.net.InetAddress
astore 5
start local 5 15: aload 5
aload 0
getfield java.net.MulticastSocket.infAddress:Ljava/net/InetAddress;
invokevirtual java.net.InetAddress.equals:(Ljava/lang/Object;)Z
ifeq 19
16: aload 0
getfield java.net.MulticastSocket.infAddress:Ljava/net/InetAddress;
17: aload 1
monitorexit
18: areturn
end local 5 19: StackMap locals:
StackMap stack:
aload 4
invokeinterface java.util.Enumeration.hasMoreElements:()Z
ifne 14
20: aload 0
aconst_null
putfield java.net.MulticastSocket.infAddress:Ljava/net/InetAddress;
21: aload 2
22: aload 1
monitorexit
23: areturn
end local 4 end local 3 24: StackMap locals: java.net.MulticastSocket java.lang.Object java.net.InetAddress
StackMap stack: java.lang.Exception
pop
25: aload 2
aload 1
monitorexit
26: areturn
end local 2 27: StackMap locals: java.net.MulticastSocket java.lang.Object
StackMap stack: java.lang.Throwable
aload 1
monitorexit
28: athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 29 0 this Ljava/net/MulticastSocket;
5 27 2 ia Ljava/net/InetAddress;
12 24 3 ni Ljava/net/NetworkInterface;
13 24 4 addrs Ljava/util/Enumeration<Ljava/net/InetAddress;>;
15 19 5 addr Ljava/net/InetAddress;
Exception table:
from to target type
11 17 24 Class java.lang.Exception
19 22 24 Class java.lang.Exception
3 7 27 any
8 10 27 any
11 18 27 any
19 23 27 any
24 26 27 any
27 28 27 any
Exceptions:
throws java.net.SocketException
public void setNetworkInterface(java.net.NetworkInterface);
descriptor: (Ljava/net/NetworkInterface;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield java.net.MulticastSocket.infLock:Ljava/lang/Object;
dup
astore 2
monitorenter
1: aload 0
invokevirtual java.net.MulticastSocket.getImpl:()Ljava/net/DatagramSocketImpl;
bipush 31
aload 1
invokevirtual java.net.DatagramSocketImpl.setOption:(ILjava/lang/Object;)V
2: aload 0
aconst_null
putfield java.net.MulticastSocket.infAddress:Ljava/net/InetAddress;
3: aload 0
iconst_1
putfield java.net.MulticastSocket.interfaceSet:Z
4: aload 2
monitorexit
5: goto 8
StackMap locals: java.net.MulticastSocket java.net.NetworkInterface java.lang.Object
StackMap stack: java.lang.Throwable
6: aload 2
monitorexit
7: athrow
8: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Ljava/net/MulticastSocket;
0 9 1 netIf Ljava/net/NetworkInterface;
Exception table:
from to target type
1 5 6 any
6 7 6 any
Exceptions:
throws java.net.SocketException
MethodParameters:
Name Flags
netIf
public java.net.NetworkInterface getNetworkInterface();
descriptor: ()Ljava/net/NetworkInterface;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=3, args_size=1
start local 0 0: aload 0
invokevirtual java.net.MulticastSocket.getImpl:()Ljava/net/DatagramSocketImpl;
bipush 31
invokevirtual java.net.DatagramSocketImpl.getOption:(I)Ljava/lang/Object;
checkcast java.net.NetworkInterface
1: astore 1
start local 1 2: aload 1
invokevirtual java.net.NetworkInterface.getIndex:()I
ifeq 3
aload 1
invokevirtual java.net.NetworkInterface.getIndex:()I
iconst_m1
if_icmpne 6
3: StackMap locals: java.net.NetworkInterface
StackMap stack:
iconst_1
anewarray java.net.InetAddress
astore 2
start local 2 4: aload 2
iconst_0
invokestatic java.net.InetAddress.anyLocalAddress:()Ljava/net/InetAddress;
aastore
5: new java.net.NetworkInterface
dup
aload 2
iconst_0
aaload
invokevirtual java.net.InetAddress.getHostName:()Ljava/lang/String;
iconst_0
aload 2
invokespecial java.net.NetworkInterface.<init>:(Ljava/lang/String;I[Ljava/net/InetAddress;)V
areturn
end local 2 6: StackMap locals:
StackMap stack:
aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Ljava/net/MulticastSocket;
2 7 1 ni Ljava/net/NetworkInterface;
4 6 2 addrs [Ljava/net/InetAddress;
Exceptions:
throws java.net.SocketException
public void setLoopbackMode(boolean);
descriptor: (Z)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual java.net.MulticastSocket.getImpl:()Ljava/net/DatagramSocketImpl;
bipush 18
iload 1
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
invokevirtual java.net.DatagramSocketImpl.setOption:(ILjava/lang/Object;)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljava/net/MulticastSocket;
0 2 1 disable Z
Exceptions:
throws java.net.SocketException
MethodParameters:
Name Flags
disable
public boolean getLoopbackMode();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual java.net.MulticastSocket.getImpl:()Ljava/net/DatagramSocketImpl;
bipush 18
invokevirtual java.net.DatagramSocketImpl.getOption:(I)Ljava/lang/Object;
checkcast java.lang.Boolean
invokevirtual java.lang.Boolean.booleanValue:()Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/net/MulticastSocket;
Exceptions:
throws java.net.SocketException
public void send(java.net.DatagramPacket, byte);
descriptor: (Ljava/net/DatagramPacket;B)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=7, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokevirtual java.net.MulticastSocket.isClosed:()Z
ifeq 2
1: new java.net.SocketException
dup
ldc "Socket is closed"
invokespecial java.net.SocketException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual java.net.DatagramPacket.getAddress:()Ljava/net/InetAddress;
ldc "send"
invokevirtual java.net.MulticastSocket.checkAddress:(Ljava/net/InetAddress;Ljava/lang/String;)V
3: aload 0
getfield java.net.MulticastSocket.ttlLock:Ljava/lang/Object;
dup
astore 3
monitorenter
4: aload 1
dup
astore 4
monitorenter
5: aload 0
getfield java.net.MulticastSocket.connectState:I
ifne 15
6: invokestatic java.lang.System.getSecurityManager:()Ljava/lang/SecurityManager;
astore 5
start local 5 7: aload 5
ifnull 24
8: aload 1
invokevirtual java.net.DatagramPacket.getAddress:()Ljava/net/InetAddress;
invokevirtual java.net.InetAddress.isMulticastAddress:()Z
ifeq 11
9: aload 5
aload 1
invokevirtual java.net.DatagramPacket.getAddress:()Ljava/net/InetAddress;
iload 2
invokevirtual java.lang.SecurityManager.checkMulticast:(Ljava/net/InetAddress;B)V
10: goto 24
11: StackMap locals: java.lang.Object java.net.DatagramPacket java.lang.SecurityManager
StackMap stack:
aload 5
aload 1
invokevirtual java.net.DatagramPacket.getAddress:()Ljava/net/InetAddress;
invokevirtual java.net.InetAddress.getHostAddress:()Ljava/lang/String;
12: aload 1
invokevirtual java.net.DatagramPacket.getPort:()I
13: invokevirtual java.lang.SecurityManager.checkConnect:(Ljava/lang/String;I)V
end local 5 14: goto 24
15: StackMap locals:
StackMap stack:
aconst_null
astore 5
start local 5 16: aload 1
invokevirtual java.net.DatagramPacket.getAddress:()Ljava/net/InetAddress;
astore 5
17: aload 5
ifnonnull 21
18: aload 1
aload 0
getfield java.net.MulticastSocket.connectedAddress:Ljava/net/InetAddress;
invokevirtual java.net.DatagramPacket.setAddress:(Ljava/net/InetAddress;)V
19: aload 1
aload 0
getfield java.net.MulticastSocket.connectedPort:I
invokevirtual java.net.DatagramPacket.setPort:(I)V
20: goto 24
StackMap locals: java.net.InetAddress
StackMap stack:
21: aload 5
aload 0
getfield java.net.MulticastSocket.connectedAddress:Ljava/net/InetAddress;
invokevirtual java.net.InetAddress.equals:(Ljava/lang/Object;)Z
ifeq 23
22: aload 1
invokevirtual java.net.DatagramPacket.getPort:()I
aload 0
getfield java.net.MulticastSocket.connectedPort:I
if_icmpeq 24
23: StackMap locals:
StackMap stack:
new java.lang.SecurityException
dup
ldc "connected address and packet address differ"
invokespecial java.lang.SecurityException.<init>:(Ljava/lang/String;)V
athrow
end local 5 24: StackMap locals:
StackMap stack:
aload 0
invokevirtual java.net.MulticastSocket.getTTL:()B
istore 5
start local 5 25: iload 2
iload 5
if_icmpeq 27
26: aload 0
invokevirtual java.net.MulticastSocket.getImpl:()Ljava/net/DatagramSocketImpl;
iload 2
invokevirtual java.net.DatagramSocketImpl.setTTL:(B)V
27: StackMap locals: int
StackMap stack:
aload 0
invokevirtual java.net.MulticastSocket.getImpl:()Ljava/net/DatagramSocketImpl;
aload 1
invokevirtual java.net.DatagramSocketImpl.send:(Ljava/net/DatagramPacket;)V
28: goto 33
StackMap locals:
StackMap stack: java.lang.Throwable
29: astore 6
30: iload 2
iload 5
if_icmpeq 32
31: aload 0
invokevirtual java.net.MulticastSocket.getImpl:()Ljava/net/DatagramSocketImpl;
iload 5
invokevirtual java.net.DatagramSocketImpl.setTTL:(B)V
32: StackMap locals: java.lang.Throwable
StackMap stack:
aload 6
athrow
33: StackMap locals:
StackMap stack:
iload 2
iload 5
if_icmpeq 35
34: aload 0
invokevirtual java.net.MulticastSocket.getImpl:()Ljava/net/DatagramSocketImpl;
iload 5
invokevirtual java.net.DatagramSocketImpl.setTTL:(B)V
end local 5 35: StackMap locals:
StackMap stack:
aload 4
monitorexit
36: goto 39
StackMap locals:
StackMap stack: java.lang.Throwable
37: aload 4
monitorexit
38: athrow
39: StackMap locals:
StackMap stack:
aload 3
monitorexit
40: goto 43
StackMap locals:
StackMap stack: java.lang.Throwable
41: aload 3
monitorexit
42: athrow
43: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 44 0 this Ljava/net/MulticastSocket;
0 44 1 p Ljava/net/DatagramPacket;
0 44 2 ttl B
7 14 5 security Ljava/lang/SecurityManager;
16 24 5 packetAddress Ljava/net/InetAddress;
25 35 5 dttl B
Exception table:
from to target type
25 29 29 any
5 36 37 any
37 38 37 any
4 40 41 any
41 42 41 any
Exceptions:
throws java.io.IOException
RuntimeVisibleAnnotations:
java.lang.Deprecated()
MethodParameters:
Name Flags
p
ttl
}
SourceFile: "MulticastSocket.java"