# Interface Connection

All Superinterfaces:
  `AutoCloseable, Closeable`

All Known Implementing Classes:
  `SocketConnection`

public interface Connection extends Closeable
The `Connection` object is used to manage connections from a server socket. In order to achieve this it spawns a task to listen for incoming connect requests. When a TCP connection request arrives it hands off the `SocketChannel` to the `Server` which processes the request.

This handles connections from a `ServerSocketChannel` object so that features such as SSL can be used by a server that uses this package. The background acceptor process will terminate if the connection is closed.

Author:
  Niall Gallagher
See Also:
  - `Server`

## Method Summary

Modifier and Type
Method
Description
`SocketAddress`
`connect(SocketAddress address)`
This creates a new background task that will listen to the specified `ServerAddress` for incoming TCP connect requests.
`SocketAddress`
`connect(SocketAddress address, SSLContext context)`
This creates a new background task that will listen to the specified `ServerAddress` for incoming TCP connect requests.

### Methods inherited from interface Closeable

`close`

## Method Details

### connect

SocketAddress connect(SocketAddress address) throws IOException
This creates a new background task that will listen to the specified `ServerAddress` for incoming TCP connect requests. When an connection is accepted it is handed to the internal `Server` implementation as a pipeline. The background task is a non daemon task to ensure the server is kept active, to terminate the connection this can be closed.

Parameters:
  `address` - this is the address used to accept connections
Returns:
  this returns the actual local address that is used
Throws:
  `IOException`

### connect

SocketAddress connect(SocketAddress address, SSLContext context) throws IOException
This creates a new background task that will listen to the specified `ServerAddress` for incoming TCP connect requests. When an connection is accepted it is handed to the internal `Server` implementation as a pipeline. The background task is a non daemon task to ensure the server is kept active, to terminate the connection this can be closed.

Parameters:
  `address` - this is the address used to accept connections
  `context` - this is used for secure SSL connections
Returns:
  this returns the actual local address that is used
Throws:
  `IOException`