public abstract class SocketFactory extends Object
套接字工厂是捕获与正在构建的套接字有关的各种策略的简单方法,以不需要特殊配置代码的方式生成这样的套接字:
工厂类由环境特定的配置机制指定。 例如, getDefault方法可以返回适合于特定用户或小程序的工厂,并且框架可以使用为自己的目的定制的工厂。
ServerSocketFactory
Modifier | Constructor and Description |
---|---|
protected |
SocketFactory()
创建一个
SocketFactory 。
|
Modifier and Type | Method and Description |
---|---|
Socket |
createSocket()
创建一个未连接的套接字。
|
abstract Socket |
createSocket(InetAddress host, int port)
创建套接字并将其连接到指定地址处的指定端口号。
|
abstract Socket |
createSocket(InetAddress address, int port, InetAddress localAddress, int localPort)
创建套接字并将其连接到指定远程端口上指定的远程地址。
|
abstract Socket |
createSocket(String host, int port)
创建套接字并将其连接到指定的远程端口上的指定远程主机。
|
abstract Socket |
createSocket(String host, int port, InetAddress localHost, int localPort)
创建套接字并将其连接到指定远程端口上的指定远程主机。
|
static SocketFactory |
getDefault()
返回环境默认套接字工厂的副本。
|
public static SocketFactory getDefault()
SocketFactory
public Socket createSocket() throws IOException
IOException
- 如果无法创建套接字
Socket.connect(java.net.SocketAddress)
,
Socket.connect(java.net.SocketAddress, int)
,
Socket.Socket()
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之间),包括0和65535之间。
SecurityManager.checkConnect(java.lang.String, int)
,
Socket.Socket(String, int)
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.Socket(String, int, java.net.InetAddress, int)
public abstract Socket createSocket(InetAddress host, int port) throws IOException
如果有一个安全管理器,它的checkConnect
方法被调用主机地址和port
作为其参数。 这可能会导致SecurityException。
host
- 服务器主机
port
- 服务器端口
Socket
IOException
- 如果在创建套接字时发生I / O错误
SecurityException
- 如果安全管理器存在,并且其
checkConnect
方法不允许操作。
IllegalArgumentException
- 如果端口参数超出了有效端口值的指定范围(介于0和65535之间),包括0和65535之间。
NullPointerException
- 如果
host
为空。
SecurityManager.checkConnect(java.lang.String, int)
,
Socket.Socket(java.net.InetAddress, int)
public abstract Socket createSocket(InetAddress address, int port, InetAddress localAddress, int localPort) throws IOException
如果有一个安全管理器,它的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.Socket(java.net.InetAddress, int, java.net.InetAddress, int)