IPPROTO_UDP 通訊端選項
下表描述 IPPROTO_UDP 通訊端選項,這些選項適用于針對 IPv4 和 IPv6 位址系列所建立的通訊端 (AF_INET,並使用通訊 協定 參數AF_INET6) 指定為 UDP (IPPROTO_UDP) 的 通訊端 函式。 如需取得和設定通訊端選項的詳細資訊,請參閱 getsockopt 和 setockopt 函式參考頁面。
若要列舉通訊協定並探索每個已安裝通訊協定的支援屬性,請使用 WSAEnumProtocols、 WSCEnumProtocols或 WSCEnumProtocols32 函式。
選項。
選項 | Get | 集合 | Optval 類型 | Description |
---|---|---|---|---|
UDP_CHECKSUM_COVERAGE (ws2tcpip.h) | 是 | 是 | DWORD (布林值) | 當 為 TRUE時,UDP 資料包會以總和檢查碼傳送。 |
UDP_NOCHECKSUM (ws2tcpip.h) | 是 | 是 | DWORD (布林值) | 當 為 TRUE時,UDP 資料包會以零總和檢查碼傳送。 服務提供者的必要專案。 如果服務提供者沒有停用 UDP 總和檢查碼計算的機制,它可能會直接儲存此選項而不採取任何動作。 IPv6 不支援此選項。 |
UDP_RECV_MAX_COALESCED_SIZE (ws2ipdef.h;include ws2tcpip.h) | 是 | 是 | DWORD | 當設定為非零值時,多個接收的資料包可能會聯合成單一訊息緩衝區,再向您的應用程式指示。 選項值代表可以指示給應用程式的聯合訊息,以位元組為單位的訊息大小上限。 可能仍會指出大於選項值的未聯合訊息。 預設值為 0 (沒有聯合) 。 只有在資料包源自相同的來源位址和埠時,才會聯合資料包。 所有聯合的資料包大小都相同,但最後一個資料包可能較小。 如果您的應用程式想要擷取資料包大小 (,但最後一個資料包可能不同,) 可能不同,您必須使用支援控制資訊的接收 API (,例如 LPFN_WSARECVMSG (WSARecvMsg) ) 。 除了最後一則訊息的大小,可以在 UDP_COALESCED_INFO 控制項訊息中找到,其類型為 DWORD。 針對型別安全,您的應用程式應該使用 WSAGetUdpRecvMaxCoalescedSize 和 WSASetUdpRecvMaxCoalescedSize 函式,而不是直接使用通訊端選項。 |
UDP_SEND_MSG_SIZE (ws2ipdef.h;include ws2tcpip.h) | 是 | 是 | DWORD | 當設定為非零值時,應用程式傳送的緩衝區會依網路堆疊細分成多個訊息。 選項值代表每個細分訊息的大小。 選項值是以位元組表示。 最後一個區段的大小可能小於選項的值。 預設值為 0, (沒有分割) 。 您的應用程式應該設定小於目的地 () 之路徑 MTU 的值,以避免 IP 片段。 針對型別安全,您的應用程式應該使用 WSAGetUdpSendMessageSize 和 WSASetUdpSendMessageSize 函式,而不是直接使用通訊端選項。 |
舊版 Windows 支援IPPROTO_UDP選項
windows 2000 和 Windows NT4 上無法使用UDP_CHECKSUM_COVERAGE。 Windows 9x/Me 上無法使用 UDP_CHECKSUM_COVERAGE和UDP_NOCHECKSUM 。
備註
在 Microsoft Windows 軟體發展工具組 (SDK) 針對 Windows Vista 和更新版本發行,標頭檔的組織已變更, IPPROTO_UDP 層級定義在 Wins2def.h 標頭檔中自動包含在 Winsock2.h 標頭檔中。 IPPROTO_UDP通訊端選項定義于Ws2tcpip.h標頭檔中。 不應直接使用 Ws2def.h 標頭檔。
規格需求
需求 | 值 |
---|---|
標頭 |
|