Package org.apache.tomcat.jni
Class Socket
java.lang.Object
org.apache.tomcat.jni.Socket
Deprecated.
The scope of the APR/Native Library will be reduced in Tomcat
10.1.x / Tomcat Native 2.x onwards to only include those
components required to provide OpenSSL integration with the NIO
and NIO2 connectors.
Socket
- Author:
- Mladen Turk
-
Field Summary
Modifier and TypeFieldDescriptionstatic final int
Deprecated.Set on non-blocking sockets (timeout !static final int
Deprecated.like APR_INCOMPLETE_READ, but for writestatic final int
Deprecated.static final int
Deprecated.static final int
Deprecated.static final int
Deprecated.static final int
Deprecated.Don't accept IPv4 connections on an IPv6 listening socket.static final int
Deprecated.Enum to tell us if we're interested in remote or local socket apr_interface_estatic final int
Deprecated.SCTPstatic final int
Deprecated.TCPstatic final int
Deprecated.UDPstatic final int
Deprecated.static final int
Deprecated.This flag is ONLY set internally when we set APR_TCP_NOPUSH with APR_TCP_NODELAY set to tell us that APR_TCP_NODELAY should be turned on again when NOPUSH is turned offstatic final int
Deprecated.no longer allow read requeststatic final int
Deprecated.no longer allow read or write requestsstatic final int
Deprecated.no longer allow write requestsstatic final int
Deprecated.Debugstatic final int
Deprecated.Disconnectedstatic final int
Deprecated.Keepalivestatic final int
Deprecated.Lingerstatic final int
Deprecated.Non-blocking IOstatic final int
Deprecated.Receive bufferstatic final int
Deprecated.Reuse addressesstatic final int
Deprecated.Send bufferstatic final int
Deprecated.Delay accepting of new connections until data is available.static final int
Deprecated.For SCTP sockets, this is mapped to STCP_NODELAY internally.static final int
Deprecated.No pushstatic final int
Deprecated.static final int
Deprecated.static final int
Deprecated.static final int
Deprecated.static final int
Deprecated.static final int
Deprecated.static final int
Deprecated.static final int
Deprecated. -
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionstatic long
accept
(long sock) Deprecated.Accept a new connection requeststatic int
acceptfilter
(long sock, String name, String args) Deprecated.Set an OS level accept filter.static long
acceptx
(long sock, long pool) Deprecated.Accept a new connection requeststatic boolean
atmark
(long sock) Deprecated.Query the specified socket if at the OOB/Urgent data markstatic int
bind
(long sock, long sa) Deprecated.Bind the socket to its associated portstatic int
close
(long thesocket) Deprecated.Close a socket.static int
connect
(long sock, long sa) Deprecated.Issue a connection request to a socket either on the same machine or a different one.static long
create
(int family, int type, int protocol, long cont) Deprecated.Create a socket.static Object
Deprecated.Return the data associated with the current socketstatic int
Deprecated.Set the data associated with the current socket.static void
destroy
(long thesocket) Deprecated.Destroy a pool associated with socketstatic int
listen
(long sock, int backlog) Deprecated.Listen to a bound socket for connections.static int
optGet
(long sock, int opt) Deprecated.Query socket options for the specified socketstatic int
optSet
(long sock, int opt, int on) Deprecated.Setup socket options for the specified socketstatic long
pool
(long thesocket) Deprecated.Create a child pool from associated socket pool.static int
recv
(long sock, byte[] buf, int offset, int nbytes) Deprecated.Read data from a network.static int
recvb
(long sock, ByteBuffer buf, int offset, int nbytes) Deprecated.Read data from a network.static int
recvbb
(long sock, int offset, int nbytes) Deprecated.Read data from a network using internally set ByteBuffer.static int
recvbbt
(long sock, int offset, int nbytes, long timeout) Deprecated.Read data from a network with timeout using internally set ByteBufferstatic int
recvbt
(long sock, ByteBuffer buf, int offset, int nbytes, long timeout) Deprecated.Read data from a network with timeout.static int
recvfrom
(long from, long sock, int flags, byte[] buf, int offset, int nbytes) Deprecated.static int
recvt
(long sock, byte[] buf, int offset, int nbytes, long timeout) Deprecated.Read data from a network with timeout.static int
send
(long sock, byte[] buf, int offset, int len) Deprecated.Send data over a network.static int
sendb
(long sock, ByteBuffer buf, int offset, int len) Deprecated.Send data over a network.static int
sendbb
(long sock, int offset, int len) Deprecated.Send data over a network using internally set ByteBufferstatic long
sendfile
(long sock, long file, byte[][] headers, byte[][] trailers, long offset, long len, int flags) Deprecated.Send a file from an open file descriptor to a socket, along with optional headers and trailers.static long
sendfilen
(long sock, long file, long offset, long len, int flags) Deprecated.Send a file without header and trailer arrays.static int
sendib
(long sock, ByteBuffer buf, int offset, int len) Deprecated.Send data over a network without retrystatic int
sendibb
(long sock, int offset, int len) Deprecated.Send data over a network using internally set ByteBuffer without internal retry.static int
sendto
(long sock, long where, int flags, byte[] buf, int offset, int len) Deprecated.static int
sendv
(long sock, byte[][] vec) Deprecated.Send multiple packets of data over a network.static void
setrbb
(long sock, ByteBuffer buf) Deprecated.Set internal receive ByteBuffer.static void
setsbb
(long sock, ByteBuffer buf) Deprecated.Set internal send ByteBuffer.static int
shutdown
(long thesocket, int how) Deprecated.Shutdown either reading, writing, or both sides of a socket.static long
timeoutGet
(long sock) Deprecated.Query socket timeout for the specified socketstatic int
timeoutSet
(long sock, long t) Deprecated.Setup socket timeout for the specified socket
-
Field Details
-
SOCK_STREAM
public static final int SOCK_STREAMDeprecated.- See Also:
-
SOCK_DGRAM
public static final int SOCK_DGRAMDeprecated.- See Also:
-
APR_SO_LINGER
public static final int APR_SO_LINGERDeprecated.Linger- See Also:
-
APR_SO_KEEPALIVE
public static final int APR_SO_KEEPALIVEDeprecated.Keepalive- See Also:
-
APR_SO_DEBUG
public static final int APR_SO_DEBUGDeprecated.Debug- See Also:
-
APR_SO_NONBLOCK
public static final int APR_SO_NONBLOCKDeprecated.Non-blocking IO- See Also:
-
APR_SO_REUSEADDR
public static final int APR_SO_REUSEADDRDeprecated.Reuse addresses- See Also:
-
APR_SO_SNDBUF
public static final int APR_SO_SNDBUFDeprecated.Send buffer- See Also:
-
APR_SO_RCVBUF
public static final int APR_SO_RCVBUFDeprecated.Receive buffer- See Also:
-
APR_SO_DISCONNECTED
public static final int APR_SO_DISCONNECTEDDeprecated.Disconnected- See Also:
-
APR_TCP_NODELAY
public static final int APR_TCP_NODELAYDeprecated.For SCTP sockets, this is mapped to STCP_NODELAY internally.- See Also:
-
APR_TCP_NOPUSH
public static final int APR_TCP_NOPUSHDeprecated.No push- See Also:
-
APR_RESET_NODELAY
public static final int APR_RESET_NODELAYDeprecated.This flag is ONLY set internally when we set APR_TCP_NOPUSH with APR_TCP_NODELAY set to tell us that APR_TCP_NODELAY should be turned on again when NOPUSH is turned off- See Also:
-
APR_INCOMPLETE_READ
public static final int APR_INCOMPLETE_READDeprecated.Set on non-blocking sockets (timeout != 0) on which the previous read() did not fill a buffer completely. the next apr_socket_recv() will first call select()/poll() rather than going straight into read(). (Can also be set by an application to force a select()/poll() call before the next read, in cases where the app expects that an immediate read would fail.)- See Also:
-
APR_INCOMPLETE_WRITE
public static final int APR_INCOMPLETE_WRITEDeprecated.like APR_INCOMPLETE_READ, but for write- See Also:
-
APR_IPV6_V6ONLY
public static final int APR_IPV6_V6ONLYDeprecated.Don't accept IPv4 connections on an IPv6 listening socket.- See Also:
-
APR_TCP_DEFER_ACCEPT
public static final int APR_TCP_DEFER_ACCEPTDeprecated.Delay accepting of new connections until data is available.- See Also:
-
APR_SHUTDOWN_READ
public static final int APR_SHUTDOWN_READDeprecated.no longer allow read request- See Also:
-
APR_SHUTDOWN_WRITE
public static final int APR_SHUTDOWN_WRITEDeprecated.no longer allow write requests- See Also:
-
APR_SHUTDOWN_READWRITE
public static final int APR_SHUTDOWN_READWRITEDeprecated.no longer allow read or write requests- See Also:
-
APR_IPV4_ADDR_OK
public static final int APR_IPV4_ADDR_OKDeprecated.- See Also:
-
APR_IPV6_ADDR_OK
public static final int APR_IPV6_ADDR_OKDeprecated.- See Also:
-
APR_UNSPEC
public static final int APR_UNSPECDeprecated.- See Also:
-
APR_INET
public static final int APR_INETDeprecated.- See Also:
-
APR_INET6
public static final int APR_INET6Deprecated.- See Also:
-
APR_UNIX
public static final int APR_UNIXDeprecated.- See Also:
-
APR_PROTO_TCP
public static final int APR_PROTO_TCPDeprecated.TCP- See Also:
-
APR_PROTO_UDP
public static final int APR_PROTO_UDPDeprecated.UDP- See Also:
-
APR_PROTO_SCTP
public static final int APR_PROTO_SCTPDeprecated.SCTP- See Also:
-
APR_LOCAL
public static final int APR_LOCALDeprecated.Enum to tell us if we're interested in remote or local socket apr_interface_e- See Also:
-
APR_REMOTE
public static final int APR_REMOTEDeprecated.- See Also:
-
SOCKET_GET_POOL
public static final int SOCKET_GET_POOLDeprecated.- See Also:
-
SOCKET_GET_IMPL
public static final int SOCKET_GET_IMPLDeprecated.- See Also:
-
SOCKET_GET_APRS
public static final int SOCKET_GET_APRSDeprecated.- See Also:
-
SOCKET_GET_TYPE
public static final int SOCKET_GET_TYPEDeprecated.- See Also:
-
-
Constructor Details
-
Socket
public Socket()Deprecated.
-
-
Method Details
-
create
Deprecated.Create a socket.- Parameters:
family
- The address family of the socket (e.g., APR_INET).type
- The type of the socket (e.g., SOCK_STREAM).protocol
- The protocol of the socket (e.g., APR_PROTO_TCP).cont
- The parent pool to use- Returns:
- The new socket that has been set up.
- Throws:
Exception
- Error creating socket
-
shutdown
public static int shutdown(long thesocket, int how) Deprecated.Shutdown either reading, writing, or both sides of a socket.
This does not actually close the socket descriptor, it just controls which calls are still valid on the socket.- Parameters:
thesocket
- The socket to closehow
- How to shutdown the socket. One of:APR_SHUTDOWN_READ no longer allow read requests APR_SHUTDOWN_WRITE no longer allow write requests APR_SHUTDOWN_READWRITE no longer allow read or write requests
- Returns:
- the operation status
-
close
public static int close(long thesocket) Deprecated.Close a socket.- Parameters:
thesocket
- The socket to close- Returns:
- the operation status
-
destroy
public static void destroy(long thesocket) Deprecated.Destroy a pool associated with socket- Parameters:
thesocket
- The destroy
-
bind
public static int bind(long sock, long sa) Deprecated.Bind the socket to its associated port- Parameters:
sock
- The socket to bindsa
- The socket address to bind to This may be where we will find out if there is any other process using the selected port.- Returns:
- the operation status
-
listen
public static int listen(long sock, int backlog) Deprecated.Listen to a bound socket for connections.- Parameters:
sock
- The socket to listen onbacklog
- The number of outstanding connections allowed in the sockets listen queue. If this value is less than zero, the listen queue size is set to zero.- Returns:
- the operation status
-
acceptx
Deprecated.Accept a new connection request- Parameters:
sock
- The socket we are listening on.pool
- The pool for the new socket.- Returns:
- A copy of the socket that is connected to the socket that made the connection request. This is the socket which should be used for all future communication.
- Throws:
Exception
- Socket accept error
-
accept
Deprecated.Accept a new connection request- Parameters:
sock
- The socket we are listening on.- Returns:
- A copy of the socket that is connected to the socket that made the connection request. This is the socket which should be used for all future communication.
- Throws:
Exception
- Socket accept error
-
acceptfilter
Deprecated.Set an OS level accept filter.- Parameters:
sock
- The socket to put the accept filter on.name
- The accept filterargs
- Any extra args to the accept filter. Passing NULL here removes the accept filter.- Returns:
- the operation status
-
atmark
public static boolean atmark(long sock) Deprecated.Query the specified socket if at the OOB/Urgent data mark- Parameters:
sock
- The socket to query- Returns:
true
if socket is at the OOB/urgent mark, otherwisefalse
.
-
connect
public static int connect(long sock, long sa) Deprecated.Issue a connection request to a socket either on the same machine or a different one.- Parameters:
sock
- The socket we wish to use for our side of the connectionsa
- The address of the machine we wish to connect to.- Returns:
- the operation status
-
send
public static int send(long sock, byte[] buf, int offset, int len) Deprecated.Send data over a network.This functions acts like a blocking write by default. To change this behavior, use apr_socket_timeout_set() or the APR_SO_NONBLOCK socket option. It is possible for both bytes to be sent and an error to be returned. APR_EINTR is never returned.
- Parameters:
sock
- The socket to send the data over.buf
- The buffer which contains the data to be sent.offset
- Offset in the byte buffer.len
- The number of bytes to write; (-1) for full array.- Returns:
- The number of bytes sent
-
sendb
Deprecated.Send data over a network.This functions acts like a blocking write by default. To change this behavior, use apr_socket_timeout_set() or the APR_SO_NONBLOCK socket option. It is possible for both bytes to be sent and an error to be returned. APR_EINTR is never returned.
- Parameters:
sock
- The socket to send the data over.buf
- The Byte buffer which contains the data to be sent.offset
- The offset within the buffer array of the first buffer from which bytes are to be retrieved; must be non-negative and no larger than buf.lengthlen
- The maximum number of buffers to be accessed; must be non-negative and no larger than buf.length - offset- Returns:
- The number of bytes sent
-
sendib
Deprecated.Send data over a network without retryThis functions acts like a blocking write by default. To change this behavior, use apr_socket_timeout_set() or the APR_SO_NONBLOCK socket option. It is possible for both bytes to be sent and an error to be returned.
- Parameters:
sock
- The socket to send the data over.buf
- The Byte buffer which contains the data to be sent.offset
- The offset within the buffer array of the first buffer from which bytes are to be retrieved; must be non-negative and no larger than buf.lengthlen
- The maximum number of buffers to be accessed; must be non-negative and no larger than buf.length - offset- Returns:
- The number of bytes sent
-
sendbb
public static int sendbb(long sock, int offset, int len) Deprecated.Send data over a network using internally set ByteBuffer- Parameters:
sock
- The socket to send the data over.offset
- The offset within the buffer array of the first buffer from which bytes are to be retrieved; must be non-negative and no larger than buf.lengthlen
- The maximum number of buffers to be accessed; must be non-negative and no larger than buf.length - offset- Returns:
- The number of bytes sent
-
sendibb
public static int sendibb(long sock, int offset, int len) Deprecated.Send data over a network using internally set ByteBuffer without internal retry.- Parameters:
sock
- The socket to send the data over.offset
- The offset within the buffer array of the first buffer from which bytes are to be retrieved; must be non-negative and no larger than buf.lengthlen
- The maximum number of buffers to be accessed; must be non-negative and no larger than buf.length - offset- Returns:
- The number of bytes sent
-
sendv
public static int sendv(long sock, byte[][] vec) Deprecated.Send multiple packets of data over a network.This functions acts like a blocking write by default. To change this behavior, use apr_socket_timeout_set() or the APR_SO_NONBLOCK socket option. The number of bytes actually sent is stored in argument 3. It is possible for both bytes to be sent and an error to be returned. APR_EINTR is never returned.
- Parameters:
sock
- The socket to send the data over.vec
- The array from which to get the data to send.- Returns:
- The number of bytes sent
-
sendto
public static int sendto(long sock, long where, int flags, byte[] buf, int offset, int len) Deprecated.- Parameters:
sock
- The socket to send fromwhere
- The apr_sockaddr_t describing where to send the dataflags
- The flags to usebuf
- The data to sendoffset
- Offset in the byte buffer.len
- The length of the data to send- Returns:
- The number of bytes sent
-
recv
public static int recv(long sock, byte[] buf, int offset, int nbytes) Deprecated.Read data from a network.This functions acts like a blocking read by default. To change this behavior, use apr_socket_timeout_set() or the APR_SO_NONBLOCK socket option. The number of bytes actually received is stored in argument 3. It is possible for both bytes to be received and an APR_EOF or other error to be returned. APR_EINTR is never returned.
- Parameters:
sock
- The socket to read the data from.buf
- The buffer to store the data in.offset
- Offset in the byte buffer.nbytes
- The number of bytes to read (-1) for full array.- Returns:
- the number of bytes received.
-
recvt
public static int recvt(long sock, byte[] buf, int offset, int nbytes, long timeout) Deprecated.Read data from a network with timeout.This functions acts like a blocking read by default. To change this behavior, use apr_socket_timeout_set() or the APR_SO_NONBLOCK socket option. The number of bytes actually received is stored in argument 3. It is possible for both bytes to be received and an APR_EOF or other error to be returned. APR_EINTR is never returned.
- Parameters:
sock
- The socket to read the data from.buf
- The buffer to store the data in.offset
- Offset in the byte buffer.nbytes
- The number of bytes to read (-1) for full array.timeout
- The socket timeout in microseconds.- Returns:
- the number of bytes received.
-
recvb
Deprecated.Read data from a network.This functions acts like a blocking read by default. To change this behavior, use apr_socket_timeout_set() or the APR_SO_NONBLOCK socket option. The number of bytes actually received is stored in argument 3. It is possible for both bytes to be received and an APR_EOF or other error to be returned. APR_EINTR is never returned.
- Parameters:
sock
- The socket to read the data from.buf
- The buffer to store the data in.offset
- Offset in the byte buffer.nbytes
- The number of bytes to read (-1) for full array.- Returns:
- If ≥ 0, the return value is the number of bytes read. Note a
non-blocking read with no data current available will return
Status.EAGAIN
and EOF will returnStatus.APR_EOF
.
-
recvbb
public static int recvbb(long sock, int offset, int nbytes) Deprecated.Read data from a network using internally set ByteBuffer.- Parameters:
sock
- The socket to read the data from.offset
- Offset in the byte buffer.nbytes
- The number of bytes to read (-1) for full array.- Returns:
- If > 0, the return value is the number of bytes read. If == 0,
the return value indicates EOF and if < 0 the return value is the
error code. Note a non-blocking read with no data current
available will return
Status.EAGAIN
not zero.
-
recvbt
Deprecated.Read data from a network with timeout.This functions acts like a blocking read by default. To change this behavior, use apr_socket_timeout_set() or the APR_SO_NONBLOCK socket option. The number of bytes actually received is stored in argument 3. It is possible for both bytes to be received and an APR_EOF or other error to be returned. APR_EINTR is never returned.
- Parameters:
sock
- The socket to read the data from.buf
- The buffer to store the data in.offset
- Offset in the byte buffer.nbytes
- The number of bytes to read (-1) for full array.timeout
- The socket timeout in microseconds.- Returns:
- the number of bytes received.
-
recvbbt
public static int recvbbt(long sock, int offset, int nbytes, long timeout) Deprecated.Read data from a network with timeout using internally set ByteBuffer- Parameters:
sock
- The socket to read the data from.offset
- Offset in the byte buffer.nbytes
- The number of bytes to read (-1) for full array.timeout
- The socket timeout in microseconds.- Returns:
- the number of bytes received.
-
recvfrom
public static int recvfrom(long from, long sock, int flags, byte[] buf, int offset, int nbytes) Deprecated.- Parameters:
from
- The apr_sockaddr_t to fill in the recipient infosock
- The socket to useflags
- The flags to usebuf
- The buffer to useoffset
- Offset in the byte buffer.nbytes
- The number of bytes to read (-1) for full array.- Returns:
- the number of bytes received.
-
optSet
public static int optSet(long sock, int opt, int on) Deprecated.Setup socket options for the specified socket- Parameters:
sock
- The socket to set up.opt
- The option we would like to configure. One of:APR_SO_DEBUG -- turn on debugging information APR_SO_KEEPALIVE -- keep connections active APR_SO_LINGER -- lingers on close if data is present APR_SO_NONBLOCK -- Turns blocking on/off for socket When this option is enabled, use the APR_STATUS_IS_EAGAIN() macro to see if a send or receive function could not transfer data without blocking. APR_SO_REUSEADDR -- The rules used in validating addresses supplied to bind should allow reuse of local addresses. APR_SO_SNDBUF -- Set the SendBufferSize APR_SO_RCVBUF -- Set the ReceiveBufferSize
on
- Value for the option.- Returns:
- the operation status
-
optGet
Deprecated.Query socket options for the specified socket- Parameters:
sock
- The socket to queryopt
- The option we would like to query. One of:APR_SO_DEBUG -- turn on debugging information APR_SO_KEEPALIVE -- keep connections active APR_SO_LINGER -- lingers on close if data is present APR_SO_NONBLOCK -- Turns blocking on/off for socket APR_SO_REUSEADDR -- The rules used in validating addresses supplied to bind should allow reuse of local addresses. APR_SO_SNDBUF -- Set the SendBufferSize APR_SO_RCVBUF -- Set the ReceiveBufferSize APR_SO_DISCONNECTED -- Query the disconnected state of the socket. (Currently only used on Windows)
- Returns:
- Socket option returned on the call.
- Throws:
Exception
- An error occurred
-
timeoutSet
public static int timeoutSet(long sock, long t) Deprecated.Setup socket timeout for the specified socket- Parameters:
sock
- The socket to set up.t
- Value for the timeout in microseconds.t > 0 -- read and write calls return APR_TIMEUP if specified time elapses with no data read or written t == 0 -- read and write calls never block t < 0 -- read and write calls block
- Returns:
- the operation status
-
timeoutGet
Deprecated.Query socket timeout for the specified socket- Parameters:
sock
- The socket to query- Returns:
- Socket timeout returned from the query.
- Throws:
Exception
- An error occurred
-
sendfile
public static long sendfile(long sock, long file, byte[][] headers, byte[][] trailers, long offset, long len, int flags) Deprecated.Send a file from an open file descriptor to a socket, along with optional headers and trailers.
This functions acts like a blocking write by default. To change this behavior, use apr_socket_timeout_set() or the APR_SO_NONBLOCK socket option. The number of bytes actually sent is stored in the len parameter. The offset parameter is passed by reference for no reason; its value will never be modified by the apr_socket_sendfile() function.- Parameters:
sock
- The socket to which we're writingfile
- The open file from which to readheaders
- Array containing the headers to sendtrailers
- Array containing the trailers to sendoffset
- Offset into the file where we should begin writinglen
- Number of bytes to send from the fileflags
- APR flags that are mapped to OS specific flags- Returns:
- Number of bytes actually sent, including headers, file, and trailers
-
sendfilen
public static long sendfilen(long sock, long file, long offset, long len, int flags) Deprecated.Send a file without header and trailer arrays.- Parameters:
sock
- The socket to which we're writingfile
- The open file from which to readoffset
- Offset into the file where we should begin writinglen
- Number of bytes to send from the fileflags
- APR flags that are mapped to OS specific flags- Returns:
- Number of bytes actually sent
-
pool
Deprecated.Create a child pool from associated socket pool.- Parameters:
thesocket
- The socket to use- Returns:
- a pointer to the pool
- Throws:
Exception
- An error occurred
-
setsbb
Deprecated.Set internal send ByteBuffer. This function will preset internal Java ByteBuffer for consecutive sendbb calls.- Parameters:
sock
- The socket to usebuf
- The ByteBuffer
-
setrbb
Deprecated.Set internal receive ByteBuffer. This function will preset internal Java ByteBuffer for consecutive revcvbb/recvbbt calls.- Parameters:
sock
- The socket to usebuf
- The ByteBuffer
-
dataSet
Deprecated.Set the data associated with the current socket.- Parameters:
sock
- The currently open socket.data
- The user data to associate with the socket.key
- The key to associate with the data.- Returns:
- the operation status
-
dataGet
Deprecated.Return the data associated with the current socket- Parameters:
sock
- The currently open socket.key
- The key to associate with the user data.- Returns:
- Data or null in case of error.
-