Skip to content

Most visited

Recently visited

navigation
Added in API level 1

SocketOptions

public interface SocketOptions

java.net.SocketOptions
Known Indirect Subclasses


Defines an interface for socket implementations to get and set socket options. It is implemented by the classes SocketImpl and DatagramSocketImpl.

See also:

Summary

Constants

int IP_MULTICAST_IF

This is an IPv4-only socket option whose functionality is subsumed by IP_MULTICAST_IF2 and not implemented on Android.

int IP_MULTICAST_IF2

This integer option sets the outgoing interface for multicast packets using an interface index.

int IP_MULTICAST_LOOP

This boolean option specifies whether the local loopback of multicast packets is enabled or disabled.

int IP_TOS

This integer option specifies the value for the type-of-service field of the IPv4 header, or the traffic class field of the IPv6 header.

int SO_BINDADDR

This option does not correspond to any Unix socket option and is not implemented on Android.

int SO_BROADCAST

This boolean option can be used to enable or disable broadcasting on datagram sockets.

int SO_KEEPALIVE

This boolean option specifies whether the kernel sends keepalive messages on connection-oriented sockets.

int SO_LINGER

Number of seconds to wait when closing a socket if there is still some buffered data to be sent.

int SO_OOBINLINE

This boolean option specifies whether sending TCP urgent data is supported on this socket or not.

int SO_RCVBUF

The size in bytes of a socket's receive buffer.

int SO_REUSEADDR

This boolean option specifies whether a reuse of a local address is allowed when another socket has not yet been removed by the operating system.

int SO_SNDBUF

The size in bytes of a socket's send buffer.

int SO_TIMEOUT

Integer timeout in milliseconds for blocking accept or read/receive operations (but not write/send operations).

int TCP_NODELAY

This boolean option specifies whether data is sent immediately on this socket or buffered.

Public methods

abstract Object getOption(int optID)

Gets the value for the specified socket option.

abstract void setOption(int optID, Object val)

Sets the value of the specified socket option.

Constants

IP_MULTICAST_IF

Added in API level 1
int IP_MULTICAST_IF

This is an IPv4-only socket option whose functionality is subsumed by IP_MULTICAST_IF2 and not implemented on Android.

Constant Value: 16 (0x00000010)

IP_MULTICAST_IF2

Added in API level 1
int IP_MULTICAST_IF2

This integer option sets the outgoing interface for multicast packets using an interface index.

See RFC 1112: Host Extensions for IP Multicasting for more information about IP multicast.

Constant Value: 31 (0x0000001f)

IP_MULTICAST_LOOP

Added in API level 1
int IP_MULTICAST_LOOP

This boolean option specifies whether the local loopback of multicast packets is enabled or disabled. This loopback is enabled by default on multicast sockets.

See RFC 1112: Host Extensions for IP Multicasting for more information about IP multicast.

See setLoopbackMode(boolean).

Constant Value: 18 (0x00000012)

IP_TOS

Added in API level 1
int IP_TOS

This integer option specifies the value for the type-of-service field of the IPv4 header, or the traffic class field of the IPv6 header. These correspond to the IP_TOS and IPV6_TCLASS socket options. These may be ignored by the underlying OS. Values must be between 0 and 255 inclusive.

See RFC 1349 for more about IPv4 and RFC 2460 for more about IPv6.

Constant Value: 3 (0x00000003)

SO_BINDADDR

Added in API level 1
int SO_BINDADDR

This option does not correspond to any Unix socket option and is not implemented on Android.

Constant Value: 15 (0x0000000f)

SO_BROADCAST

Added in API level 1
int SO_BROADCAST

This boolean option can be used to enable or disable broadcasting on datagram sockets. This option must be enabled to send broadcast messages. The default value is false.

Constant Value: 32 (0x00000020)

SO_KEEPALIVE

Added in API level 1
int SO_KEEPALIVE

This boolean option specifies whether the kernel sends keepalive messages on connection-oriented sockets.

See RFC 1122: Requirements for Internet Hosts -- Communication Layers for more information on keep-alive.

