鴻蒙OS SocketImpl

2022-06-13 17:42 更新

SocketImpl

java.lang.Object

|---java.net.SocketImpl

public abstract class SocketImpl
extends Object
implements SocketOptions

抽象類(lèi) SocketImpl 是所有實(shí)際實(shí)現(xiàn)套接字的類(lèi)的公共超類(lèi)。 它用于創(chuàng)建客戶(hù)端和服務(wù)器套接字。

“普通”套接字完全按照描述實(shí)現(xiàn)這些方法,而不試圖通過(guò)防火墻或代理。

字段摘要

修飾符和類(lèi)型 字段 描述
protected InetAddress address 此套接字的遠(yuǎn)程端的 IP 地址。
protected FileDescriptor fd 此套接字的文件描述符對(duì)象。
protected int localport 此套接字連接到的本地端口號(hào)。
protected int port 此套接字連接到的遠(yuǎn)程主機(jī)上的端口號(hào)。
從接口 java.net.SocketOptions 繼承的字段
IP_MULTICAST_IF, IP_MULTICAST_IF2, IP_MULTICAST_LOOP, IP_TOS, SO_BINDADDR, SO_BROADCAST, SO_KEEPALIVE, SO_LINGER, SO_OOBINLINE, SO_RCVBUF, SO_REUSEADDR, SO_SNDBUF, SO_TIMEOUT, TCP_NODELAY

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

構(gòu)造函數(shù) 描述
SocketImpl()

方法總結(jié)

修飾符和類(lèi)型 方法 描述
protected abstract void accept(SocketImpl s) 接受連接。
protected abstract int available() 返回可以不阻塞地從此套接字讀取的字節(jié)數(shù)。
protected abstract void bind(InetAddress host, int port) 將此套接字綁定到指定的本地 IP 地址和端口號(hào)。
protected abstract void close() 關(guān)閉此套接字。
protected abstract void connect(String host, int port) 將此套接字連接到指定主機(jī)上的指定端口。
protected abstract void connect(InetAddress address, int port) 將此套接字連接到指定主機(jī)上的指定端口號(hào)。
protected abstract void connect(SocketAddress address, int timeout) 將此套接字連接到指定主機(jī)上的指定端口號(hào)。
protected abstract void create(boolean stream) 創(chuàng)建流或數(shù)據(jù)報(bào)套接字。
protected FileDescriptor getFileDescriptor() 返回此套接字的 fd 字段的值。
protected InetAddress getInetAddress() 返回此套接字的地址字段的值。
protected abstract InputStream getInputStream() 返回此套接字的輸入流。
protected int getLocalPort() 返回此套接字的 localport 字段的值。
protected abstract OutputStream getOutputStream() 返回此套接字的輸出流。
protected int getPort() 返回此套接字的端口字段的值。
protected abstract void listen(int backlog) 將傳入連接指示(連接請(qǐng)求)的最大隊(duì)列長(zhǎng)度設(shè)置為 count 參數(shù)。
protected abstract void sendUrgentData(int data) 在套接字上發(fā)送一個(gè)字節(jié)的緊急數(shù)據(jù)。
protected void setPerformancePreferences(int connectionTime, int latency, int bandwidth) 設(shè)置此套接字的性能首選項(xiàng)。
protected void shutdownInput() 將此套接字的輸入流放在“流的末尾”。
protected void shutdownOutput() 禁用此套接字的輸出流。
protected boolean supportsUrgentData() 返回此 SocketImpl 是否支持發(fā)送緊急數(shù)據(jù)。
String toString() 將此套接字的地址和端口作為字符串返回。
從類(lèi) java.lang.Object 繼承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
從接口 java.net.SocketOptions 繼承的方法
getOption, setOption

字段詳細(xì)信息

address

protected InetAddress address

此套接字的遠(yuǎn)程端的 IP 地址。

fd

protected FileDescriptor fd

此套接字的文件描述符對(duì)象。

localport

protected int localport

此套接字連接到的本地端口號(hào)。

port

protected int port

此套接字連接到的遠(yuǎn)程主機(jī)上的端口號(hào)。

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

SocketImpl

public SocketImpl()

方法詳情

create

protected abstract void create(boolean stream) throws IOException

創(chuàng)建流或數(shù)據(jù)報(bào)套接字。

參數(shù):

參數(shù)名稱(chēng) 參數(shù)描述
stream 如果為true,則創(chuàng)建一個(gè)流套接字; 否則,創(chuàng)建一個(gè)數(shù)據(jù)報(bào)套接字。

Throws:

Throw名稱(chēng) Throw描述
IOException 如果在創(chuàng)建套接字時(shí)發(fā)生 I/O 錯(cuò)誤。

connect

protected abstract void connect(String host, int port) throws IOException

將此套接字連接到指定主機(jī)上的指定端口。

參數(shù):

參數(shù)名稱(chēng) 參數(shù)描述
host 遠(yuǎn)程主機(jī)的名稱(chēng)。
port 端口號(hào)。

Throws:

Throw名稱(chēng) Throw描述
IOException 如果連接到遠(yuǎn)程主機(jī)時(shí)發(fā)生 I/O 錯(cuò)誤。

connect

protected abstract void connect(InetAddress address, int port) throws IOException

將此套接字連接到指定主機(jī)上的指定端口號(hào)。

參數(shù):

參數(shù)名稱(chēng) 參數(shù)描述
address 遠(yuǎn)程主機(jī)的 IP 地址。
port 端口號(hào)。

Throws:

Throw名稱(chēng) Throw描述
IOException 如果嘗試連接時(shí)發(fā)生 I/O 錯(cuò)誤。

connect

protected abstract void connect(SocketAddress address, int timeout) throws IOException

將此套接字連接到指定主機(jī)上的指定端口號(hào)。 超時(shí)為零被解釋為無(wú)限超時(shí)。 然后連接將阻塞,直到建立或發(fā)生錯(cuò)誤。

參數(shù):

參數(shù)名稱(chēng) 參數(shù)描述
address 遠(yuǎn)程主機(jī)的 Socket 地址。
timeout 超時(shí)值,以毫秒為單位,或者為零表示沒(méi)有超時(shí)。

Throws:

Throw名稱(chēng) Throw描述
IOException 如果嘗試連接時(shí)發(fā)生 I/O 錯(cuò)誤。

bind

protected abstract void bind(InetAddress host, int port) throws IOException

將此套接字綁定到指定的本地 IP 地址和端口號(hào)。

參數(shù):

參數(shù)名稱(chēng) 參數(shù)描述
host 屬于本地接口的 IP 地址。
port 端口號(hào)。

Throws:

Throw名稱(chēng) Throw描述
IOException 如果綁定此套接字時(shí)發(fā)生 I/O 錯(cuò)誤。

listen

protected abstract void listen(int backlog) throws IOException

將傳入連接指示(連接請(qǐng)求)的最大隊(duì)列長(zhǎng)度設(shè)置為 count 參數(shù)。 如果隊(duì)列已滿(mǎn)時(shí)連接指示到達(dá),則拒絕連接。

參數(shù):

參數(shù)名稱(chēng) 參數(shù)描述
backlog 隊(duì)列的最大長(zhǎng)度。

Throws:

Throw名稱(chēng) Throw描述
IOException 如果在創(chuàng)建隊(duì)列時(shí)發(fā)生 I/O 錯(cuò)誤。

accept

protected abstract void accept(SocketImpl s) throws IOException

接受連接。

參數(shù):

參數(shù)名稱(chēng) 參數(shù)描述
s 接受的連接。

Throws:

Throw名稱(chēng) Throw描述
IOException 如果在接受連接時(shí)發(fā)生 I/O 錯(cuò)誤。

getInputStream

protected abstract InputStream getInputStream() throws IOException

返回此套接字的輸入流。

返回:

用于從此套接字讀取的流。

Throws:

Throw名稱(chēng) Throw描述
IOException 如果在創(chuàng)建輸入流時(shí)發(fā)生 I/O 錯(cuò)誤。

getOutputStream

protected abstract OutputStream getOutputStream() throws IOException

返回此套接字的輸出流。

返回:

用于寫(xiě)入此套接字的輸出流。

Throws:

Throw名稱(chēng) Throw描述
IOException 如果在創(chuàng)建輸出流時(shí)發(fā)生 I/O 錯(cuò)誤。

available

protected abstract int available() throws IOException

返回可以不阻塞地從此套接字讀取的字節(jié)數(shù)。

返回:

可以不阻塞地從此套接字讀取的字節(jié)數(shù)。

Throws:

Throw名稱(chēng) Throw描述
IOException 如果在確定可用字節(jié)數(shù)時(shí)發(fā)生 I/O 錯(cuò)誤。

close

protected abstract void close() throws IOException

關(guān)閉此套接字。

Throws:

Throw名稱(chēng) Throw描述
IOException 如果關(guān)閉此套接字時(shí)發(fā)生 I/O 錯(cuò)誤。

shutdownInput

protected void shutdownInput() throws IOException

將此套接字的輸入流放在“流的末尾”。 發(fā)送到此套接字的任何數(shù)據(jù)都會(huì)得到確認(rèn),然后被靜默丟棄。 如果在套接字上調(diào)用此方法后從套接字輸入流中讀取,則流的可用方法將返回 0,其讀取方法將返回 -1(流結(jié)束)。

Throws:

Throw名稱(chēng) Throw描述
IOException 如果關(guān)閉此套接字時(shí)發(fā)生 I/O 錯(cuò)誤。

shutdownOutput

protected void shutdownOutput() throws IOException

禁用此套接字的輸出流。 對(duì)于 TCP 套接字,任何先前寫(xiě)入的數(shù)據(jù)都將按照 TCP 的正常連接終止順序發(fā)送。 如果在套接字上調(diào)用 shutdownOutput() 后寫(xiě)入套接字輸出流,則該流將引發(fā) IOException。

Throws:

Throw名稱(chēng) Throw描述
IOException 如果關(guān)閉此套接字時(shí)發(fā)生 I/O 錯(cuò)誤。

getFileDescriptor

protected FileDescriptor getFileDescriptor()

返回此套接字的 fd 字段的值。

返回:

此套接字的 fd 字段的值。

getInetAddress

protected InetAddress getInetAddress()

返回此套接字的地址字段的值。

返回:

此套接字的地址字段的值。

getPort

protected int getPort()

返回此套接字的端口字段的值。

返回:

此套接字的端口字段的值。

supportsUrgentData

protected boolean supportsUrgentData()

返回此 SocketImpl 是否支持發(fā)送緊急數(shù)據(jù)。 默認(rèn)情況下,除非在子類(lèi)中重寫(xiě)該方法,否則返回 false

返回:

如果支持緊急數(shù)據(jù),則為true

sendUrgentData

protected abstract void sendUrgentData(int data) throws IOException

在套接字上發(fā)送一個(gè)字節(jié)的緊急數(shù)據(jù)。 要發(fā)送的字節(jié)是參數(shù)的低八位

參數(shù):

參數(shù)名稱(chēng) 參數(shù)描述
data 要發(fā)送的數(shù)據(jù)字節(jié)

Throws:

Throw名稱(chēng) Throw描述
IOException 如果發(fā)送數(shù)據(jù)時(shí)出錯(cuò)。

getLocalPort

protected int getLocalPort()

返回此套接字的 localport 字段的值。

返回:

此套接字的 localport 字段的值。

toString

public String toString()

將此套接字的地址和端口作為字符串返回。

覆蓋:

類(lèi) Object 中的 toString

返回:

此套接字的字符串表示形式。

setPerformancePreferences

protected void setPerformancePreferences(int connectionTime, int latency, int bandwidth)

設(shè)置此套接字的性能首選項(xiàng)。

套接字默認(rèn)使用 TCP/IP 協(xié)議。一些實(shí)現(xiàn)可能會(huì)提供與 TCP/IP 具有不同性能特征的替代協(xié)議。此方法允許應(yīng)用程序表達(dá)自己的偏好,即當(dāng)實(shí)現(xiàn)從可用協(xié)議中進(jìn)行選擇時(shí)應(yīng)如何進(jìn)行這些權(quán)衡。

性能偏好由三個(gè)整數(shù)描述,其值表示短連接時(shí)間、低延遲和高帶寬的相對(duì)重要性。整數(shù)的絕對(duì)值無(wú)關(guān)緊要;為了選擇一個(gè)協(xié)議,這些值被簡(jiǎn)單地比較,較大的值表示更強(qiáng)的偏好。負(fù)值表示比正值低的優(yōu)先級(jí)。例如,如果應(yīng)用程序更喜歡短連接時(shí)間而不是低延遲和高帶寬,那么它可以使用值 (1, 0, 0) 調(diào)用此方法。如果應(yīng)用程序更喜歡高帶寬而不是低延遲,以及低延遲而不是短連接時(shí)間,那么它可以使用值 (0, 1, 2) 調(diào)用此方法。默認(rèn)情況下,此方法什么也不做,除非它在子類(lèi)中被覆蓋。

參數(shù):

參數(shù)名稱(chēng) 參數(shù)描述
connectionTime 表示短連接時(shí)間的相對(duì)重要性的 int
latency 一個(gè)表示低延遲相對(duì)重要性的 int
bandwidth 表示高帶寬相對(duì)重要性的 int
以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)