SocketFactory
and ServerSocketFactory
Classes
The abstract javax.net.SocketFactory
class is
used to create sockets. It must be subclassed by other factories,
which create particular subclasses of sockets and thus provide a general
framework for the addition of public socket-level functionality. (See,
for example, SSLSocketFactory
.)
The javax.net.ServerSocketFactory
class is analogous
to the SocketFactory
class, but is used specifically
for creating server sockets.
Socket factories are a simple way to capture a variety of policies
related to the sockets being constructed, producing such sockets in
a way which does not require special configuration of the code which
asks for the sockets:
- Due to polymorphism of both factories and sockets, different kinds of sockets can be used by the same application code just by passing different kinds of factories.
- Factories can themselves be customized with parameters used in socket construction. So for example, factories could be customized to return sockets with different networking timeouts or security parameters already configured.
- The sockets returned to the application can be subclasses of
java.net.Socket
(orjavax.net.ssl.SSLSocket
), so that they can directly expose new APIs for features such as compression, security, record marking, statistics collection, or firewall tunneling.