JavaTM Platform
Standard Ed. 6

java.net
类 InetSocketAddress

java.lang.Object
  继承者 java.net.SocketAddress
      继承者 java.net.InetSocketAddress
所有已实现的接口:
Serializable

public class InetSocketAddress
extends SocketAddress

此类实现 IP 套接字地址(IP 地址 + 端口号)。它还可以是一个对(主机名 + 端口号),在此情况下,将尝试解析主机名。如果解析失败,则该地址将被视为未解析 地址,但是其在某些情形下仍然可以使用,比如通过代理连接。

它提供不可变对象,供套接字用于绑定、连接或用作返回值。

通配符 是一个特殊的本地 IP 地址。它通常表示“任何”,只能用于 bind 操作。

从以下版本开始:
1.4
另请参见:
Socket, ServerSocket, 序列化表格

构造方法摘要
InetSocketAddress(InetAddress addr, int port)
          根据 IP 地址和端口号创建套接字地址。
InetSocketAddress(int port)
          创建套接字地址,其中 IP 地址为通配符地址,端口号为指定值。
InetSocketAddress(String hostname, int port)
          根据主机名和端口号创建套接字地址。
 
方法摘要
static InetSocketAddress createUnresolved(String host, int port)
          根据主机名和端口号创建未解析的套接字地址。
 boolean equals(Object obj)
          将此对象与指定对象比较。
 InetAddress getAddress()
          获取 InetAddress
 String getHostName()
          获取 hostname
 int getPort()
          获取端口号。
 int hashCode()
          返回此套接字地址的哈希码。
 boolean isUnresolved()
          检查是否已解析地址。
 String toString()
          构造此 InetSocketAddress 的字符串表示形式。
 
从类 java.lang.Object 继承的方法
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

构造方法详细信息

InetSocketAddress

public InetSocketAddress(int port)
创建套接字地址,其中 IP 地址为通配符地址,端口号为指定值。

有效端口值介于 0 和 65535 之间。端口号 zero 允许系统在 bind 操作中挑选暂时的端口。

参数:
port - 端口号
抛出:
IllegalArgumentException - 如果 port 参数超出有效端口值的指定范围。

InetSocketAddress

public InetSocketAddress(InetAddress addr,
                         int port)
根据 IP 地址和端口号创建套接字地址。

有效端口值介于 0 和 65535 之间。端口号 zero 允许系统在 bind 操作中挑选暂时的端口。

null 地址将分配通配符 地址。

参数:
addr - IP 地址
port - 端口号
抛出:
IllegalArgumentException - 如果 port 参数超出有效端口值的指定范围。

InetSocketAddress

public InetSocketAddress(String hostname,
                         int port)
根据主机名和端口号创建套接字地址。

尝试将主机名解析为 InetAddress。如果尝试失败,则将地址标记为未解析

如果存在安全管理器,则将主机名用作参数调用其 checkConnect 方法,以检查解析它的权限。这可能会导致 SecurityException 异常。

有效端口值介于 0 和 65535 之间。端口号 zero 允许系统在 bind 操作中挑选暂时的端口。

参数:
hostname - 主机名
port - 端口号
抛出:
IllegalArgumentException - 如果 port 参数超出有效端口值的范围,或者主机名参数为 null
SecurityException - 如果存在安全管理器,但拒绝解析主机名的权限。
另请参见:
isUnresolved()
方法详细信息

createUnresolved

public static InetSocketAddress createUnresolved(String host,
                                                 int port)
根据主机名和端口号创建未解析的套接字地址。

不会尝试将主机名解析为 InetAddress。将地址标记为未解析

有效端口值介于 0 和 65535 之间。端口号 zero 允许系统在 bind 操作中挑选暂时的端口。

参数:
host - 主机名
port - 端口号
返回:
表示未解析套接字地址的 InetSocketAddress
抛出:
IllegalArgumentException - 如果 port 参数超出有效端口值的范围,或者主机名参数为 null
从以下版本开始:
1.5
另请参见:
isUnresolved()

getPort

public final int getPort()
获取端口号。

返回:
端口号。

getAddress

public final InetAddress getAddress()
获取 InetAddress

返回:
InetAdress;如果未解析,则返回 null

getHostName

public final String getHostName()
获取 hostname

返回:
地址的主机名部分。

isUnresolved

public final boolean isUnresolved()
检查是否已解析地址。

返回:
如果无法将主机名解析为 InetAddress,则返回 true

toString

public String toString()
构造此 InetSocketAddress 的字符串表示形式。此 String 通过在 InetAddress 上调用 toString() 并连接端口号(使用冒号)来构造。如果未解析地址,则冒号之前的部分将仅包含主机名。

覆盖:
Object 中的 toString
返回:
此对象的字符串表示形式。

equals

public final boolean equals(Object obj)
将此对象与指定对象比较。当且仅当参数不为 null,并且它表示与此对象相同的地址时,结果才为 true

如果 InetSocketAddress 的两个实例的 InetAddress(或主机名,如果未解析的话)和端口号都相等,则它们表示同一个地址。如果两个地址都未解析,则比较主机名和端口号。

覆盖:
Object 中的 equals
参数:
obj - 要与之比较的对象。
返回:
如果对象相同,则返回 true;否则,返回 false
另请参见:
InetAddress.equals(java.lang.Object)

hashCode

public final int hashCode()
返回此套接字地址的哈希码。

覆盖:
Object 中的 hashCode
返回:
此套接字地址的哈希码值。
另请参见:
Object.equals(java.lang.Object), Hashtable

JavaTM Platform
Standard Ed. 6

提交错误或意见
有关更多的 API 参考资料和开发人员文档,请参阅 Java SE 开发人员文档。该文档包含更详细的、面向开发人员的描述,以及总体概述、术语定义、使用技巧和工作代码示例。

版权所有 2007 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策