src/share/classes/java/net/SocketOptions.java

Print this page

        

*** 23,32 **** --- 23,34 ---- * questions. */ package java.net; + import java.lang.annotation.Native; + /** * Interface of methods to get/set socket options. This interface is * implemented by: <B>SocketImpl</B> and <B>DatagramSocketImpl</B>. * Subclasses of these should override the methods * of this interface in order to support their own options.
*** 135,145 **** * <P> * @see Socket#setTcpNoDelay * @see Socket#getTcpNoDelay */ ! public final static int TCP_NODELAY = 0x0001; /** * Fetch the local address binding of a socket (this option cannot * be "set" only "gotten", since sockets are bound at creation time, * and so the locally bound address cannot be changed). The default local --- 137,147 ---- * <P> * @see Socket#setTcpNoDelay * @see Socket#getTcpNoDelay */ ! @Native public final static int TCP_NODELAY = 0x0001; /** * Fetch the local address binding of a socket (this option cannot * be "set" only "gotten", since sockets are bound at creation time, * and so the locally bound address cannot be changed). The default local
*** 156,185 **** * <P> * @see Socket#getLocalAddress * @see DatagramSocket#getLocalAddress */ ! public final static int SO_BINDADDR = 0x000F; /** Sets SO_REUSEADDR for a socket. This is used only for MulticastSockets * in java, and it is set by default for MulticastSockets. * <P> * Valid for: DatagramSocketImpl */ ! public final static int SO_REUSEADDR = 0x04; /** * Sets SO_BROADCAST for a socket. This option enables and disables * the ability of the process to send broadcast messages. It is supported * for only datagram sockets and only on networks that support * the concept of a broadcast message (e.g. Ethernet, token ring, etc.), * and it is set by default for DatagramSockets. * @since 1.4 */ ! public final static int SO_BROADCAST = 0x0020; /** Set which outgoing interface on which to send multicast packets. * Useful on hosts with multiple network interfaces, where applications * want to use other than the system default. Takes/returns an InetAddress. * <P> --- 158,187 ---- * <P> * @see Socket#getLocalAddress * @see DatagramSocket#getLocalAddress */ ! @Native public final static int SO_BINDADDR = 0x000F; /** Sets SO_REUSEADDR for a socket. This is used only for MulticastSockets * in java, and it is set by default for MulticastSockets. * <P> * Valid for: DatagramSocketImpl */ ! @Native public final static int SO_REUSEADDR = 0x04; /** * Sets SO_BROADCAST for a socket. This option enables and disables * the ability of the process to send broadcast messages. It is supported * for only datagram sockets and only on networks that support * the concept of a broadcast message (e.g. Ethernet, token ring, etc.), * and it is set by default for DatagramSockets. * @since 1.4 */ ! @Native public final static int SO_BROADCAST = 0x0020; /** Set which outgoing interface on which to send multicast packets. * Useful on hosts with multiple network interfaces, where applications * want to use other than the system default. Takes/returns an InetAddress. * <P>
*** 187,197 **** * <P> * @see MulticastSocket#setInterface(InetAddress) * @see MulticastSocket#getInterface() */ ! public final static int IP_MULTICAST_IF = 0x10; /** Same as above. This option is introduced so that the behaviour * with IP_MULTICAST_IF will be kept the same as before, while * this new option can support setting outgoing interfaces with either * IPv4 and IPv6 addresses. --- 189,199 ---- * <P> * @see MulticastSocket#setInterface(InetAddress) * @see MulticastSocket#getInterface() */ ! @Native public final static int IP_MULTICAST_IF = 0x10; /** Same as above. This option is introduced so that the behaviour * with IP_MULTICAST_IF will be kept the same as before, while * this new option can support setting outgoing interfaces with either * IPv4 and IPv6 addresses.
*** 199,225 **** * NOTE: make sure there is no conflict with this * @see MulticastSocket#setNetworkInterface(NetworkInterface) * @see MulticastSocket#getNetworkInterface() * @since 1.4 */ ! public final static int IP_MULTICAST_IF2 = 0x1f; /** * This option enables or disables local loopback of multicast datagrams. * This option is enabled by default for Multicast Sockets. * @since 1.4 */ ! public final static int IP_MULTICAST_LOOP = 0x12; /** * This option sets the type-of-service or traffic class field * in the IP header for a TCP or UDP socket. * @since 1.4 */ ! public final static int IP_TOS = 0x3; /** * Specify a linger-on-close timeout. This option disables/enables * immediate return from a <B>close()</B> of a TCP Socket. Enabling * this option with a non-zero Integer <I>timeout</I> means that a --- 201,227 ---- * NOTE: make sure there is no conflict with this * @see MulticastSocket#setNetworkInterface(NetworkInterface) * @see MulticastSocket#getNetworkInterface() * @since 1.4 */ ! @Native public final static int IP_MULTICAST_IF2 = 0x1f; /** * This option enables or disables local loopback of multicast datagrams. * This option is enabled by default for Multicast Sockets. * @since 1.4 */ ! @Native public final static int IP_MULTICAST_LOOP = 0x12; /** * This option sets the type-of-service or traffic class field * in the IP header for a TCP or UDP socket. * @since 1.4 */ ! @Native public final static int IP_TOS = 0x3; /** * Specify a linger-on-close timeout. This option disables/enables * immediate return from a <B>close()</B> of a TCP Socket. Enabling * this option with a non-zero Integer <I>timeout</I> means that a
*** 233,243 **** * Valid only for TCP: SocketImpl * * @see Socket#setSoLinger * @see Socket#getSoLinger */ ! public final static int SO_LINGER = 0x0080; /** Set a timeout on blocking Socket operations: * <PRE> * ServerSocket.accept(); * SocketInputStream.read(); --- 235,245 ---- * Valid only for TCP: SocketImpl * * @see Socket#setSoLinger * @see Socket#getSoLinger */ ! @Native public final static int SO_LINGER = 0x0080; /** Set a timeout on blocking Socket operations: * <PRE> * ServerSocket.accept(); * SocketInputStream.read();
*** 254,264 **** * * @see Socket#setSoTimeout * @see ServerSocket#setSoTimeout * @see DatagramSocket#setSoTimeout */ ! public final static int SO_TIMEOUT = 0x1006; /** * Set a hint the size of the underlying buffers used by the * platform for outgoing network I/O. When used in set, this is a * suggestion to the kernel from the application about the size of --- 256,266 ---- * * @see Socket#setSoTimeout * @see ServerSocket#setSoTimeout * @see DatagramSocket#setSoTimeout */ ! @Native public final static int SO_TIMEOUT = 0x1006; /** * Set a hint the size of the underlying buffers used by the * platform for outgoing network I/O. When used in set, this is a * suggestion to the kernel from the application about the size of
*** 271,281 **** * @see Socket#setSendBufferSize * @see Socket#getSendBufferSize * @see DatagramSocket#setSendBufferSize * @see DatagramSocket#getSendBufferSize */ ! public final static int SO_SNDBUF = 0x1001; /** * Set a hint the size of the underlying buffers used by the * platform for incoming network I/O. When used in set, this is a * suggestion to the kernel from the application about the size of --- 273,283 ---- * @see Socket#setSendBufferSize * @see Socket#getSendBufferSize * @see DatagramSocket#setSendBufferSize * @see DatagramSocket#getSendBufferSize */ ! @Native public final static int SO_SNDBUF = 0x1001; /** * Set a hint the size of the underlying buffers used by the * platform for incoming network I/O. When used in set, this is a * suggestion to the kernel from the application about the size of
*** 289,299 **** * @see Socket#setReceiveBufferSize * @see Socket#getReceiveBufferSize * @see DatagramSocket#setReceiveBufferSize * @see DatagramSocket#getReceiveBufferSize */ ! public final static int SO_RCVBUF = 0x1002; /** * When the keepalive option is set for a TCP socket and no data * has been exchanged across the socket in either direction for * 2 hours (NOTE: the actual value is implementation dependent), --- 291,301 ---- * @see Socket#setReceiveBufferSize * @see Socket#getReceiveBufferSize * @see DatagramSocket#setReceiveBufferSize * @see DatagramSocket#getReceiveBufferSize */ ! @Native public final static int SO_RCVBUF = 0x1002; /** * When the keepalive option is set for a TCP socket and no data * has been exchanged across the socket in either direction for * 2 hours (NOTE: the actual value is implementation dependent),
*** 312,329 **** * Valid only for TCP socket: SocketImpl * * @see Socket#setKeepAlive * @see Socket#getKeepAlive */ ! public final static int SO_KEEPALIVE = 0x0008; /** * When the OOBINLINE option is set, any TCP urgent data received on * the socket will be received through the socket input stream. * When the option is disabled (which is the default) urgent data * is silently discarded. * * @see Socket#setOOBInline * @see Socket#getOOBInline */ ! public final static int SO_OOBINLINE = 0x1003; } --- 314,331 ---- * Valid only for TCP socket: SocketImpl * * @see Socket#setKeepAlive * @see Socket#getKeepAlive */ ! @Native public final static int SO_KEEPALIVE = 0x0008; /** * When the OOBINLINE option is set, any TCP urgent data received on * the socket will be received through the socket input stream. * When the option is disabled (which is the default) urgent data * is silently discarded. * * @see Socket#setOOBInline * @see Socket#getOOBInline */ ! @Native public final static int SO_OOBINLINE = 0x1003; }