SocketOptionName 列舉
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
定義組態選項名稱。
public enum class SocketOptionName
public enum SocketOptionName
type SocketOptionName =
Public Enum SocketOptionName
- 繼承
欄位
AcceptConnection | 2 | 套接字正在接聽。 |
AddMembership | 12 | 新增IP群組成員資格。 |
AddSourceMembership | 15 | 加入來源群組。 |
BlockSource | 17 | 封鎖來自來源的數據。 |
Broadcast | 32 | 允許在套接字上傳送廣播訊息。 |
BsdUrgent | 2 | 使用 RFC-1222 中所定義的緊急數據。 此選項只能設定一次;設定之後,就無法關閉。 |
ChecksumCoverage | 20 | 設定或取得UDP總和檢查碼涵蓋範圍。 |
Debug | 1 | 記錄偵錯資訊。 |
DontFragment | 14 | 請勿片段 IP 數據報。 |
DontLinger | -129 | 正常關閉套接字而不揮之不去。 |
DontRoute | 16 | 不要路由;將封包直接傳送至介面位址。 |
DropMembership | 13 | 卸除IP群組成員資格。 |
DropSourceMembership | 16 | 卸除來源群組。 |
Error | 4103 | 取得錯誤狀態並清除。 |
ExclusiveAddressUse | -5 | 可讓套接字系結以進行獨佔存取。 |
Expedited | 2 | 使用 RFC-1222 中所定義的加速數據。 此選項只能設定一次;設定之後,就無法關閉。 |
FastOpen | 15 | 啟用如 RFC-7413 中所定義的 TCP 快速開啟。 實際觀察到的行為取決於 OS 組態和核心 TCP Cookie 快取的狀態。 啟用 TFO 可能會影響互操作性,並造成連線問題。 |
HeaderIncluded | 2 | 指出應用程式會提供傳出數據報的IP標頭。 |
HopLimit | 21 | 指定因特網通訊協定第 6 版 (IPv6) 封包的路由器躍點數目上限。 這類似於因特網通訊協定第 4 版的存留時間(TTL)。 |
IPOptions | 1 | 指定要插入傳出數據報的IP選項。 |
IPProtectionLevel | 23 | 允許將 IPv6 套接字限制為指定的範圍,例如具有相同連結本機或網站本機前置詞的位址。 此套接字選項可讓應用程式對IPv6套接字放置存取限制。 這類限制可讓在私人 LAN 上執行的應用程式,針對外部攻擊簡單且強固地強化本身。 此套接字選項會擴大或縮小接聽套接字的範圍、適當時從公用和私人用戶啟用不受限制的存取,或視需要限制對相同網站的存取。 這個套接字選項已定義 IPProtectionLevel 列舉中指定的保護層級。 |
IpTimeToLive | 4 | 設定 [IP 標頭存留時間] 欄位。 |
IPv6Only | 27 | 指出為AF_INET6位址系列建立的套接字是否僅限於IPv6通訊。 針對AF_INET6位址系列建立的套接字可用於IPv6和IPv4通訊。 某些應用程式可能會想要將針對AF_INET6位址系列所建立的套接字使用限制為僅限 IPv6 通訊。 當此值不是零時(Windows 上的預設值),針對AF_INET6位址系列建立的套接字只能用來傳送和接收 IPv6 封包。 當此值為零時,針對AF_INET6位址系列建立的套接字可用來傳送和接收IPv6位址或IPv4位址的封包。 請注意,與IPv4位址互動的能力需要使用IPv4對應位址。 Windows Vista 或更新版本支援此套接字選項。 |
KeepAlive | 8 | 使用keep-alives。 |
Linger | 128 | 如果有未傳送的數據,則會在關閉時揮之不去。 |
MaxConnections | 2147483647 | 不支援;如果使用 ,則會擲回 SocketException。 |
MulticastInterface | 9 | 設定傳出多播封包的介面。 |
MulticastLoopback | 11 | IP 多播回送。 |
MulticastTimeToLive | 10 | IP 多播存留時間。 |
NoChecksum | 1 | 將總和檢查碼設定為零的 UDP 數據報傳送。 |
NoDelay | 1 | 停用用於傳送聯合的 Nagle 演算法。 |
OutOfBandInline | 256 | 在一般數據流中接收頻外數據。 |
PacketInformation | 19 | 傳回已接收封包的相關信息。 |
ReceiveBuffer | 4098 | 指定保留給接收的每個套接字緩衝區空間總計。 這與訊息大小上限或 TCP 視窗的大小無關。 |
ReceiveLowWater | 4100 | 指定 Receive 作業的低水位標記。 |
ReceiveTimeout | 4102 | 收到逾時。此選項僅適用於同步方法;它不會影響異步方法,例如 BeginSend(Byte[], Int32, Int32, SocketFlags, AsyncCallback, Object) 方法。 |
ReuseAddress | 4 | 允許套接字系結至已使用中的位址。 |
ReuseUnicastPort | 12295 | 表示系統應該延遲輸出連線的暫時埠配置。 這相當於使用 Winsock2 SO_REUSE_UNICASTPORT 套接字選項。 |
SendBuffer | 4097 | 指定保留給傳送的每個套接字緩衝區空間總計。 這與訊息大小上限或 TCP 視窗的大小無關。 |
SendLowWater | 4099 | 指定 Send 作業的低水位標記。 |
SendTimeout | 4101 | 傳送逾時。此選項僅適用於同步方法;它不會影響異步方法,例如 BeginSend(Byte[], Int32, Int32, SocketFlags, AsyncCallback, Object) 方法。 |
TcpKeepAliveInterval | 17 | TCP 連線在傳送另一個保留探查之前,會等候保留回應的秒數。 |
TcpKeepAliveRetryCount | 16 | 在終止連線之前,將會傳送的 TCP 保持運作探查數目。 |
TcpKeepAliveTime | 3 | TCP 連線在傳送至遠端之前,TCP 聯機會保持運作/閑置的秒數。 |
Type | 4104 | 取得套接字類型。 |
TypeOfService | 3 | 變更服務欄位的IP標頭類型。 |
UnblockSource | 18 | 解除封鎖先前封鎖的來源。 |
UpdateAcceptContext | 28683 | 使用現有套接字的屬性來更新接受的套接字屬性。 這相當於使用 Winsock2 SO_UPDATE_ACCEPT_CONTEXT 套接字選項,而且僅支援連線導向套接字。 |
UpdateConnectContext | 28688 | 使用現有套接字的屬性來更新連線的套接字屬性。 這相當於使用 Winsock2 SO_UPDATE_CONNECT_CONTEXT 套接字選項,而且僅支援連線導向套接字。 |
UseLoopback | 64 | 盡可能略過硬體。 |
範例
下列程式代碼範例會使用此列舉來設定套接字選項。
// Specifies that the Socket will linger for 10 seconds after Close is called.
LingerOption^ lingerOption = gcnew LingerOption(true, 10);
s->SetSocketOption(SocketOptionLevel::Socket, SocketOptionName::Linger, lingerOption);
// The socket will linger for 10 seconds after Socket.Close is called.
var lingerOption = new LingerOption(true, 10);
s.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.Linger, lingerOption);
' The socket will linger for 10 seconds after Socket.Close is called.
Dim lingerOption As New LingerOption(True, 10)
s.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.Linger, lingerOption)
備註
SocketOptionName 列舉會定義每個 Socket 組態選項的名稱。 您可以使用 Socket.SetSocketOption 方法來設定套接字。