equal
deleted
inserted
replaced
39 |
39 |
40 /** |
40 /** |
41 * The abstract class {@code SocketImpl} is a common superclass |
41 * The abstract class {@code SocketImpl} is a common superclass |
42 * of all classes that actually implement sockets. It is used to |
42 * of all classes that actually implement sockets. It is used to |
43 * create both client and server sockets. |
43 * create both client and server sockets. |
44 * <p> |
44 * |
45 * A "plain" socket implements these methods exactly as |
45 * @implNote The JDK historically used a {@code SocketImpl} implementation named |
46 * described, without attempting to go through a firewall or proxy. |
46 * <em>PlainSocketImpl</em>. This has been replaced by a simpler and more modern |
|
47 * implementation but the JDK continues to ship with the older implementation |
|
48 * to allow code that depends on unspecified behavior, that differs between the |
|
49 * old and new implementations, to continue to run. The old implementation |
|
50 * will be used if the Java virtual machine is started with the system property |
|
51 * {@systemProperty jdk.net.usePlainSocketImpl} set on the command line. The |
|
52 * value of the system property is a boolean. If set without a value then it |
|
53 * defaults to {@code true}, hence running with {@code -Djdk.net.usePlainSocketImpl} |
|
54 * or {@code -Djdk.net.usePlainSocketImpl=true} will configure the Java virtual |
|
55 * machine use the old implementation. |
47 * |
56 * |
48 * @author unascribed |
57 * @author unascribed |
49 * @since 1.0 |
58 * @since 1.0 |
50 */ |
59 */ |
51 public abstract class SocketImpl implements SocketOptions { |
60 public abstract class SocketImpl implements SocketOptions { |