W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
java.lang.Object
|---java.net.StandardSocketOptions
public final class StandardSocketOptions
extends Object
定義標(biāo)準(zhǔn)套接字選項(xiàng)。
此類定義的每個(gè)套接字選項(xiàng)的 SocketOption#name 是其字段名稱。
在此版本中,此處定義的套接字選項(xiàng)由 channels 包中的網(wǎng)絡(luò)通道使用。
修飾符和類型 | 字段 | 描述 |
---|---|---|
static SocketOptionNetworkInterface | IP_MULTICAST_IF | Internet 協(xié)議 (IP) 多播數(shù)據(jù)報(bào)的網(wǎng)絡(luò)接口。 |
static SocketOptionBoolean | IP_MULTICAST_LOOP | Internet 協(xié)議 (IP) 多播數(shù)據(jù)報(bào)的環(huán)回。 |
static SocketOptionInteger | IP_MULTICAST_TTL | Internet 協(xié)議 (IP) 多播數(shù)據(jù)報(bào)的time-to-live。 |
static SocketOptionInteger | IP_TOS | Internet 協(xié)議 (IP) 標(biāo)頭中的服務(wù)類型 (ToS) 八位字節(jié)。 |
static SocketOptionBoolean | SO_BROADCAST | 允許傳輸廣播數(shù)據(jù)報(bào)。 |
static SocketOptionBoolean | SO_KEEPALIVE | 保持連接活躍。 |
static SocketOptionInteger | SO_LINGER | 如果存在數(shù)據(jù),則在關(guān)閉時(shí)逗留。 |
static SocketOptionInteger | SO_RCVBUF | 套接字接收緩沖區(qū)的大小。 |
static SocketOptionBoolean | SO_REUSEADDR | 重用地址。 |
static SocketOptionInteger | SO_SNDBUF | 套接字發(fā)送緩沖區(qū)的大小。 |
static SocketOptionBoolean | TCP_NODELAY | 禁用 Nagle 算法。 |
從類 java.lang.Object 繼承的方法 |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
public static final SocketOptionNetworkInterface IP_MULTICAST_IF
Internet 協(xié)議 (IP) 多播數(shù)據(jù)報(bào)的網(wǎng)絡(luò)接口。
此套接字選項(xiàng)的值是一個(gè) NetworkInterface,它表示由面向數(shù)據(jù)報(bào)的套接字發(fā)送的多播數(shù)據(jù)報(bào)的傳出接口。 對(duì)于 StandardProtocolFamily#INET6 套接字,設(shè)置此選項(xiàng)是否還設(shè)置發(fā)送到 IPv4 地址的多播數(shù)據(jù)報(bào)的傳出接口取決于系統(tǒng)。
此套接字選項(xiàng)的初始/默認(rèn)值可能為空,表示操作系統(tǒng)將選擇傳出接口,通?;诰W(wǎng)絡(luò)路由表。 一個(gè)實(shí)現(xiàn)允許在綁定套接字之后設(shè)置此套接字選項(xiàng)。 在綁定套接字之前是否可以查詢或更改套接字選項(xiàng)取決于系統(tǒng)。
public static final SocketOptionBoolean IP_MULTICAST_LOOP
Internet 協(xié)議 (IP) 多播數(shù)據(jù)報(bào)的環(huán)回。
此套接字選項(xiàng)的值是一個(gè)布爾值,用于控制多播數(shù)據(jù)報(bào)的環(huán)回。 套接字選項(xiàng)的值表示該選項(xiàng)是啟用還是禁用。
此套接字選項(xiàng)的確切語義取決于系統(tǒng)。 特別是,環(huán)回是否適用于從套接字發(fā)送或由套接字接收的多播數(shù)據(jù)報(bào)取決于系統(tǒng)。 對(duì)于 StandardProtocolFamily#INET6 套接字,該選項(xiàng)是否也適用于發(fā)送到 IPv4 地址的多播數(shù)據(jù)報(bào)取決于系統(tǒng)。
此套接字選項(xiàng)的初始/默認(rèn)值為 TRUE。 一個(gè)實(shí)現(xiàn)允許在綁定套接字之后設(shè)置此套接字選項(xiàng)。 在綁定套接字之前是否可以查詢或更改套接字選項(xiàng)取決于系統(tǒng)。
public static final SocketOptionInteger IP_MULTICAST_TTL
Internet 協(xié)議 (IP) 多播數(shù)據(jù)報(bào)的time-to-live。
這個(gè)socket選項(xiàng)的值是一個(gè)0 <= value <= 255范圍內(nèi)的Integer,用來控制面向數(shù)據(jù)報(bào)的socket發(fā)送的組播數(shù)據(jù)報(bào)的范圍。在 StandardProtocolFamily#INET 套接字的情況下,該選項(xiàng)是套接字發(fā)送的多播數(shù)據(jù)報(bào)的生存時(shí)間 (TTL)。 TTL 為零的數(shù)據(jù)報(bào)不在網(wǎng)絡(luò)上傳輸,但可以在本地傳送。在 StandardProtocolFamily#INET6 套接字的情況下,該選項(xiàng)是跳數(shù)限制,即數(shù)據(jù)報(bào)在網(wǎng)絡(luò)上過期之前可以通過的跳數(shù)。對(duì)于 IPv6 套接字,該選項(xiàng)是否還設(shè)置發(fā)送到 IPv4 地址的多播數(shù)據(jù)報(bào)的生存時(shí)間取決于系統(tǒng)。
生存時(shí)間設(shè)置的初始/默認(rèn)值通常為 1。實(shí)現(xiàn)允許在綁定套接字后設(shè)置此套接字選項(xiàng)。在綁定套接字之前是否可以查詢或更改套接字選項(xiàng)取決于系統(tǒng)。
public static final SocketOptionInteger IP_TOS
Internet 協(xié)議 (IP) 標(biāo)頭中的服務(wù)類型 (ToS) 八位字節(jié)。
此套接字選項(xiàng)的值是一個(gè)整數(shù),表示由套接字發(fā)送到 StandardProtocolFamily#INET 套接字的 IP 數(shù)據(jù)包中 ToS 八位字節(jié)的值。 ToS 八位字節(jié)的解釋是特定于網(wǎng)絡(luò)的,并且未由此類定義。關(guān)于 ToS 八位字節(jié)的更多信息可以在 RFC 1349 和 RFC 2474 中找到。套接字選項(xiàng)的值是一個(gè)提示。實(shí)現(xiàn)可能會(huì)忽略該值,或忽略特定值。
ToS 字節(jié)中 TOS 字段的初始/默認(rèn)值是特定于實(shí)現(xiàn)的,但通常為 0。對(duì)于面向數(shù)據(jù)報(bào)的套接字,可以在綁定套接字后的任何時(shí)間配置該選項(xiàng)。發(fā)送后續(xù)數(shù)據(jù)報(bào)時(shí)使用八位字節(jié)的新值。在綁定套接字之前是否可以查詢或更改此選項(xiàng)取決于系統(tǒng)。
此版本中未定義此套接字選項(xiàng)在面向流的套接字或 StandardProtocolFamily#INET6 套接字上的行為。
public static final SocketOptionBoolean SO_BROADCAST
允許傳輸廣播數(shù)據(jù)報(bào)。
此套接字選項(xiàng)的值是一個(gè)布爾值,表示該選項(xiàng)是啟用還是禁用。 該選項(xiàng)特定于發(fā)送到 IPv4 廣播地址的面向數(shù)據(jù)報(bào)的套接字。 當(dāng)啟用套接字選項(xiàng)時(shí),套接字可用于發(fā)送廣播數(shù)據(jù)報(bào)。
此套接字選項(xiàng)的初始值為 FALSE。 可以隨時(shí)啟用或禁用套接字選項(xiàng)。 某些操作系統(tǒng)可能要求以實(shí)現(xiàn)特定權(quán)限啟動(dòng) Java 虛擬機(jī)以啟用此選項(xiàng)或發(fā)送廣播數(shù)據(jù)報(bào)。
public static final SocketOptionBoolean SO_KEEPALIVE
保持連接活躍。
此套接字選項(xiàng)的值是一個(gè)布爾值,表示該選項(xiàng)是啟用還是禁用。 當(dāng)啟用 SO_KEEPALIVE 選項(xiàng)時(shí),操作系統(tǒng)可以使用保持活動(dòng)機(jī)制來定期探測(cè)連接的另一端,而此時(shí)連接處于空閑狀態(tài)。 保活機(jī)制的確切語義取決于系統(tǒng),因此未指定。
此套接字選項(xiàng)的初始值為 FALSE。 可以隨時(shí)啟用或禁用套接字選項(xiàng)。
public static final SocketOptionInteger SO_LINGER
如果存在數(shù)據(jù),則在關(guān)閉時(shí)逗留。
這個(gè)套接字選項(xiàng)的值是一個(gè)整數(shù),它控制當(dāng)未發(fā)送的數(shù)據(jù)在套接字上排隊(duì)并調(diào)用關(guān)閉套接字的方法時(shí)所采取的操作。如果套接字選項(xiàng)的值為零或更大,則它表示超時(shí)值,以秒為單位,稱為延遲間隔。延遲間隔是關(guān)閉方法在操作系統(tǒng)嘗試傳輸未發(fā)送的數(shù)據(jù)或它決定無法傳輸數(shù)據(jù)時(shí)阻塞的超時(shí)時(shí)間。如果套接字選項(xiàng)的值小于零,則該選項(xiàng)被禁用。在這種情況下,close 方法不會(huì)等到傳輸未發(fā)送的數(shù)據(jù);如果可能,操作系統(tǒng)將在連接關(guān)閉之前傳輸任何未發(fā)送的數(shù)據(jù)。
此套接字選項(xiàng)僅用于在阻塞模式下配置的套接字。未定義在非阻塞套接字上啟用此選項(xiàng)時(shí)關(guān)閉方法的行為。
此套接字選項(xiàng)的初始值為負(fù)值,表示該選項(xiàng)被禁用??梢噪S時(shí)啟用該選項(xiàng)或更改逗留間隔。逗留間隔的最大值取決于系統(tǒng)。將延遲間隔設(shè)置為大于其最大值的值會(huì)導(dǎo)致延遲間隔設(shè)置為其最大值。
public static final SocketOptionInteger SO_RCVBUF
套接字接收緩沖區(qū)的大小。
此套接字選項(xiàng)的值是一個(gè)整數(shù),它是套接字接收緩沖區(qū)的大?。ㄒ宰止?jié)為單位)。套接字接收緩沖區(qū)是網(wǎng)絡(luò)實(shí)現(xiàn)使用的輸入緩沖區(qū)。對(duì)于大容量連接,可能需要增加或減少以限制傳入數(shù)據(jù)的可能積壓。 socket 選項(xiàng)的值是實(shí)現(xiàn)緩沖區(qū)大小的提示,實(shí)際大小可能不同。
對(duì)于面向數(shù)據(jù)報(bào)的套接字,接收緩沖區(qū)的大小可能會(huì)限制可以接收的數(shù)據(jù)報(bào)的大小。是否可以接收大于緩沖區(qū)大小的數(shù)據(jù)報(bào)取決于系統(tǒng)。對(duì)于數(shù)據(jù)報(bào)以突發(fā)方式到達(dá)的速度快于處理速度的情況,增加套接字接收緩沖區(qū)可能很重要。
在面向流的套接字和 TCP/IP 協(xié)議的情況下,當(dāng)向遠(yuǎn)程對(duì)等方通告 TCP 接收窗口的大小時(shí),可以使用套接字接收緩沖區(qū)的大小。
套接字接收緩沖區(qū)的初始/默認(rèn)大小和允許值的范圍取決于系統(tǒng),盡管不允許使用負(fù)大小。嘗試將套接字接收緩沖區(qū)設(shè)置為大于其最大大小會(huì)導(dǎo)致其設(shè)置為最大大小。
實(shí)現(xiàn)允許在綁定或連接套接字之前設(shè)置此套接字選項(xiàng)。實(shí)現(xiàn)是否允許在綁定套接字后更改套接字接收緩沖區(qū)取決于系統(tǒng)。
public static final SocketOptionBoolean SO_REUSEADDR
重用地址。
此套接字選項(xiàng)的值是一個(gè)布爾值,表示該選項(xiàng)是啟用還是禁用。此套接字選項(xiàng)的確切語義取決于套接字類型和系統(tǒng)。
在面向流的套接字的情況下,此套接字選項(xiàng)通常將確定當(dāng)涉及該套接字地址的先前連接處于 TIME_WAIT 狀態(tài)時(shí),該套接字是否可以綁定到該套接字地址。在語義不同的實(shí)現(xiàn)上,并且當(dāng)先前的連接處于此狀態(tài)時(shí),不需要啟用套接字選項(xiàng)以綁定套接字,則實(shí)現(xiàn)可以選擇忽略此選項(xiàng)。
對(duì)于面向數(shù)據(jù)報(bào)的套接字,套接字選項(xiàng)用于允許多個(gè)程序綁定到同一個(gè)地址。當(dāng)套接字用于 Internet 協(xié)議 (IP) 多播時(shí),應(yīng)啟用此選項(xiàng)。
實(shí)現(xiàn)允許在綁定或連接套接字之前設(shè)置此套接字選項(xiàng)。綁定套接字后更改此套接字選項(xiàng)的值無效。此套接字選項(xiàng)的默認(rèn)值取決于系統(tǒng)。
public static final SocketOptionInteger SO_SNDBUF
套接字發(fā)送緩沖區(qū)的大小。
此套接字選項(xiàng)的值是一個(gè)整數(shù),它是套接字發(fā)送緩沖區(qū)的大?。ㄒ宰止?jié)為單位)。套接字發(fā)送緩沖區(qū)是網(wǎng)絡(luò)實(shí)現(xiàn)使用的輸出緩沖區(qū)。對(duì)于大容量連接,可能需要增加它。 socket 選項(xiàng)的值是實(shí)現(xiàn)緩沖區(qū)大小的提示,實(shí)際大小可能不同。可以查詢套接字選項(xiàng)以檢索實(shí)際大小。
對(duì)于面向數(shù)據(jù)報(bào)的套接字,發(fā)送緩沖區(qū)的大小可能會(huì)限制套接字可能發(fā)送的數(shù)據(jù)報(bào)的大小。是否發(fā)送或丟棄大于緩沖區(qū)大小的數(shù)據(jù)報(bào)取決于系統(tǒng)。
套接字發(fā)送緩沖區(qū)的初始/默認(rèn)大小和允許值的范圍取決于系統(tǒng),盡管不允許使用負(fù)大小。嘗試將套接字發(fā)送緩沖區(qū)設(shè)置為大于其最大大小會(huì)導(dǎo)致其設(shè)置為最大大小。
實(shí)現(xiàn)允許在綁定或連接套接字之前設(shè)置此套接字選項(xiàng)。實(shí)現(xiàn)是否允許在綁定套接字后更改套接字發(fā)送緩沖區(qū)取決于系統(tǒng)。
public static final SocketOptionBoolean TCP_NODELAY
禁用 Nagle 算法。
此套接字選項(xiàng)的值是一個(gè)布爾值,表示該選項(xiàng)是啟用還是禁用。 套接字選項(xiàng)特定于使用 TCP/IP 協(xié)議的面向流的套接字。 TCP/IP 使用一種稱為 Nagle 算法的算法來合并短段并提高網(wǎng)絡(luò)效率。
此套接字選項(xiàng)的默認(rèn)值為 FALSE。 只有在已知合并會(huì)影響性能的情況下才應(yīng)啟用套接字選項(xiàng)。 可以隨時(shí)啟用套接字選項(xiàng)。 換句話說,可以禁用 Nagle 算法。 啟用該選項(xiàng)后,是否可以隨后禁用它取決于系統(tǒng)。 如果不能,則調(diào)用 setOption 方法禁用該選項(xiàng)無效。
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)系方式:
更多建議: