Socket-Optionen erfragen
Socket und ServerSocket unterstützen Optionen wie zum Beispiel einen Type of Service oder TCP-NoDelay, wobei diese von System zu System unterschiedlich sein können. In Java 9 lassen sich die Optionen einfach abfragen.
Beispiel: Gib alle Optionen aus:
Socket socket = new Socket( "localhost", 80 );
System.out.println( socket.supportedOptions().stream()
.map( o -> o.name() + " is " + o.type().getSimpleName() )
.collect( Collectors.joining( ", " ) ) );
// SO_LINGER is Integer, IP_TOS is Integer, SO_KEEPALIVE is Boolean, TCP_NODELAY is Boolean, SO_SNDBUF is Integer, SO_REUSEADDR is Boolean, SO_RCVBUF is Integer
ServerSocket serversocket = new ServerSocket( 8080 );
System.out.println( serversocket.supportedOptions() );
// [SO_RCVBUF, SO_REUSEADDR, IP_TOS]
Die supportedOptions()-Methoden liefern eine Set<SocketOption>. Eine SocketOption deklariert name() und type().