IPPROTO_TCP 通訊端選項
下表說明 IPPROTO_TCP套 用至針對 IPv4 和 IPv6 位址系列 (AF_INET 和 AF_INET6) 所建立之套接字的套接字選項,並將 通訊協定 參數套用至指定為 TCP (IPPROTO_TCP) 的 套接字 函式。 如需取得和設定套接字選項的詳細資訊,請參閱 getsockopt 和 setsockopt 函式參考頁面。
若要列舉每個已安裝通訊協定的通訊協定和探索支援的屬性,請使用WSAEnumProtocols、WSCEnumProtocols 或 WSCEnumProtocols32 函式。
選項。
選項 | 取得 Yammer | 設定 | Optval 類型 | 描述 |
---|---|---|---|---|
TCP_BSDURGENT | 是 | 是 | DWORD (布爾值) | 如果 為 TRUE,服務提供者會實作 Berkeley Software Distribution (BSD) 樣式 (預設值)來處理加速數據。 此選項是 TCP_EXPEDITED_1122 選項的反函數。 此選項只能在連線上設定一次。 設定此選項之後,就無法關閉此選項。 服務提供者不需要這個選項即可實作。 默認會啟用此選項(設定為 TRUE)。 |
TCP_EXPEDITED_1122 | 是 | 是 | DWORD (布爾值) | 如果 為 TRUE,服務提供者會實作 RFC-1222 中指定的加速數據。 否則,會使用 Berkeley Software Distribution (BSD) 樣式 (預設值)。 此選項只能在連線上設定一次。 設定此選項之後,就無法關閉此選項。 服務提供者不需要這個選項即可實作。 |
TCP_FAIL_CONNECT_ON_ICMP_ERROR | 是 | 是 | DWORD (布爾值) | 如果 為TRUE,連線 API 呼叫會在收到具有值 WSAEHOSTUNREACH 的ICMP錯誤時傳回。 然後,錯誤的來源位址將可透過 [TCP_ICMP_ERROR_INFO 套接字] 選項取得。 如果 為 FALSE,則套接字的行為正常。 預設值為停用(設為 FALSE)。 針對類型安全性,您應該使用 WSAGetFailConnectOnIcmpError 和 WSASetFailConnectOnIcmpError 函式,而不是直接使用套接字選項。 |
TCP_ICMP_ERROR_INFO | 是 | 否 | ICMP_ERROR_INFO | 擷取 TCP 套接字在失敗連線話期間收到的 ICMP 錯誤資訊。 只有在先前已啟用TCP_FAIL_CONNECT_ON_ICMP_ERROR的 TCP 套接字上才有效,且 連線 已傳回 WSAEHOSTUNREACH。 查詢未封鎖。 如果查詢成功,且傳回的 optlen 值為 0,則自上次連接呼叫後未收到 ICMP 錯誤。 如果收到ICMP錯誤,則會提供其資訊,直到 再次呼叫連線 為止。 資訊會以 ICMP_ERROR_INFO 結構的形式傳回。 針對類型安全性,您應該使用 WSAGetIcmpErrorInfo 函式,而不是直接使用套接字選項。 |
TCP_KEEPCNT | 是 | 是 | 下載 | 取得或設定將在連接終止之前傳送的 TCP 保持運作探查數目。 將TCP_KEEPCNT設定為大於 255 的值是非法的。 |
TCP_MAXRT | 是 | 是 | 下載 | 如果此值為非負數,表示所需的連線逾時,以秒為單位。 如果是 -1,則代表停用連線逾時的要求(亦即連接將永遠重新傳輸)。 如果已停用聯機逾時,重新傳輸逾時會針對每個重新傳輸以指數方式增加,上限為 60 秒,然後維持在該處。 |
TCP_NODELAY | 是 | 是 | DWORD (布爾值) | 啟用或停用 TCP 套接字的 Nagle 演算法。 此選項預設為停用(設為 FALSE)。 |
TCP_TIMESTAMPS | 是 | 是 | DWORD (布爾值) | 啟用或停用 RFC 1323 時間戳。 請注意,時間戳也有全域組態(預設值為 off)、(set/get)-nettcpsetting 中的“Timestamps”。 設定此套接字選項會覆寫該全域組態設定。 |
TCP_FASTOPEN | 是 | 是 | DWORD (布爾值) | 啟用或停用 RFC 7413 TCP 快速開啟,可讓您在開啟連線的三向交握階段開始傳送數據。 請注意,若要使用快速開啟,您應該使用 ConnectEx 來建立初始連線,並在該函式的 lpSendBuffer 參數中指定要在交握過程中傳輸的數據。 lpSendBuffer 中的部分數據將會在快速開啟通訊協定下傳輸。 |
TCP_KEEPIDLE | 是 | 是 | 下載 | 取得或設定 TCP 連線在傳送至遠端之前,TCP 聯機會保持閑置的秒數。
注意: |
TCP_KEEPINTVL | 是 | 是 | 下載 | 取得或設定 TCP 連線在傳送另一個保留探查之前,等候保留回應的秒數。
注意: |
IPPROTO_TCP選項的 Windows 支援
選項 | Windows 10 | Windows 7 | Windows Server 2008 | Windows Vista |
---|---|---|---|---|
TCP_BSDURGENT | 是 | 是 | 是 | 是 |
TCP_EXPEDITED_1122 | 是 | 是 | 是 | 是 |
TCP_KEEPCNT | 從 Windows 10 版本 1703 開始 | |||
TCP_MAXRT | 是 | 是 | 是 | 是 |
TCP_NODELAY | 是 | 是 | 是 | 是 |
TCP_TIMESTAMPS | 是 | 是 | 是 | 是 |
TCP_FASTOPEN | 從 Windows 10 版本 1607 開始 |
選項 | Windows Server 2003 | Windows XP | Windows 2000 | Windows NT4 | Windows 9x/Me | |
---|---|---|---|---|---|---|
TCP_BSDURGENT | 是 | 是 | 是 | 是 | ||
TCP_EXPEDITED_1122 | 是 | 是 | 是 | |||
TCP_KEEPCNT | ||||||
TCP_MAXRT | ||||||
TCP_NODELAY | 是 | 是 | 是 | 是 | ||
TCP_TIMESTAMPS | ||||||
TCP_FASTOPEN |
備註
在 Windows Vista 和更新版本中發行的 Microsoft Windows 軟體開發工具包 (SDK)中,頭檔的組織已變更,IPPROTO_TCP層級定義於 Ws2def.h 頭檔中,該檔案會自動包含在 Winsock2.h 頭檔中。 IPPROTO_TCP套接字選項除了TCP_BSDURGENT之外,也會定義於 Ws2ipdef.h 頭文件中自動包含在 Ws2tcpip.h 頭檔中。 基於 歷史原因, TCP_BSDURGENT選項定義於 Mswsock.h 頭檔中。 不應該直接使用 Ws2def.h 和 Ws2ipdef.h 頭檔。
需求
需求 | 值 |
---|---|
頁首 |
|