Opzioni socket IPPROTO_UDP
Nella tabella seguente vengono descritte IPPROTO_UDP opzioni socket applicabili ai socket creati per le famiglie di indirizzi IPv4 e IPv6 (AF_INET e AF_INET6) con il parametro di protocollo per la funzione socket specificata come UDP (IPPROTO_UDP). Per altre informazioni su come ottenere e impostare le opzioni socket, vedere le pagine di riferimento della funzione getsockopt e setsockopt .
Per enumerare i protocolli e individuare le proprietà supportate per ogni protocollo installato, usare la funzione WSAEnumProtocols, WSCEnumProtocols o WSCEnumProtocols32 .
Opzioni
Opzione | Recupero | Set | Tipo Optval | Descrizione |
---|---|---|---|---|
UDP_CHECKSUM_COVERAGE (ws2tcpip.h) | sì | sì | DWORD (booleano) | Se TRUE, i datagrammi UDP vengono inviati con un checksum. |
UDP_NOCHECKSUM (ws2tcpip.h) | sì | sì | DWORD (booleano) | Se TRUE, i datagrammi UDP vengono inviati con il checksum pari a zero. Obbligatorio per i provider di servizi. Se un provider di servizi non dispone di un meccanismo per disabilitare il calcolo del checksum UDP, può semplicemente archiviare questa opzione senza eseguire alcuna azione. Questa opzione non è supportata per IPv6. |
UDP_RECV_MAX_COALESCED_SIZE (ws2ipdef.h; include ws2tcpip.h) | sì | sì | DWORD | Se impostato su un valore diverso da zero, più datagrammi ricevuti possono essere uniti in un unico buffer di messaggi prima di essere indicati all'applicazione. Il valore dell'opzione rappresenta la dimensione massima del messaggio in byte per i messaggi uniti che possono essere indicati all'applicazione. I messaggi non uniti più grandi del valore dell'opzione possono comunque essere indicati. Il valore predefinito è 0 (nessuna unione). I datagrammi verranno uniti solo se hanno origine dallo stesso indirizzo di origine e dalla stessa porta. Tutti gli datagrammi uniti avranno le stesse dimensioni, ad eccezione dell'ultimo datagramma, che può essere più piccolo. Se l'applicazione vuole recuperare le dimensioni del datagrammo (ad eccezione dell'ultimo datagramma, che può differire) che sono state combinate, è necessario usare un'API di ricezione che supporti le informazioni di controllo ( ad esempio LPFN_WSARECVMSG (WSARecvMsg)). Le dimensioni di tutto, ma l'ultimo messaggio è disponibile nel messaggio di controllo UDP_COALESCED_INFO, di tipo DWORD. Per la sicurezza dei tipi, l'applicazione deve usare le funzioni WSAGetUdpRecvMaxCoalescedSize e WSASetUdpRecvMaxCoalescedSize anziché direttamente l'opzione socket. |
UDP_SEND_MSG_SIZE (ws2ipdef.h; include ws2tcpip.h) | sì | sì | DWORD | Se impostato su un valore diverso da zero, i buffer inviati dall'applicazione vengono suddivisi in più messaggi dallo stack di rete. Il valore dell'opzione rappresenta le dimensioni di ogni messaggio suddiviso. Il valore dell'opzione è rappresentato in byte. Le dimensioni dell'ultimo segmento possono essere inferiori al valore dell'opzione. Il valore predefinito è 0 (nessuna segmentazione). L'applicazione deve impostare un valore inferiore all'MTU del percorso per evitare la frammentazione IP. Per la sicurezza dei tipi, l'applicazione deve usare le funzioni WSAGetUdpSendMessageSize e WSASetUdpSendMessageSize anziché direttamente l'opzione socket. |
Supporto di Windows legacy per le opzioni di IPPROTO_UDP
UDP_CHECKSUM_COVERAGE non è disponibile in Windows 2000 e in Windows NT4. UDP_CHECKSUM_COVERAGE e UDP_NOCHECKSUM non sono disponibili in Windows 9x/Me.
Commenti
In Microsoft Windows Software Development Kit (SDK) rilasciato per Windows Vista e versioni successive, l'organizzazione dei file di intestazione è stata modificata e IPPROTO_UDP livello è definito nel file di intestazione Ws2def.h che viene automaticamente incluso nel file di intestazione Winsock2.h . Le opzioni socket IPPROTO_UDP sono definite nel file di intestazione Ws2tcpip.h . Il file di intestazione Ws2def.h non deve mai essere usato direttamente.
Requisiti
Requisito | Valore |
---|---|
Intestazione |
|