org.apache.mina.core.service

## Interface IoAcceptor

- All Superinterfaces:
    IoService
  All Known Subinterfaces:
    DatagramAcceptor, SocketAcceptor
  All Known Implementing Classes:
    AbstractIoAcceptor, AbstractPollingConnectionlessIoAcceptor, AbstractPollingIoAcceptor, AprSocketAcceptor, NioDatagramAcceptor, NioSocketAcceptor, VmPipeAcceptor

      public interface IoAcceptor
      extends IoService

  Accepts incoming connection, communicates with clients, and fires events to `IoHandler`s.

  Please refer to EchoServer example.

  You should bind to the desired socket address to accept incoming connections, and then events for incoming connections will be sent to the specified default `IoHandler`.

  Threads accept incoming connections start automatically when `bind()` is invoked, and stop when `unbind()` is invoked.

  Author:
    Apache MINA Project

- - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `bind()` Binds to the default local address(es) and start to accept incoming connections.
    `void` | `bind(Iterable<? extends SocketAddress> localAddresses)` Binds to the specified local addresses and start to accept incoming connections.
    `void` | `bind(SocketAddress... addresses)` Binds to the specified local addresses and start to accept incoming connections.
    `void` | `bind(SocketAddress localAddress)` Binds to the specified local address and start to accept incoming connections.
    `void` | `bind(SocketAddress firstLocalAddress, SocketAddress... addresses)` Binds to the specified local addresses and start to accept incoming connections.
    `SocketAddress` | `getDefaultLocalAddress()` Returns the default local address to bind when no argument is specified in `bind()` method.
    `List<SocketAddress>` | `getDefaultLocalAddresses()` Returns a `List` of the default local addresses to bind when no argument is specified in `bind()` method.
    `SocketAddress` | `getLocalAddress()` Returns the local address which is bound currently.
    `Set<SocketAddress>` | `getLocalAddresses()` Returns a `Set` of the local addresses which are bound currently.
    `boolean` | `isCloseOnDeactivation()` Returns `true` if and only if all clients are closed when this acceptor unbinds from all the related local address (i.e.
    `IoSession` | `newSession(SocketAddress remoteAddress, SocketAddress localAddress)` (Optional) Returns an `IoSession` that is bound to the specified `localAddress` and the specified `remoteAddress` which reuses the local address that is already bound by this service.
    `void` | `setCloseOnDeactivation(boolean closeOnDeactivation)` Sets whether all client sessions are closed when this acceptor unbinds from all the related local addresses (i.e.
    `void` | `setDefaultLocalAddress(SocketAddress localAddress)` Sets the default local address to bind when no argument is specified in `bind()` method.
    `void` | `setDefaultLocalAddresses(Iterable<? extends SocketAddress> localAddresses)` Sets the default local addresses to bind when no argument is specified in `bind()` method.
    `void` | `setDefaultLocalAddresses(List<? extends SocketAddress> localAddresses)` Sets the default local addresses to bind when no argument is specified in `bind()` method.
    `void` | `setDefaultLocalAddresses(SocketAddress firstLocalAddress, SocketAddress... otherLocalAddresses)` Sets the default local addresses to bind when no argument is specified in `bind()` method.
    `void` | `unbind()` Unbinds from all local addresses that this service is bound to and stops to accept incoming connections.
    `void` | `unbind(Iterable<? extends SocketAddress> localAddresses)` Unbinds from the specified local addresses and stop to accept incoming connections.
    `void` | `unbind(SocketAddress localAddress)` Unbinds from the specified local address and stop to accept incoming connections.
    `void` | `unbind(SocketAddress firstLocalAddress, SocketAddress... otherLocalAddresses)` Unbinds from the specified local addresses and stop to accept incoming connections.

    - ### Methods inherited from interface org.apache.mina.core.service.IoService

      `addListener, broadcast, dispose, dispose, getActivationTime, getFilterChain, getFilterChainBuilder, getHandler, getManagedSessionCount, getManagedSessions, getScheduledWriteBytes, getScheduledWriteMessages, getSessionConfig, getSessionDataStructureFactory, getStatistics, getTransportMetadata, isActive, isDisposed, isDisposing, removeListener, setFilterChainBuilder, setHandler, setSessionDataStructureFactory`

- - ### Method Detail

    - #### getLocalAddress

          SocketAddress getLocalAddress()

      Returns the local address which is bound currently. If more than one address are bound, only one of them will be returned, but it's not necessarily the firstly bound address.

    - #### getLocalAddresses

          Set<SocketAddress> getLocalAddresses()

      Returns a `Set` of the local addresses which are bound currently.

    - #### getDefaultLocalAddress

          SocketAddress getDefaultLocalAddress()

      Returns the default local address to bind when no argument is specified in `bind()` method. Please note that the default will not be used if any local address is specified. If more than one address are set, only one of them will be returned, but it's not necessarily the firstly specified address in `setDefaultLocalAddresses(List)`.

    - #### getDefaultLocalAddresses

          List<SocketAddress> getDefaultLocalAddresses()

      Returns a `List` of the default local addresses to bind when no argument is specified in `bind()` method. Please note that the default will not be used if any local address is specified.

    - #### setDefaultLocalAddress

          void setDefaultLocalAddress(SocketAddress localAddress)

      Sets the default local address to bind when no argument is specified in `bind()` method. Please note that the default will not be used if any local address is specified.

    - #### setDefaultLocalAddresses

          void setDefaultLocalAddresses(SocketAddress firstLocalAddress,
                                      SocketAddress... otherLocalAddresses)

      Sets the default local addresses to bind when no argument is specified in `bind()` method. Please note that the default will not be used if any local address is specified.

    - #### setDefaultLocalAddresses

          void setDefaultLocalAddresses(Iterable<? extends SocketAddress> localAddresses)

      Sets the default local addresses to bind when no argument is specified in `bind()` method. Please note that the default will not be used if any local address is specified.

    - #### setDefaultLocalAddresses

          void setDefaultLocalAddresses(List<? extends SocketAddress> localAddresses)

      Sets the default local addresses to bind when no argument is specified in `bind()` method. Please note that the default will not be used if any local address is specified.

    - #### isCloseOnDeactivation

          boolean isCloseOnDeactivation()

      Returns `true` if and only if all clients are closed when this acceptor unbinds from all the related local address (i.e. when the service is deactivated).

    - #### setCloseOnDeactivation

          void setCloseOnDeactivation(boolean closeOnDeactivation)

      Sets whether all client sessions are closed when this acceptor unbinds from all the related local addresses (i.e. when the service is deactivated). The default value is `true`.

    - #### bind

          void bind()
                    throws IOException

      Binds to the default local address(es) and start to accept incoming connections.
      Throws:
        `IOException` - if failed to bind

    - #### bind

          void bind(SocketAddress localAddress)
                    throws IOException

      Binds to the specified local address and start to accept incoming connections.
      Parameters:
        `localAddress` - The SocketAddress to bind to
      Throws:
        `IOException` - if failed to bind

    - #### bind

          void bind(SocketAddress firstLocalAddress,
                  SocketAddress... addresses)
                    throws IOException

      Binds to the specified local addresses and start to accept incoming connections. If no address is given, bind on the default local address.
      Parameters:
        `firstLocalAddresses` - The first address to bind to
        `addresses` - The SocketAddresses to bind to
      Throws:
        `IOException` - if failed to bind

    - #### bind

          void bind(SocketAddress... addresses)
                    throws IOException

      Binds to the specified local addresses and start to accept incoming connections. If no address is given, bind on the default local address.
      Parameters:
        `addresses` - The SocketAddresses to bind to
      Throws:
        `IOException` - if failed to bind

    - #### bind

          void bind(Iterable<? extends SocketAddress> localAddresses)
                    throws IOException

      Binds to the specified local addresses and start to accept incoming connections.
      Throws:
        `IOException` - if failed to bind

    - #### unbind

          void unbind()

      Unbinds from all local addresses that this service is bound to and stops to accept incoming connections. All managed connections will be closed if `disconnectOnUnbind` property is `true`. This method returns silently if no local address is bound yet.

    - #### unbind

          void unbind(SocketAddress localAddress)

      Unbinds from the specified local address and stop to accept incoming connections. All managed connections will be closed if `disconnectOnUnbind` property is `true`. This method returns silently if the default local address is not bound yet.

    - #### unbind

          void unbind(SocketAddress firstLocalAddress,
                    SocketAddress... otherLocalAddresses)

      Unbinds from the specified local addresses and stop to accept incoming connections. All managed connections will be closed if `disconnectOnUnbind` property is `true`. This method returns silently if the default local addresses are not bound yet.

    - #### unbind

          void unbind(Iterable<? extends SocketAddress> localAddresses)

      Unbinds from the specified local addresses and stop to accept incoming connections. All managed connections will be closed if `disconnectOnUnbind` property is `true`. This method returns silently if the default local addresses are not bound yet.

    - #### newSession

          IoSession newSession(SocketAddress remoteAddress,
                             SocketAddress localAddress)

      (Optional) Returns an `IoSession` that is bound to the specified `localAddress` and the specified `remoteAddress` which reuses the local address that is already bound by this service.

      This operation is optional. Please throw `UnsupportedOperationException` if the transport type doesn't support this operation. This operation is usually implemented for connectionless transport types.

      Throws:
        `UnsupportedOperationException` - if this operation is not supported
        `IllegalStateException` - if this service is not running.
        `IllegalArgumentException` - if this service is not bound to the specified `localAddress`.

Copyright © 2004-2012 Apache MINA Project. All Rights Reserved.