SocketConfig
const class SocketConfig : Obj
Configuration options for TCP and UDP sockets. All socket types accept a socket configuration which will be used to configure the socket when it is created.
A system-wide default socket configuration can be obtained with SocketConfig.cur. You can change the system default by using SocketConfig.setCur.
See TcpSocket.make, TcpListener.make, UdpSocket.make, MulticastSocket.make
Create and configure the socket options
SO_BROADCAST socket option
SO_KEEPALIVE option
SO_LINGER controls the linger time or set to null to disable linger
TCP_NODELAY socket option specifies that send not be delayed to merge packets (Nagle's algorthm)
SO_SNDBUF option for the size in bytes of the IP stack buffers
SO_REUSEADDR is used to control the time wait state of a closed socket
SO_RCVBUF option for the size in bytes of the IP stack buffers
The size in bytes for the sys::InStream buffer
SO_TIMEOUT controls the amount of time a socket will block on a read call before throwing an IOErr timeout exception
Controls the default timeout used by TcpSocket.connect
Controls how long a TcpListener.accept will block before throwing an IOErr timeout exception
The KeyStore to use when creating secure sockets
The KeyStore to use for obtaining trusted certificates when creating secure sockets
The type-of-class byte in the IP packet header
The size in bytes for the sys::OutStream buffer
Get the current, default socket configuration
Convenience to create a copy of this socket configuration and set the connect and receive timeouts to the given duration
Create a copy of this configuration and then apply any overrides from the it-block
Set a new default socket configuration
const Duration? : acceptTimeout
Controls how long a TcpListener.accept will block before throwing an IOErr timeout exception. null is used to indicate infinite timeout.
const Bool : broadcast
SO_BROADCAST socket option
const Duration? : connectTimeout
Controls the default timeout used by TcpSocket.connect. A null value indicates a system default timeout (usually wait forever).
virtual This copy(|This| f)
Create a copy of this configuration and then apply any overrides from the it-block.
static SocketConfig cur()
Get the current, default socket configuration
const Int? : inBufferSize
The size in bytes for the sys::InStream buffer. A value of 0 or null disables input stream buffing.
const Bool : keepAlive
SO_KEEPALIVE option
const KeyStore? : keystore
The KeyStore to use when creating secure sockets. If null, the runtime default will be used.
const Duration? : linger
SO_LINGER controls the linger time or set to null to disable linger.
new make(|This|? f)
Create and configure the socket options.
const Bool : noDelay
TCP_NODELAY socket option specifies that send not be delayed to merge packets (Nagle's algorthm).
const Int? : outBufferSize
The size in bytes for the sys::OutStream buffer. A value of 0 or null disables output stream buffing.
const Int : receiveBufferSize
SO_RCVBUF option for the size in bytes of the IP stack buffers.
const Duration? : receiveTimeout
SO_TIMEOUT controls the amount of time a socket will block on a read call before throwing an IOErr timeout exception. null is used to indicate an infinite timeout.
const Bool : reuseAddr
SO_REUSEADDR is used to control the time wait state of a closed socket.
const Int : sendBufferSize
SO_SNDBUF option for the size in bytes of the IP stack buffers.
static Void setCur(SocketConfig cfg)
Set a new default socket configuration. This configuration will only apply to new sockets created after this is called. This method may only be called once to change the default socket configuration.
This setTimeouts(Duration? connectTimeout, Duration? receiveTimeout)
Convenience to create a copy of this socket configuration and set the connect and receive timeouts to the given duration. Setting to null indicates infinite timeouts.
const Int : trafficClass
The type-of-class byte in the IP packet header.
For IPv4 this value is detailed in RFC 1349 as the following bitset:
- IPTOS_LOWCOST (0x02)
- IPTOS_RELIABILITY (0x04)
- IPTOS_THROUGHPUT (0x08)
- IPTOS_LOWDELAY (0x10)
For IPv6 this is the value placed into the sin6_flowinfo header field.
const KeyStore? : truststore
The KeyStore to use for obtaining trusted certificates when creating secure sockets. If null, the runtime default will be used.