W3Cschool
恭喜您成為首批注冊(cè)用戶(hù)
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
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ù) | 描述 |
---|---|
SocketImpl() |
修飾符和類(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 |
protected InetAddress address
此套接字的遠(yuǎn)程端的 IP 地址。
protected FileDescriptor fd
此套接字的文件描述符對(duì)象。
protected int localport
此套接字連接到的本地端口號(hào)。
protected int port
此套接字連接到的遠(yuǎn)程主機(jī)上的端口號(hào)。
public SocketImpl()
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ò)誤。 |
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ò)誤。 |
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ò)誤。 |
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ò)誤。 |
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ò)誤。 |
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ò)誤。 |
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ò)誤。 |
protected abstract InputStream getInputStream() throws IOException
返回此套接字的輸入流。
返回:
用于從此套接字讀取的流。
Throws:
Throw名稱(chēng) | Throw描述 |
---|---|
IOException | 如果在創(chuàng)建輸入流時(shí)發(fā)生 I/O 錯(cuò)誤。 |
protected abstract OutputStream getOutputStream() throws IOException
返回此套接字的輸出流。
返回:
用于寫(xiě)入此套接字的輸出流。
Throws:
Throw名稱(chēng) | Throw描述 |
---|---|
IOException | 如果在創(chuàng)建輸出流時(shí)發(fā)生 I/O 錯(cuò)誤。 |
protected abstract int available() throws IOException
返回可以不阻塞地從此套接字讀取的字節(jié)數(shù)。
返回:
可以不阻塞地從此套接字讀取的字節(jié)數(shù)。
Throws:
Throw名稱(chēng) | Throw描述 |
---|---|
IOException | 如果在確定可用字節(jié)數(shù)時(shí)發(fā)生 I/O 錯(cuò)誤。 |
protected abstract void close() throws IOException
關(guān)閉此套接字。
Throws:
Throw名稱(chēng) | Throw描述 |
---|---|
IOException | 如果關(guān)閉此套接字時(shí)發(fā)生 I/O 錯(cuò)誤。 |
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ò)誤。 |
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ò)誤。 |
protected FileDescriptor getFileDescriptor()
返回此套接字的 fd 字段的值。
返回:
此套接字的 fd 字段的值。
protected InetAddress getInetAddress()
返回此套接字的地址字段的值。
返回:
此套接字的地址字段的值。
protected int getPort()
返回此套接字的端口字段的值。
返回:
此套接字的端口字段的值。
protected boolean supportsUrgentData()
返回此 SocketImpl 是否支持發(fā)送緊急數(shù)據(jù)。 默認(rèn)情況下,除非在子類(lèi)中重寫(xiě)該方法,否則返回 false
返回:
如果支持緊急數(shù)據(jù),則為true
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ò)。 |
protected int getLocalPort()
返回此套接字的 localport 字段的值。
返回:
此套接字的 localport 字段的值。
public String toString()
將此套接字的地址和端口作為字符串返回。
覆蓋:
類(lèi) Object 中的 toString
返回:
此套接字的字符串表示形式。
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 |
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: