鴻蒙OS InetSocketAddress

2022-06-09 16:08 更新

InetSocketAddress

java.lang.Object

|---java.net.SocketAddress

|---|---java.net.InetSocketAddress

public class InetSocketAddress
extends SocketAddress

此類實現(xiàn)了一個 IP 套接字地址(IP 地址 + 端口號),它也可以是一對(主機名 + 端口號),在這種情況下,將嘗試解析主機名。 如果解析失敗,則稱該地址未解析,但仍可在某些情況下使用,例如通過代理連接。

它提供了一個不可變的對象,供套接字用于綁定、連接或作為返回值。

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

構(gòu)造函數(shù)摘要

構(gòu)造函數(shù) 描述
InetSocketAddress(int port) 創(chuàng)建一個套接字地址,其中 IP 地址是通配符地址,端口號是指定值。
InetSocketAddress(String hostname, int port) 從主機名和端口號創(chuàng)建套接字地址。
InetSocketAddress(InetAddress addr, int port) 從 IP 地址和端口號創(chuàng)建套接字地址。

方法總結(jié)

修飾符和類型 方法 描述
static InetSocketAddress createUnresolved(String host, int port) 從主機名和端口號創(chuàng)建一個未解析的套接字地址。
boolean equals(Object obj) 將此對象與指定對象進行比較。
InetAddress getAddress() 獲取 InetAddress。
String getHostName() 獲取主機名。
String getHostString() 如果沒有主機名(它是使用文字創(chuàng)建的),則返回主機名或地址的字符串形式。
int getPort() 獲取端口號。
int hashCode() 返回此套接字地址的哈希碼。
boolean isUnresolved() 檢查地址是否已解析。
String toString() 構(gòu)造此 InetSocketAddress 的字符串表示形式。
從類 java.lang.Object 繼承的方法
clone, finalize, getClass, notify, notifyAll, wait, wait, wait

構(gòu)造函數(shù)詳細信息

InetSocketAddress

public InetSocketAddress(int port)

創(chuàng)建一個套接字地址,其中 IP 地址是通配符地址,端口號是指定值。

有效端口值介于 0 和 65535 之間。端口號為零將使系統(tǒng)在綁定操作中選擇一個臨時端口。

參數(shù):

參數(shù)名稱 參數(shù)描述
port 端口號

Throws:

Throw名稱 Throw描述
IllegalArgumentException 如果端口參數(shù)超出指定的有效端口值范圍。

InetSocketAddress

public InetSocketAddress(InetAddress addr, int port)

從 IP 地址和端口號創(chuàng)建套接字地址。

有效端口值介于 0 和 65535 之間。端口號為零將使系統(tǒng)在綁定操作中選擇一個臨時端口。

空地址將分配通配符地址。

參數(shù):

參數(shù)名稱 參數(shù)描述
addr IP 地址
port 端口號

Throws:

Throw名稱 Throw描述
IllegalArgumentException 如果端口參數(shù)超出指定的有效端口值范圍。

InetSocketAddress

public InetSocketAddress(String hostname, int port)

從主機名和端口號創(chuàng)建套接字地址。

將嘗試將主機名解析為 InetAddress。 如果該嘗試失敗,該地址將被標記為未解析。

如果有安全管理器,則調(diào)用其 checkConnect 方法,并以主機名作為其參數(shù),以檢查解決它的權(quán)限。 這可能會導致 SecurityException。

有效端口值介于 0 和 65535 之間。端口號為零將使系統(tǒng)在綁定操作中選擇一個臨時端口。

參數(shù):

參數(shù)名稱 參數(shù)描述
hostname 主機名
port 端口號

Throws:

Throw名稱 Throw描述
IllegalArgumentException 如果端口參數(shù)超出有效端口值的范圍,或者主機名參數(shù)為空。
SecurityException 如果存在安全管理器并且拒絕解析主機名的權(quán)限。

方法詳情

createUnresolved

public static InetSocketAddress createUnresolved(String host, int port)

從主機名和端口號創(chuàng)建一個未解析的套接字地址。

不會嘗試將主機名解析為 InetAddress。 該地址將被標記為未解析。

有效端口值介于 0 和 65535 之間。端口號為零將使系統(tǒng)在綁定操作中選擇一個臨時端口。

參數(shù):

參數(shù)名稱 參數(shù)描述
host 主機名
port 端口號

返回:

表示未解析的套接字地址的 InetSocketAddress

Throws:

Throw名稱 Throw描述
IllegalArgumentException 如果端口參數(shù)超出有效端口值的范圍,或者主機名參數(shù)為空。

getPort

public final int getPort()

獲取端口號。

返回:

端口號。

getAddress

public final InetAddress getAddress()

獲取 InetAddress。

返回:

InetAdress 或 null 如果它未解析。

getHostName

public final String getHostName()

獲取主機名。 注意:如果地址是使用文字 IP 地址創(chuàng)建的,則此方法可能會觸發(fā)名稱服務(wù)反向查找。

返回:

地址的主機名部分。

getHostString

public final String getHostString()

如果沒有主機名(它是使用文字創(chuàng)建的),則返回主機名或地址的字符串形式。 這樣做的好處是不嘗試反向查找。

返回:

地址的主機名或字符串表示形式。

isUnresolved

public final boolean isUnresolved()

檢查地址是否已解析。

返回:

如果無法將主機名解析為 InetAddress,則為 true。

toString

public String toString()

構(gòu)造此 InetSocketAddress 的字符串表示形式。 此字符串是通過在 InetAddress 上調(diào)用 toString() 并連接端口號(使用冒號)來構(gòu)造的。 如果地址未解析,則冒號之前的部分將僅包含主機名。

覆蓋:

類 Object 中的 toString

返回:

此對象的字符串表示形式。

equals

public final boolean equals(Object obj)

將此對象與指定對象進行比較。 當且僅當參數(shù)不為空并且它表示與此對象相同的地址時,結(jié)果才為真。

如果 InetAddresses(或主機名,如果它未解析)和端口號相等,則 InetSocketAddress 的兩個實例表示相同的地址。 如果兩個地址都未解析,則比較主機名和端口號。 注意:主機名不區(qū)分大小寫。 例如 "FooBar" 和 "foobar" 被認為是相等的。

覆蓋:

類 Object 中的等于

參數(shù):

參數(shù)名稱 參數(shù)描述
obj 要比較的對象。

返回:

如果對象相同,則為 true; 否則為false。

hashCode

public final int hashCode()

返回此套接字地址的哈希碼。

覆蓋:

類 Object 中的 hashCode

返回:

此套接字地址的哈希碼值。

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號