NetworkChannel (Java Platform SE 8 ) (original) (raw)
- All Superinterfaces:
AutoCloseable, Channel, Closeable
All Known Subinterfaces:
MulticastChannel
All Known Implementing Classes:
AsynchronousServerSocketChannel, AsynchronousSocketChannel, DatagramChannel, ServerSocketChannel, SocketChannel
public interface NetworkChannel
extends Channel
A channel to a network socket.
A channel that implements this interface is a channel to a network socket. The bind method is used to bind the socket to a local address, the getLocalAddress method returns the address that the socket is bound to, and the setOption and getOption methods are used to set and query socket options. An implementation of this interface should specify the socket options that it supports.
The bind and setOption methods that do not otherwise have a value to return are specified to return the network channel upon which they are invoked. This allows method invocations to be chained. Implementations of this interface should specialize the return type so that method invocations on the implementation class can be chained.
Since:
1.7
Method Summary
All Methods Instance Methods Abstract Methods
Modifier and Type Method Description NetworkChannel bind(SocketAddress local) Binds the channel's socket to a local address. SocketAddress getLocalAddress() Returns the socket address that this channel's socket is bound to. T getOption(SocketOption name) Returns the value of a socket option. NetworkChannel setOption(SocketOption name, T value) Sets the value of a socket option. Set<SocketOption<?>> supportedOptions() Returns a set of the socket options supported by this channel. * ### Methods inherited from interface java.nio.channels.[Channel](../../../java/nio/channels/Channel.html "interface in java.nio.channels") `[close](../../../java/nio/channels/Channel.html#close--), [isOpen](../../../java/nio/channels/Channel.html#isOpen--)`
Method Detail
* #### bind [NetworkChannel](../../../java/nio/channels/NetworkChannel.html "interface in java.nio.channels") bind([SocketAddress](../../../java/net/SocketAddress.html "class in java.net") local) throws [IOException](../../../java/io/IOException.html "class in java.io") Binds the channel's socket to a local address. This method is used to establish an association between the socket and a local address. Once an association is established then the socket remains bound until the channel is closed. If the `local` parameter has the value `null` then the socket will be bound to an address that is assigned automatically. Parameters: `local` \- The address to bind the socket, or `null` to bind the socket to an automatically assigned socket address Returns: This channel Throws: `[AlreadyBoundException](../../../java/nio/channels/AlreadyBoundException.html "class in java.nio.channels")` \- If the socket is already bound `[UnsupportedAddressTypeException](../../../java/nio/channels/UnsupportedAddressTypeException.html "class in java.nio.channels")` \- If the type of the given address is not supported `[ClosedChannelException](../../../java/nio/channels/ClosedChannelException.html "class in java.nio.channels")` \- If the channel is closed `[IOException](../../../java/io/IOException.html "class in java.io")` \- If some other I/O error occurs `[SecurityException](../../../java/lang/SecurityException.html "class in java.lang")` \- If a security manager is installed and it denies an unspecified permission. An implementation of this interface should specify any required permissions. See Also: [getLocalAddress()](../../../java/nio/channels/NetworkChannel.html#getLocalAddress--) * #### getLocalAddress [SocketAddress](../../../java/net/SocketAddress.html "class in java.net") getLocalAddress() throws [IOException](../../../java/io/IOException.html "class in java.io") Returns the socket address that this channel's socket is bound to. Where the channel is [bound](../../../java/nio/channels/NetworkChannel.html#bind-java.net.SocketAddress-) to an Internet Protocol socket address then the return value from this method is of type [InetSocketAddress](../../../java/net/InetSocketAddress.html "class in java.net"). Returns: The socket address that the socket is bound to, or `null` if the channel's socket is not bound Throws: `[ClosedChannelException](../../../java/nio/channels/ClosedChannelException.html "class in java.nio.channels")` \- If the channel is closed `[IOException](../../../java/io/IOException.html "class in java.io")` \- If an I/O error occurs * #### setOption <T> [NetworkChannel](../../../java/nio/channels/NetworkChannel.html "interface in java.nio.channels") setOption([SocketOption](../../../java/net/SocketOption.html "interface in java.net")<T> name, T value) throws [IOException](../../../java/io/IOException.html "class in java.io") Sets the value of a socket option. Type Parameters: `T` \- The type of the socket option value Parameters: `name` \- The socket option `value` \- The value of the socket option. A value of `null` may be a valid value for some socket options. Returns: This channel Throws: `[UnsupportedOperationException](../../../java/lang/UnsupportedOperationException.html "class in java.lang")` \- If the socket option is not supported by this channel `[IllegalArgumentException](../../../java/lang/IllegalArgumentException.html "class in java.lang")` \- If the value is not a valid value for this socket option `[ClosedChannelException](../../../java/nio/channels/ClosedChannelException.html "class in java.nio.channels")` \- If this channel is closed `[IOException](../../../java/io/IOException.html "class in java.io")` \- If an I/O error occurs See Also: [StandardSocketOptions](../../../java/net/StandardSocketOptions.html "class in java.net") * #### getOption <T> T getOption([SocketOption](../../../java/net/SocketOption.html "interface in java.net")<T> name) throws [IOException](../../../java/io/IOException.html "class in java.io") Returns the value of a socket option. Type Parameters: `T` \- The type of the socket option value Parameters: `name` \- The socket option Returns: The value of the socket option. A value of `null` may be a valid value for some socket options. Throws: `[UnsupportedOperationException](../../../java/lang/UnsupportedOperationException.html "class in java.lang")` \- If the socket option is not supported by this channel `[ClosedChannelException](../../../java/nio/channels/ClosedChannelException.html "class in java.nio.channels")` \- If this channel is closed `[IOException](../../../java/io/IOException.html "class in java.io")` \- If an I/O error occurs See Also: [StandardSocketOptions](../../../java/net/StandardSocketOptions.html "class in java.net") * #### supportedOptions [Set](../../../java/util/Set.html "interface in java.util")<[SocketOption](../../../java/net/SocketOption.html "interface in java.net")<?>> supportedOptions() Returns a set of the socket options supported by this channel. This method will continue to return the set of options even after the channel has been closed. Returns: A set of the socket options supported by this channel
Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2025, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Also see the documentation redistribution policy.