- java.lang.Object
-
- java.net.SocketAddress
-
- java.net.InetSocketAddress
-
- All Implemented Interfaces:
-
Serializable
public class InetSocketAddress extends SocketAddress
该类实现IP套接字地址(IP地址+端口号)它也可以是一对(主机名+端口号),在这种情况下将尝试解析主机名。 如果解决方案失败,那么该地址被认为是未解决的,但在某些情况下仍可以使用,例如通过代理连接。它提供了用于绑定,连接或返回值的套接字所使用的不可变对象。
通配符是一个特殊的本地IP地址。 通常意味着“任何”,只能用于
bind
操作。- 从以下版本开始:
- 1.4
- 另请参见:
-
Socket
,ServerSocket
, Serialized Form
-
-
构造方法摘要
构造方法 Constructor 描述 InetSocketAddress(int port)
创建一个套接字地址,其中IP地址为通配符地址,端口号为指定值。InetSocketAddress(String hostname, int port)
从主机名和端口号创建套接字地址。InetSocketAddress(InetAddress addr, int port)
从IP地址和端口号创建套接字地址。
-
方法摘要
所有方法 静态方法 接口方法 具体的方法 Modifier and Type 方法 描述 static InetSocketAddress
createUnresolved(String host, int port)
从主机名和端口号创建未解析的套接字地址。boolean
equals(Object obj)
将此对象与指定对象进行比较。InetAddress
getAddress()
获得InetAddress
。String
getHostName()
获得hostname
。String
getHostString()
如果没有主机名(使用文字创建),则返回主机名或地址的String形式。int
getPort()
获取端口号。int
hashCode()
返回此套接字地址的哈希码。boolean
isUnresolved()
检查地址是否已解决。String
toString()
构造此InetSocketAddress的字符串表示形式。
-
-
-
构造方法详细信息
-
InetSocketAddress
public InetSocketAddress(int port)
创建一个套接字地址,其中IP地址为通配符地址,端口号为指定值。有效的端口值介于0和65535之间。端口号为
zero
将允许系统在bind
操作中拾取临时端口。- 参数
-
port
- 端口号 - 异常
-
IllegalArgumentException
- 如果端口参数超出了有效端口值的指定范围。
-
InetSocketAddress
public InetSocketAddress(InetAddress addr, int port)
从IP地址和端口号创建套接字地址。有效的端口值介于0到65535之间。端口号为
zero
将允许系统在bind
操作中拾取临时端口。A
null
地址将分配通配符地址。- 参数
-
addr
- IP地址 -
port
- 端口号 - 异常
-
IllegalArgumentException
- 如果端口参数在有效端口值的指定范围之外。
-
InetSocketAddress
public InetSocketAddress(String hostname, int port)
从主机名和端口号创建套接字地址。将尝试将主机名解析为InetAddress。 如果尝试失败,该地址将被标记为未解决 。
如果有一个安全管理器,它的
checkConnect
方法被调用主机名称作为它的参数来检查权限来解决它。 这可能会导致SecurityException。有效端口值介于0和65535之间。端口号为
zero
将允许系统在bind
操作中拾取临时端口。- 参数
-
hostname
- 主机名 -
port
- 端口号 - 异常
-
IllegalArgumentException
- 如果端口参数超出有效端口值的范围,或者主机名参数是null
。 -
SecurityException
- 如果存在安全管理员,并且拒绝解析主机名的权限。 - 另请参见:
-
isUnresolved()
-
-
方法详细信息
-
createUnresolved
public static InetSocketAddress createUnresolved(String host, int port)
从主机名和端口号创建未解析的套接字地址。不会尝试将主机名解析为InetAddress。 该地址将被标记为未解决 。
有效的端口值介于0和65535之间。端口号为
zero
将允许系统在bind
操作中拾取临时端口。- 参数
-
host
- 主机名 -
port
- 端口号 - 结果
-
一个表示未解决的套接字地址的
InetSocketAddress
- 异常
-
IllegalArgumentException
- 如果端口参数超出有效端口值的范围,或者主机名参数是否为null
。 - 从以下版本开始:
- 1.5
- 另请参见:
-
isUnresolved()
-
getPort
public final int getPort()
获取端口号。- 结果
- 端口号。
-
getAddress
public final InetAddress getAddress()
获得InetAddress
。- 结果
-
InetAdress或
null
如果尚未解决。
-
getHostName
public final String getHostName()
获得hostname
。 注意:如果地址是使用文字IP地址创建的,则此方法可能会触发名称服务反向查找。- 结果
- 地址的主机名部分。
-
getHostString
public final String getHostString()
如果没有主机名(使用文字创建),则返回主机名或地址的String形式。 这样做不利于不尝试反向查找。- 结果
- 主机名或字符串表示的地址。
- 从以下版本开始:
- 1.7
-
isUnresolved
public final boolean isUnresolved()
检查地址是否已解决。- 结果
-
true
如果主机名无法解析为InetAddress
。
-
toString
public String toString()
构造此InetSocketAddress的字符串表示形式。 此字符串是通过在InetAddress上调用toString()并连接端口号(带冒号)来构造的。 如果地址未解决,则冒号之前的部分将只包含主机名。
-
equals
public final boolean equals(Object obj)
将此对象与指定对象进行比较。 结果是true
当且仅当参数不是null
并且它表示与该对象相同的地址。如果InetAddresses(或主机名未解决)和端口号相等,则
InetSocketAddress
两个实例表示相同的地址。 如果两个地址都未解决,则比较主机名和端口号。 注意:主机名不区分大小写。 例如“FooBar”和“foobar”被认为是相等的。- 重写:
-
equals
在Object
- 参数
-
obj
- 要比较的对象。 - 结果
-
true
如果对象是相同的; 否则为false
。 - 另请参见:
-
InetAddress.equals(java.lang.Object)
-
hashCode
public final int hashCode()
返回此套接字地址的哈希码。- 重写:
-
hashCode
在Object
- 结果
- 该套接字地址的哈希码值。
- 另请参见:
-
Object.equals(java.lang.Object)
,System.identityHashCode(java.lang.Object)
-
-