- 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 InetSocketAddresscreateUnresolved(String host, int port)从主机名和端口号创建未解析的套接字地址。booleanequals(Object obj)将此对象与指定对象进行比较。InetAddressgetAddress()获得InetAddress。StringgetHostName()获得hostname。StringgetHostString()如果没有主机名(使用文字创建),则返回主机名或地址的String形式。intgetPort()获取端口号。inthashCode()返回此套接字地址的哈希码。booleanisUnresolved()检查地址是否已解决。StringtoString()构造此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)
-
-