org.apache.http.conn.scheme.SocketFactory |
Known Indirect Subclasses
|
Class Overview
A factory for creating and connecting sockets.
The factory encapsulates the logic for establishing a socket connection.
Both Object.equals()
and Object.hashCode()
must be overridden for the correct operation of some connection managers.
Public Methods
public
abstract
Socket
connectSocket
(Socket sock, String host, int port, InetAddress localAddress, int localPort, HttpParams params)
Connects a socket to the given host.
Parameters
sock
| the socket to connect, as obtained from
createSocket .
null indicates that a new socket
should be created and connected. |
host
| the host to connect to |
port
| the port to connect to on the host |
localAddress
| the local address to bind the socket to, or
null for any |
localPort
| the port on the local machine,
0 or a negative number for any |
params
| additional parameters for connecting |
Returns
- the connected socket. The returned object may be different
from the
sock
argument if this factory supports
a layered protocol.
public
abstract
Socket
createSocket
()
Creates a new, unconnected socket.
The socket should subsequently be passed to
connectSocket
.
Throws
IOException
| if an I/O error occurs while creating the socket
|
public
abstract
boolean
isSecure
(Socket sock)
Checks whether a socket provides a secure connection.
The socket must be connected
by this factory.
The factory will not perform I/O operations
in this method.
As a rule of thumb, plain sockets are not secure and
TLS/SSL sockets are secure. However, there may be
application specific deviations. For example, a plain
socket to a host in the same intranet ("trusted zone")
could be considered secure. On the other hand, a
TLS/SSL socket could be considered insecure based on
the cypher suite chosen for the connection.
Parameters
sock
| the connected socket to check |
Returns
true
if the connection of the socket
should be considered secure, or
false
if it should not
Throws
IllegalArgumentException
| if the argument is invalid, for example because it is
not a connected socket or was created by a different
socket factory.
Note that socket factories are not required to
check these conditions, they may simply return a default
value when called with an invalid socket argument.
|