public abstract class

ServerSocketChannel

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

Class Overview

A ServerSocketChannel is a partial abstraction of a selectable, stream-oriented listening socket. Binding and manipulation of socket options can only be done through the associated ServerSocket object, returned by calling socket(). ServerSocketChannels can not be constructed for an already existing server-socket, nor can a SocketImpl be assigned.

A server-socket channel is open but not bound when created by the open() method. Calling accept before bound will cause a NotYetBoundException. It can be bound by calling the bind method of a related ServerSocket instance.

Summary

Protected Constructors
ServerSocketChannel(SelectorProvider selectorProvider)
Constructs a new ServerSocketChannel.
Public Methods
abstract SocketChannel accept()
Accepts a connection to this server-socket channel.
static ServerSocketChannel open()
Creates an open and unbound server-socket channel.
abstract ServerSocket socket()
Return the server-socket assigned this channel, which does not declare any public methods that are not declared in ServerSocket.
final int validOps()
Gets the valid operations of this channel.
[Expand]
Inherited Methods
From class java.nio.channels.spi.AbstractSelectableChannel
From class java.nio.channels.SelectableChannel
From class java.nio.channels.spi.AbstractInterruptibleChannel
From class java.lang.Object
From interface java.io.Closeable
From interface java.nio.channels.Channel
From interface java.nio.channels.InterruptibleChannel

Protected Constructors

protected ServerSocketChannel (SelectorProvider selectorProvider)

Constructs a new ServerSocketChannel.

Parameters
selectorProvider an instance of SelectorProvider.

Public Methods

public abstract SocketChannel accept ()

Accepts a connection to this server-socket channel.

This method returns null when this channel is non-blocking and no connection is available, otherwise it blocks until a new connection is available or an I/O error occurs. The socket channel returned by this method will always be in blocking mode.

This method just executes the same security checks as the accept() method of the ServerSocket class.

Returns
  • the accepted SocketChannel instance, or null if the channel is non-blocking and no connection is available.
Throws
AsynchronousCloseException if this channel is closed by another thread while this method is in operation.
ClosedByInterruptException if another thread interrupts the calling thread while this operation is in progress. The interrupt state of the calling thread is set and the channel is closed.
ClosedChannelException if this channel is closed.
IOException if another I/O error occurs.
NotYetBoundException if the socket has not yet been bound.
SecurityException if there is a security manager and it does not permit to access the new connection.

public static ServerSocketChannel open ()

Creates an open and unbound server-socket channel.

This channel is created by calling openServerSocketChannel method of the default SelectorProvider instance.

Returns
  • the new channel which is open but unbound.
Throws
IOException if an I/O error occurs.

public abstract ServerSocket socket ()

Return the server-socket assigned this channel, which does not declare any public methods that are not declared in ServerSocket.

Returns
  • the server-socket assigned to this channel.

public final int validOps ()

Gets the valid operations of this channel. Server-socket channels support accepting operation, so this method returns SelectionKey.OP_ACCEPT.

Returns
  • the operations supported by this channel.
See Also