# Print output for @column tags ?>
Developers

- Design
- Develop
- Distribute

Developer Console

## Most visited

## Recently visited

## Results for

Summary: Protected Ctors | Methods | Inherited Methods

# ServerSocketChannel

`public abstract class ServerSocketChannel`
`` `` `` `extends AbstractSelectableChannel` `implements NetworkChannel`

java.lang.Object
↳ | java.nio.channels.spi.AbstractInterruptibleChannel
| ↳ | java.nio.channels.SelectableChannel
|  | ↳ | java.nio.channels.spi.AbstractSelectableChannel
|  |  | ↳ | java.nio.channels.ServerSocketChannel

A selectable channel for stream-oriented listening sockets.

A server-socket channel is created by invoking the `open` method of this class. It is not possible to create a channel for an arbitrary, pre-existing `ServerSocket`. A newly-created server-socket channel is open but not yet bound. An attempt to invoke the `accept` method of an unbound server-socket channel will cause a `NotYetBoundException` to be thrown. A server-socket channel can be bound by invoking one of the `bind` methods defined by this class.

Socket options are configured using the `setOption` method. Server-socket channels support the following options:

> Option Name | Description
> --- | ---
> `SO_RCVBUF` | The size of the socket receive buffer
> `SO_REUSEADDR` | Re-use address

Additional (implementation specific) options may also be supported.

Server-socket channels are safe for use by multiple concurrent threads.

## Summary

### Protected constructors
`ServerSocketChannel(SelectorProvider provider)` Initializes a new instance of this class.

### Public methods
`abstract SocketChannel` | `accept()` Accepts a connection made to this channel's socket.
`abstract ServerSocketChannel` | `bind(SocketAddress local, int backlog)` Binds the channel's socket to a local address and configures the socket to listen for connections.
`final ServerSocketChannel` | `bind(SocketAddress local)` Binds the channel's socket to a local address and configures the socket to listen for connections.
`abstract SocketAddress` | `getLocalAddress()` Returns the socket address that this channel's socket is bound to. If there is a security manager set, its `checkConnect` method is called with the local address and `-1` as its arguments to see if the operation is allowed.
`static ServerSocketChannel` | `open()` Opens a server-socket channel.
`abstract <T> ServerSocketChannel` | `setOption(SocketOption<T> name, T value)` Sets the value of a socket option.
`abstract ServerSocket` | `socket()` Retrieves a server socket associated with this channel.
`final int` | `validOps()` Returns an operation set identifying this channel's supported operations.

### Inherited methods
From class `java.nio.channels.spi.AbstractSelectableChannel`
`final Object` | `blockingLock()` Retrieves the object upon which the `configureBlocking` and `register` methods synchronize.
`final SelectableChannel` | `configureBlocking(boolean block)` Adjusts this channel's blocking mode.
`final void` | `implCloseChannel()` Closes this channel.
`abstract void` | `implCloseSelectableChannel()` Closes this selectable channel.
`abstract void` | `implConfigureBlocking(boolean block)` Adjusts this channel's blocking mode.
`final boolean` | `isBlocking()` Tells whether or not every I/O operation on this channel will block until it completes.
`final boolean` | `isRegistered()` Tells whether or not this channel is currently registered with any selectors.
`final SelectionKey` | `keyFor(Selector sel)` Retrieves the key representing the channel's registration with the given selector.
`final SelectorProvider` | `provider()` Returns the provider that created this channel.
`final SelectionKey` | `register(Selector sel, int ops, Object att)` Registers this channel with the given selector, returning a selection key.
From class `java.nio.channels.SelectableChannel`
`abstract Object` | `blockingLock()` Retrieves the object upon which the `configureBlocking` and `register` methods synchronize.
`abstract SelectableChannel` | `configureBlocking(boolean block)` Adjusts this channel's blocking mode.
`abstract boolean` | `isBlocking()` Tells whether or not every I/O operation on this channel will block until it completes.
`abstract boolean` | `isRegistered()` Tells whether or not this channel is currently registered with any selectors.
`abstract SelectionKey` | `keyFor(Selector sel)` Retrieves the key representing the channel's registration with the given selector.
`abstract SelectorProvider` | `provider()` Returns the provider that created this channel.
`abstract SelectionKey` | `register(Selector sel, int ops, Object att)` Registers this channel with the given selector, returning a selection key.
`final SelectionKey` | `register(Selector sel, int ops)` Registers this channel with the given selector, returning a selection key.
`abstract int` | `validOps()` Returns an operation set identifying this channel's supported operations.
From class `java.nio.channels.spi.AbstractInterruptibleChannel`
`final void` | `begin()` Marks the beginning of an I/O operation that might block indefinitely.
`final void` | `close()` Closes this channel.
`final void` | `end(boolean completed)` Marks the end of an I/O operation that might block indefinitely.
`abstract void` | `implCloseChannel()` Closes this channel.
`final boolean` | `isOpen()` Tells whether or not this channel is open.
From class `java.lang.Object`
`Object` | `clone()` Creates and returns a copy of this object.
`boolean` | `equals(Object obj)` Indicates whether some other object is "equal to" this one.
`void` | `finalize()` Called by the garbage collector on an object when garbage collection determines that there are no more references to the object.
`final Class<?>` | `getClass()` Returns the runtime class of this `Object`.
`int` | `hashCode()` Returns a hash code value for the object.
`final void` | `notify()` Wakes up a single thread that is waiting on this object's monitor.
`final void` | `notifyAll()` Wakes up all threads that are waiting on this object's monitor.
`String` | `toString()` Returns a string representation of the object.
`final void` | `wait(long timeout, int nanos)` Causes the current thread to wait until another thread invokes the `notify()` method or the `notifyAll()` method for this object, or some other thread interrupts the current thread, or a certain amount of real time has elapsed.
`final void` | `wait(long timeout)` Causes the current thread to wait until either another thread invokes the `notify()` method or the `notifyAll()` method for this object, or a specified amount of time has elapsed.
`final void` | `wait()` Causes the current thread to wait until another thread invokes the `notify()` method or the `notifyAll()` method for this object.
From interface `java.nio.channels.Channel`
`abstract void` | `close()` Closes this channel.
`abstract boolean` | `isOpen()` Tells whether or not this channel is open.
From interface `java.nio.channels.InterruptibleChannel`
`abstract void` | `close()` Closes this channel.
From interface `java.nio.channels.NetworkChannel`
`abstract NetworkChannel` | `bind(SocketAddress local)` Binds the channel's socket to a local address.
`abstract SocketAddress` | `getLocalAddress()` Returns the socket address that this channel's socket is bound to.
`abstract <T> T` | `getOption(SocketOption<T> name)` Returns the value of a socket option.
`abstract <T> NetworkChannel` | `setOption(SocketOption<T> name, T value)` Sets the value of a socket option.
`abstract Set<SocketOption<?>>` | `supportedOptions()` Returns a set of the socket options supported by this channel.
From interface `java.io.Closeable`
`abstract void` | `close()` Closes this stream and releases any system resources associated with it.
From interface `java.lang.AutoCloseable`
`abstract void` | `close()` Closes this resource, relinquishing any underlying resources.

## Protected constructors

### ServerSocketChannel

    protected ServerSocketChannel (SelectorProvider provider)

Initializes a new instance of this class.

Parameters
`provider` | `SelectorProvider`: The provider that created this channel

## Public methods

### accept

    public abstract SocketChannel accept ()

Accepts a connection made to this channel's socket.

If this channel is in non-blocking mode then this method will immediately return `null` if there are no pending connections. Otherwise it will block indefinitely until a new connection is available or an I/O error occurs.

The socket channel returned by this method, if any, will be in blocking mode regardless of the blocking mode of this channel.

This method performs exactly the same security checks as the `accept` method of the `ServerSocket` class. That is, if a security manager has been installed then for each new connection this method verifies that the address and port number of the connection's remote endpoint are permitted by the security manager's `checkAccept` method.

Returns
`SocketChannel` | The socket channel for the new connection, or `null` if this channel is in non-blocking mode and no connection is available to be accepted

