< prev index next >

src/java.base/share/classes/java/nio/channels/SocketChannel.java

Print this page
rev 55750 : UDS support, temporary commit

*** 24,36 **** --- 24,39 ---- */ package java.nio.channels; import java.io.IOException; + import java.net.ProtocolFamily; import java.net.Socket; import java.net.SocketOption; import java.net.SocketAddress; + import java.net.StandardProtocolFamily; + import java.net.UnixSocketAddress; import java.nio.ByteBuffer; import java.nio.channels.spi.AbstractSelectableChannel; import java.nio.channels.spi.SelectorProvider; /**
*** 149,158 **** --- 152,173 ---- public static SocketChannel open() throws IOException { return SelectorProvider.provider().openSocketChannel(); } /** + * Opens a socket channel for the specific address family. + * + * @see #open() + * @param family The protocol family e.g. AF_UNIX + * @return A new socket channel + * @throws IOException If an I/O error occurs + */ + public static SocketChannel open(ProtocolFamily family) throws IOException { + return SelectorProvider.provider().openSocketChannel(family); + } + + /** * Opens a socket channel and connects it to a remote address. * * <p> This convenience method works as if by invoking the {@link #open()} * method, invoking the {@link #connect(SocketAddress) connect} method upon * the resulting socket channel, passing it {@code remote}, and then
*** 187,197 **** * If some other I/O error occurs */ public static SocketChannel open(SocketAddress remote) throws IOException { ! SocketChannel sc = open(); try { sc.connect(remote); } catch (Throwable x) { try { sc.close(); --- 202,212 ---- * If some other I/O error occurs */ public static SocketChannel open(SocketAddress remote) throws IOException { ! SocketChannel sc = remote instanceof UnixSocketAddress ? open(StandardProtocolFamily.UNIX) : open(); try { sc.connect(remote); } catch (Throwable x) { try { sc.close();
< prev index next >