The socket, server-socket, and datagram-socket channel classes in the
java.nio.channels package rely upon the corresponding socket, server-socket,
and datagram-socket classes in the java.net package for operations such as
binding and option configuration.
Many developers find this dependency counterintuitive and have asked for the
ability to write networking code without having to mix the java.net socket and
java.nio socket-channel APIs. Revising the socket-channel classes so that they
can be used alone would also resolve some tensions in the implementation and
the specification, and would make life easier for those (relatively few)
developers who need to write their own SelectorProvider implementations.
See also CR # 6230761