支持的 Java API

所有使用 TCP 的 API 都可以使用 SDP,特别是包括以下类:

  • java.net套餐

  • Socket

    • ServerSocket
  • java.nio.channels套餐:

  • SocketChannel

    • ServerSocketChannel

    • AsynchronousSocketChannel

    • AsynchronousServerSocketChannel

启用 SDP 支持后,它无需更改您的代码即可直接使用。无需编译。但是,重要的是要知道套接字仅绑定一次。连接是隐式绑定。因此,如果套接字先前未绑定,并且调用了connect,则绑定将在那时进行。

例如,考虑以下代码片段:

AsynchronousSocketChannel ch = AsynchronousSocketChannel.open();
ch.bind(local);
Future<Void> result = ch.connect(remote);

在此代码段中,当在套接字上调用bind时,异步套接字通道将绑定到本地 TCP 地址。然后,代码try使用相同的套接字连接到远程地址。如果远程地址使用配置文件中指定的 InfiniBand,则该连接将不会转换为 SDP,因为套接字先前已绑定。