Constant Value: 8 (0x00000008)

SO_LINGER

Added in API level 1
int SO_LINGER

Number of seconds to wait when closing a socket if there is still some buffered data to be sent.

The option can be set to disabled using setOption(int, Object) with a value of Boolean.FALSE.

If this option is set to 0, the TCP socket is closed forcefully and the call to close returns immediately. If this option is disabled, closing a socket will return immediately and the close will be handled in the background.

If this option is set to a value greater than 0, the value is interpreted as the number of seconds to wait. If all data could be sent during this time, the socket is closed normally. Otherwise the connection will be closed forcefully.

Valid numeric values for this option are in the range 0 to 65535 inclusive. (Larger timeouts will be treated as 65535s timeouts; roughly 18 hours.)

This option is intended for use with sockets in blocking mode. The behavior of this option for non-blocking sockets is undefined.

Constant Value: 128 (0x00000080)

SO_OOBINLINE

Added in API level 1
int SO_OOBINLINE

This boolean option specifies whether sending TCP urgent data is supported on this socket or not.

Constant Value: 4099 (0x00001003)

SO_RCVBUF

Added in API level 1
int SO_RCVBUF

The size in bytes of a socket's receive buffer. This must be an integer greater than 0. This is a hint to the kernel; the kernel may use a larger buffer.

For datagram sockets, packets larger than this value will be discarded.

See RFC1323: TCP Extensions for High Performance for more information about TCP/IP buffering.

Constant Value: 4098 (0x00001002)

SO_REUSEADDR

Added in API level 1
int SO_REUSEADDR

This boolean option specifies whether a reuse of a local address is allowed when another socket has not yet been removed by the operating system.

For connection-oriented sockets, if this option is disabled and if there is another socket in state TIME_WAIT on a given address then another socket binding to that address would fail. Setting this value after a socket is bound has no effect.

For datagram sockets this option determines whether several sockets can listen on the same address; when enabled each socket will receive a copy of the datagram.

See RFC 793: Transmission Control Protocol for more information about socket re-use.

Constant Value: 4 (0x00000004)

SO_SNDBUF

Added in API level 1
int SO_SNDBUF

The size in bytes of a socket's send buffer. This must be an integer greater than 0. This is a hint to the kernel; the kernel may use a larger buffer.

For datagram sockets, it is implementation-defined whether packets larger than this size can be sent.

Constant Value: 4097 (0x00001001)

SO_TIMEOUT

Added in API level 1
int SO_TIMEOUT

Integer timeout in milliseconds for blocking accept or read/receive operations (but not write/send operations). A timeout of 0 means no timeout. Negative timeouts are not allowed.

An InterruptedIOException is thrown if this timeout expires.

Constant Value: 4102 (0x00001006)

TCP_NODELAY

Added in API level 1
int TCP_NODELAY

This boolean option specifies whether data is sent immediately on this socket or buffered.

If set to Boolean.TRUE the Nagle algorithm is disabled and there is no buffering. This could lead to low packet efficiency. When set to Boolean.FALSE the the socket implementation uses buffering to try to reach a higher packet efficiency.

See RFC 1122: Requirements for Internet Hosts -- Communication Layers for more information about buffering and the Nagle algorithm.

Constant Value: 1 (0x00000001)

Public methods

getOption

Added in API level 1
Object getOption (int optID)

Gets the value for the specified socket option.

Parameters
optID int: the option identifier.
Returns
Object the option value.
Throws
SocketException if an error occurs reading the option value.

setOption

Added in API level 1
void setOption (int optID, 
                Object val)

Sets the value of the specified socket option.

Parameters
optID int: the option identifier.
val Object: the value to be set for the option.
Throws
SocketException if an error occurs setting the option value.
This site uses cookies to store your preferences for site-specific language and display options.

Hooray!

This class requires API level or higher

This doc is hidden because your selected API level for the documentation is . You can change the documentation API level with the selector above the left navigation.

For more information about specifying the API level your app requires, read Supporting Different Platform Versions.