Package org.jboss.logmanager.handlers

# Interface ClientSocketFactory

public interface ClientSocketFactory
A factory used to create writable sockets.

Author:
  James R. Perkins

## Method Summary

Modifier and Type
Method
Description
`DatagramSocket`
`createDatagramSocket()`
Creates a datagram socket for UDP communication.
`Socket`
`createSocket()`
Creates a TCP socket.
`InetAddress`
`getAddress()`
Returns the address being used to create sockets.
`int`
`getPort()`
Returns the port being used to create sockets.
`default SocketAddress`
`getSocketAddress()`
A convenience method to return the socket address.
`static ClientSocketFactory`
`of(InetAddress address, int port)`
Creates a new default implementation of the factory which uses `SocketFactory.getDefault()` for TCP sockets and `new DatagramSocket()` for UDP sockets.
`static ClientSocketFactory`
`of(SocketFactory socketFactory, InetAddress address, int port)`
Creates a new default implementation of the factory which uses the provided socket factory to create TCP connections and `new DatagramSocket()` for UDP sockets.

## Method Details

### createDatagramSocket

DatagramSocket createDatagramSocket() throws SocketException
Creates a datagram socket for UDP communication.

Returns:
  the newly created socket
Throws:
  `SocketException` - if binding the socket fails

### createSocket

Socket createSocket() throws IOException
Creates a TCP socket.

Returns:
  the newly created socket
Throws:
  `IOException` - if an error occurs creating the socket

### getAddress

InetAddress getAddress()
Returns the address being used to create sockets.

Returns:
  the address being used

### getPort

int getPort()
Returns the port being used to create sockets.

Returns:
  the port being used

### getSocketAddress

default SocketAddress getSocketAddress()
A convenience method to return the socket address.

The default implementation simply returns `new InetSocketAddress(getAddress(), getPort())`.

Returns:
  a socket address

### of

static ClientSocketFactory of(InetAddress address, int port)
Creates a new default implementation of the factory which uses `SocketFactory.getDefault()` for TCP sockets and `new DatagramSocket()` for UDP sockets.

Parameters:
  `address` - the address to bind to
  `port` - the port to bind to
Returns:
  the client socket factory

### of

static ClientSocketFactory of(SocketFactory socketFactory, InetAddress address, int port)
Creates a new default implementation of the factory which uses the provided socket factory to create TCP connections and `new DatagramSocket()` for UDP sockets.

Parameters:
  `socketFactory` - the socket factory used for TCP connections, if `null` the default socket factory will be used
  `address` - the address to bind to
  `port` - the port to bind to
Returns:
  the client socket factory