Throws
`ClosedChannelException` | If this channel is closed
`AsynchronousCloseException` | If another thread closes this channel while the accept operation is in progress
`ClosedByInterruptException` | If another thread interrupts the current thread while the accept operation is in progress, thereby closing the channel and setting the current thread's interrupt status
`NotYetBoundException` | If this channel's socket has not yet been bound
`SecurityException` | If a security manager has been installed and it does not permit access to the remote endpoint of the new connection
`IOException` | If some other I/O error occurs

### bind

    public abstract ServerSocketChannel bind (SocketAddress local,
                    int backlog)

Binds the channel's socket to a local address and configures the socket to listen for connections.

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.

The `backlog` parameter is the maximum number of pending connections on the socket. Its exact semantics are implementation specific. In particular, an implementation may impose a maximum length or may choose to ignore the parameter altogther. If the `backlog` parameter has the value `0`, or a negative value, then an implementation specific default is used.

Parameters
`local` | `SocketAddress`: The address to bind the socket, or `null` to bind to an automatically assigned socket address
`backlog` | `int`: The maximum number of pending connections

Returns
`ServerSocketChannel` | This channel

Throws
`AlreadyBoundException` | If the socket is already bound
`UnsupportedAddressTypeException` | If the type of the given address is not supported
`ClosedChannelException` | If this channel is closed
`IOException` | If some other I/O error occurs
`SecurityException` | If a security manager has been installed and its `SecurityManager#checkListen` method denies the operation

### bind

    public final ServerSocketChannel bind (SocketAddress local)

Binds the channel's socket to a local address and configures the socket to listen for connections.

An invocation of this method is equivalent to the following:

>      bind(local, 0);

Parameters
`local` | `SocketAddress`: The local address to bind the socket, or `null` to bind to an automatically assigned socket address

Returns
`ServerSocketChannel` | This channel

Throws
`AlreadyBoundException` |
`UnsupportedAddressTypeException` |
`ClosedChannelException` |
`IOException` |
`SecurityException` | If a security manager has been installed and its `SecurityManager#checkListen` method denies the operation

### getLocalAddress

    public abstract SocketAddress getLocalAddress ()

Returns the socket address that this channel's socket is bound to.

Where the channel is `bound` to an Internet Protocol socket address then the return value from this method is of type `InetSocketAddress`.

If there is a security manager set, its `checkConnect` method is called with the local address and `-1` as its arguments to see if the operation is allowed. If the operation is not allowed, a `SocketAddress` representing the `loopback` address and the local port of the channel's socket is returned.

Returns
`SocketAddress` | The `SocketAddress` that the socket is bound to, or the `SocketAddress` representing the loopback address if denied by the security manager, or `null` if the channel's socket is not bound

Throws
`ClosedChannelException` |
`IOException` |

### open

    public static ServerSocketChannel open ()

Opens a server-socket channel.

The new channel is created by invoking the `openServerSocketChannel` method of the system-wide default `SelectorProvider` object.

The new channel's socket is initially unbound; it must be bound to a specific address via one of its socket's `bind` methods before connections can be accepted.

Returns
`ServerSocketChannel` | A new socket channel

Throws
`IOException` | If an I/O error occurs

### setOption

    public abstract ServerSocketChannel setOption (SocketOption<T> name,
                    T value)

Sets the value of a socket option.

Parameters
`name` | `SocketOption`: The socket option
`value` | `T`: The value of the socket option. A value of `null` may be a valid value for some socket options.

Returns
`ServerSocketChannel` | This channel

Throws
`UnsupportedOperationException` |
`IllegalArgumentException` |
`ClosedChannelException` |
`IOException` |

### socket

    public abstract ServerSocket socket ()

Retrieves a server socket associated with this channel.

The returned object will not declare any public methods that are not declared in the `ServerSocket` class.

Returns
`ServerSocket` | A server socket associated with this channel

### validOps

    public final int validOps ()

Returns an operation set identifying this channel's supported operations.

Server-socket channels only support the accepting of new connections, so this method returns `SelectionKey#OP_ACCEPT`.

Returns
`int` | The valid-operation set

Full name *
Email address *
Company / developer name
One of your Play Store app URLs *
Which best describes your business:*
Apps
Games
Apps & Games
*
*