publicstaticvoid main(String args[]) throws IOException { var loopback = InetAddress.getLoopbackAddress(); try (ServerSocket ss = boundServer(loopback);
Socket s = new Socket(loopback, ss.getLocalPort());
DatagramSocket ds = new DatagramSocket(0);
MulticastSocket mc = new MulticastSocket(0)) { if (ss.supportedOptions().contains(ExtendedSocketOptions.TCP_KEEPIDLE)) {
ss.setOption(ExtendedSocketOptions.TCP_KEEPIDLE, DEFAULT_KEEP_ALIVE_TIME); if (ss.getOption(ExtendedSocketOptions.TCP_KEEPIDLE) != DEFAULT_KEEP_ALIVE_TIME) { thrownew RuntimeException("Test failed, TCP_KEEPIDLE should have been " + DEFAULT_KEEP_ALIVE_TIME);
}
} if (ss.supportedOptions().contains(ExtendedSocketOptions.TCP_KEEPCOUNT)) {
ss.setOption(ExtendedSocketOptions.TCP_KEEPCOUNT, DEFAULT_KEEP_ALIVE_PROBES); if (ss.getOption(ExtendedSocketOptions.TCP_KEEPCOUNT) != DEFAULT_KEEP_ALIVE_PROBES) { thrownew RuntimeException("Test failed, TCP_KEEPCOUNT should have been " + DEFAULT_KEEP_ALIVE_PROBES);
}
} if (ss.supportedOptions().contains(ExtendedSocketOptions.TCP_KEEPINTERVAL)) {
ss.setOption(ExtendedSocketOptions.TCP_KEEPINTERVAL, DEFAULT_KEEP_ALIVE_INTVL); if (ss.getOption(ExtendedSocketOptions.TCP_KEEPINTERVAL) != DEFAULT_KEEP_ALIVE_INTVL) { thrownew RuntimeException("Test failed, TCP_KEEPINTERVAL should have been " + DEFAULT_KEEP_ALIVE_INTVL);
}
} if (s.supportedOptions().contains(ExtendedSocketOptions.TCP_KEEPIDLE)) {
s.setOption(ExtendedSocketOptions.TCP_KEEPIDLE, DEFAULT_KEEP_ALIVE_TIME); if (s.getOption(ExtendedSocketOptions.TCP_KEEPIDLE) != DEFAULT_KEEP_ALIVE_TIME) { thrownew RuntimeException("Test failed, TCP_KEEPIDLE should have been " + DEFAULT_KEEP_ALIVE_TIME);
}
} if (s.supportedOptions().contains(ExtendedSocketOptions.TCP_KEEPCOUNT)) {
s.setOption(ExtendedSocketOptions.TCP_KEEPCOUNT, DEFAULT_KEEP_ALIVE_PROBES); if (s.getOption(ExtendedSocketOptions.TCP_KEEPCOUNT) != DEFAULT_KEEP_ALIVE_PROBES) { thrownew RuntimeException("Test failed, TCP_KEEPCOUNT should have been " + DEFAULT_KEEP_ALIVE_PROBES);
}
} if (s.supportedOptions().contains(ExtendedSocketOptions.TCP_KEEPINTERVAL)) {
s.setOption(ExtendedSocketOptions.TCP_KEEPINTERVAL, DEFAULT_KEEP_ALIVE_INTVL); if (s.getOption(ExtendedSocketOptions.TCP_KEEPINTERVAL) != DEFAULT_KEEP_ALIVE_INTVL) { thrownew RuntimeException("Test failed, TCP_KEEPINTERVAL should have been " + DEFAULT_KEEP_ALIVE_INTVL);
}
} if (ds.supportedOptions().contains(ExtendedSocketOptions.TCP_KEEPCOUNT)) { thrownew RuntimeException("Test failed, TCP_KEEPCOUNT is applicable"
+ " for TCP Sockets only.");
} if (ds.supportedOptions().contains(ExtendedSocketOptions.TCP_KEEPIDLE)) { thrownew RuntimeException("Test failed, TCP_KEEPIDLE is applicable"
+ " for TCP Sockets only.");
} if (ds.supportedOptions().contains(ExtendedSocketOptions.TCP_KEEPINTERVAL)) { thrownew RuntimeException("Test failed, TCP_KEEPINTERVAL is applicable"
+ " for TCP Sockets only.");
} if (mc.supportedOptions().contains(ExtendedSocketOptions.TCP_KEEPCOUNT)) { thrownew RuntimeException("Test failed, TCP_KEEPCOUNT is applicable"
+ " for TCP Sockets only");
} if (mc.supportedOptions().contains(ExtendedSocketOptions.TCP_KEEPIDLE)) { thrownew RuntimeException("Test failed, TCP_KEEPIDLE is applicable"
+ " for TCP Sockets only");
} if (mc.supportedOptions().contains(ExtendedSocketOptions.TCP_KEEPINTERVAL)) { thrownew RuntimeException("Test failed, TCP_KEEPINTERVAL is applicable"
+ " for TCP Sockets only");
}
}
}
privatestatic ServerSocket boundServer(InetAddress address) throws IOException { var socketAddress = new InetSocketAddress(address, 0); var server = new ServerSocket();
server.bind(socketAddress); return server;
}
}
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.