The Java Tutorials have been written for JDK 8. Examples and practices described in this page don't take advantage of improvements introduced in later releases and might use technology no longer available.
See Java Language Changes for a summary of updated language features in Java SE 9 and subsequent releases.
See JDK Release Notes for information about new features, enhancements, and removed or deprecated options for all JDK releases.
All of the APIs that use TCP can use SDP, specifically including the following classes:
java.net
package
Socket
ServerSocket
java.nio.channels
package:
SocketChannel
ServerSocketChannel
AsynchronousSocketChannel
AsynchronousServerSocketChannel
When SDP support is enabled, it just works without any change to your code. Compiling is not necessary. However, it is important to know that a socket is bound only once. A connection is an implicit bind. So, if the socket hasn't been previously bound and connect
is invoked, the binding occurs at that time.
For example, consider the following code snippet:
AsynchronousSocketChannel ch = AsynchronousSocketChannel.open(); ch.bind(local); Future<Void> result = ch.connect(remote);
In this snippet, the asynchronous socket channel is bound to a local TCP address when bind
is invoked on the socket. Then, the code attempts to connect to a remote address by using the same socket. If the remote address uses InfiniBand, as specified in the configuration file, the connection will not be converted to SDP because the socket was previously bound.