- java.lang.Object
-
- javax.net.SocketFactory
-
- 已知直接子类:
-
SSLSocketFactory
public abstract class SocketFactory extends Object
这个类创建套接字。 它可能由其他工厂进行子类化,这些工厂创建了套接字的特定子类,从而为添加公共套接字级功能提供了一个通用框架。套接字工厂是捕获与正在构建的套接字有关的各种策略的简单方法,以不需要特殊配置代码的方式生成这样的套接字:
- 由于工厂和套接字的多态性,不同种类的套接字可以通过相同的应用程序代码传递给不同种类的工厂。
- 工厂本身可以根据插座施工中使用的参数进行定制。 因此,例如,可以定制工厂来返回具有不同网络超时或已配置的安全参数的套接字。
- 返回到应用程序的套接字可以是java.net.Socket的子类,因此它们可以直接公开新的API,例如压缩,安全性,记录标记,统计信息收集或防火墙隧道等功能。
工厂类由环境特定的配置机制指定。 例如, getDefault方法可以返回适合于特定用户或小程序的工厂,并且框架可以使用为自己的目的定制的工厂。
- 从以下版本开始:
- 1.4
- 另请参见:
-
ServerSocketFactory
-
-
构造方法摘要
构造方法 Modifier Constructor 描述 protected
SocketFactory()
创建一个SocketFactory
。
-
方法摘要
所有方法 静态方法 接口方法 抽象方法 具体的方法 Modifier and Type 方法 描述 Socket
createSocket()
创建一个未连接的套接字。abstract Socket
createSocket(String host, int port)
创建套接字并将其连接到指定的远程端口上的指定远程主机。abstract Socket
createSocket(String host, int port, InetAddress localHost, int localPort)
创建套接字并将其连接到指定远程端口上的指定远程主机。abstract Socket
createSocket(InetAddress host, int port)
创建套接字并将其连接到指定地址处的指定端口号。abstract Socket
createSocket(InetAddress address, int port, InetAddress localAddress, int localPort)
创建套接字并将其连接到指定远程端口上指定的远程地址。static SocketFactory
getDefault()
返回环境默认套接字工厂的副本。
-
-
-
方法详细信息
-
getDefault
public static SocketFactory getDefault()
返回环境默认套接字工厂的副本。- 结果
-
默认为
SocketFactory
-
createSocket
public Socket createSocket() throws IOException
创建一个未连接的套接字。- 结果
- 未连接的插座
- 异常
-
IOException
- 如果无法创建套接字 - 另请参见:
-
Socket.connect(java.net.SocketAddress)
,Socket.connect(java.net.SocketAddress, int)
,Socket()
-
createSocket
public abstract Socket createSocket(String host, int port) throws IOException, UnknownHostException
创建套接字并将其连接到指定的远程端口上的指定远程主机。 此插座使用为此工厂建立的插座选项进行配置。如果有一个安全管理器,它的
checkConnect
方法被调用主机地址和port
作为其参数。 这可能会导致SecurityException。- 参数
-
host
- 用于连接的服务器主机名,或null
的环回地址。 -
port
- 服务器端口 - 结果
-
Socket
- 异常
-
IOException
- 如果在创建套接字时发生I / O错误 -
SecurityException
- 如果存在安全管理员,并且其checkConnect
方法不允许操作。 -
UnknownHostException
- 如果主机不知道 -
IllegalArgumentException
- 如果端口参数在有效端口值的指定范围之外,介于0和65535之间(含)。 - 另请参见:
-
SecurityManager.checkConnect(java.lang.String, int)
,Socket(String, int)
-
createSocket
public abstract Socket createSocket(String host, int port, InetAddress localHost, int localPort) throws IOException, UnknownHostException
创建套接字并将其连接到指定远程端口上的指定远程主机。 套接字也将绑定到本地提供的地址和端口。 此插座使用为此工厂建立的插座选项进行配置。如果有一个安全管理器,它的
checkConnect
方法被调用主机地址和port
作为其参数。 这可能会导致SecurityException。- 参数
-
host
- 用于连接的服务器主机名,或null
的环回地址。 -
port
- 服务器端口 -
localHost
- 套接字绑定的本地地址 -
localPort
- 套接字绑定的本地端口 - 结果
-
Socket
- 异常
-
IOException
- 如果在创建套接字时发生I / O错误 -
SecurityException
- 如果存在安全管理员,并且其checkConnect
方法不允许操作。 -
UnknownHostException
- 如果主机不知道 -
IllegalArgumentException
- 如果端口参数或localPort参数超出了介于0和65535之间的有效端口值的指定范围(包括0和65535之间)。 - 另请参见:
-
SecurityManager.checkConnect(java.lang.String, int)
,Socket(String, int, java.net.InetAddress, int)
-
createSocket
public abstract Socket createSocket(InetAddress host, int port) throws IOException
创建套接字并将其连接到指定地址处的指定端口号。 此插座使用为此工厂建立的插座选项进行配置。如果有一个安全管理器,它的
checkConnect
方法被调用主机地址和port
作为参数。 这可能会导致SecurityException。- 参数
-
host
- 服务器主机 -
port
- 服务器端口 - 结果
-
Socket
- 异常
-
IOException
- 如果在创建套接字时发生I / O错误 -
SecurityException
- 如果安全管理器存在,并且其checkConnect
方法不允许操作。 -
IllegalArgumentException
- 如果端口参数在有效端口值的指定范围之间,介于0和65535之间(含)。 -
NullPointerException
- 如果host
为空。 - 另请参见:
-
SecurityManager.checkConnect(java.lang.String, int)
,Socket(java.net.InetAddress, int)
-
createSocket
public abstract Socket createSocket(InetAddress address, int port, InetAddress localAddress, int localPort) throws IOException
创建套接字并将其连接到指定远程端口上指定的远程地址。 套接字也将绑定到本地地址和端口suplied。 插座使用为此工厂建立的插座选项进行配置。如果有一个安全管理器,它的
checkConnect
方法被调用主机地址和port
作为其参数。 这可能会导致SecurityException。- 参数
-
address
- 服务器网络地址 -
port
- 服务器端口 -
localAddress
- 客户端网络地址 -
localPort
- 客户端口 - 结果
-
Socket
- 异常
-
IOException
- 如果在创建套接字时发生I / O错误 -
SecurityException
- 如果存在安全管理员,并且其checkConnect
方法不允许操作。 -
IllegalArgumentException
- 如果端口参数或localPort参数超出了介于0和65535之间的有效端口值的指定范围(包括0和65535之间)。 -
NullPointerException
- 如果address
为空。 - 另请参见:
-
SecurityManager.checkConnect(java.lang.String, int)
,Socket(java.net.InetAddress, int, java.net.InetAddress, int)
-
-