共用方式為


IPPROTO_TCP 通訊端選項

下表說明 IPPROTO_TCP套 用至針對 IPv4 和 IPv6 位址系列 (AF_INET 和 AF_INET6) 所建立之套接字的套接字選項,並將 通訊協定 參數套用至指定為 TCP (IPPROTO_TCP) 的 套接字 函式。 如需取得和設定套接字選項的詳細資訊,請參閱 getsockopt 和 setsockopt 函式參考頁面。

若要列舉每個已安裝通訊協定的通訊協定和探索支援的屬性,請使用WSAEnumProtocolsWSCEnumProtocols 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)。 針對類型安全性,您應該使用 WSAGetFailConnectOnIcmpErrorWSASetFailConnectOnIcmpError 函式,而不是直接使用套接字選項。
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 聯機會保持閑置的秒數。

注意
此選項從 Windows 10 版本 1709 開始提供。


TCP_KEEPINTVL 下載 取得或設定 TCP 連線在傳送另一個保留探查之前,等候保留回應的秒數。

注意
此選項從 Windows 10 版本 1709 開始提供。


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.hWs2ipdef.h 頭檔。

需求

需求
頁首
Ws2def.h (包括 Winsock2.h):
Windows Server 2003、Windows XP 和 Windows 2000 上的 Winsock2.h