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 中定義的已傳輸資料。 這個選項只能設定一次,一旦設定就無法關閉。 |
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-Alive。 |
Linger | 128 | 如果有未傳送的資料,則延遲關閉。 |
MaxConnections | 2147483647 | 不支援,如果使用則會擲回 SocketException。 |
MulticastInterface | 9 | 設定用於輸出多點傳送封包的介面。 |
MulticastLoopback | 11 | IP 多點傳送回送。 |
MulticastTimeToLive | 10 | IP 多點傳送存留時間。 |
NoChecksum | 1 | 在總和檢查碼設定為零的情況下傳送 UDP 資料包。 |
NoDelay | 1 | 停用用於傳送聯合的 Nagle 演算法。 |
OutOfBandInline | 256 | 在一般資料流中接收頻外 (Out-of-Band) 資料。 |
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 連線將保持運作/閒置的秒數。 |
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 send operations will time-out
// if confirmation is not received within 1000 milliseconds.
s->SetSocketOption( SocketOptionLevel::Socket, SocketOptionName::SendTimeout, 1000 );
// 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 );
// Send operations will time-out if confirmation
// is not received within 1000 milliseconds.
s.SetSocketOption (SocketOptionLevel.Socket, SocketOptionName.SendTimeout, 1000);
// The socket will linger for 10 seconds after Socket.Close is called.
LingerOption lingerOption = new LingerOption (true, 10);
s.SetSocketOption (SocketOptionLevel.Socket, SocketOptionName.Linger, lingerOption);
'Send operations will time-out if confirmation is
' not received within 1000 milliseconds.
s.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.SendTimeout, 1000)
' 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 設定。