Struttura WSADATA

La struttura WSADATA ha la seguente forma:

struct {WSAData
 nbsp;  WORD wVersion;
    WORD wHighVersion;
    char szDescription [WSADESCRIPTIO&N_LEN + 1];
    char szSystemStatus [WSASYSSTATUS_LEN + 1];
    iMaxSockets breve senza segno;
    iMaxUdpDg breve senza segno;
    ESTREMO di Char * lpVendorInfo;
}

La struttura WSADATA viene utilizzata per memorizzare le informazioni di inizializzazione Windows Sockets restituite da una chiamata alla funzione globale AfxSocketInit.

Membri

wVersion

La versione della specifica Windows Sockets che la DLL di Windows Sockets aspetta al chiamante di utilizzare.

wHighVersion

La versione più alta della specifica Windows Sockets che può supportare questa DLL (anche codificata come sopra). Normalmente questo è lo stesso di wVersion.

szDescription

Una stringa null-terminated ASCII in cui la DLL di Windows Sockets copia una descrizione dell'implementazione Windows Sockets, compresa l'identificazione del fornitore. Il testo (fino a 256 caratteri di lunghezza) può contenere qualsiasi carattere, ma i fornitori si avvertono contro compreso il controllo e caratteri di formattazione: l'uso più probabile che un'applicazione questo metterà a è per visualizzarla (possibilmente troncato) in un messaggio di stato.

szSystemStatus

Una stringa null-terminated ASCII in cui la DLL di Windows Sockets copia le informazioni pertinenti status o configurazione. La DLL di Windows Sockets devono utilizzare questo campo solo se le informazioni potrebbero essere utili per l'utente o supporto personale; non deve essere considerata come un'estensione del campo di szDescription.

iMaxSockets

Il numero massimo di socket che potenzialmente è possibile aprire un singolo processo. Un'implementazione di Windows Sockets in grado di fornire un pool di socket globale per l'allocazione a qualsiasi processo; in alternativa è possibile allocare risorse per processo per i socket. Il numero può riflettere bene il modo in cui è stato configurato Windows Sockets DLL o il software di rete. Scrittori di applicazione possono utilizzare questo numero come un'indicazione grezza di se l'implementazione di Windows Sockets è utilizzabile dall'applicazione. Ad esempio, un server X Windows potrebbe verificare iMaxSockets quando iniziato: se è inferiore a 8, la domanda avrebbe visualizzato un messaggio di errore istruire l'utente per riconfigurare il software di rete. (Questa è una situazione in cui il testo szSystemStatus potrebbe essere utilizzato). Ovviamente non esiste alcuna garanzia che una particolare applicazione può allocare in realtà iMaxSockets socket, dal momento che ci possono essere altre applicazioni Windows Sockets in uso.

iMaxUdpDg

Dimensione in byte del più grande datagramma User Datagram Protocol (UDP) che possono essere inviati o ricevuti da un'applicazione Windows Sockets. Se l'implementazione non impone alcun limite, iMaxUdpDg è zero. In molte implementazioni di socket di Berkeley, c'è un limite implicito di 8192 byte su datagrammi UDP (che sono frammentati se necessario). Un'implementazione di Windows Sockets può imporre un limite di base, per esempio, sull'attribuzione di buffer di riassemblaggio del frammento. Il valore minimo di iMaxUdpDg per un'implementazione di Windows Sockets conforme è 512. Si noti che, indipendentemente dal valore di iMaxUdpDg, è sconsigliabile tenta di inviare un datagramma broadcast che è più grande che il MTU Maximum Transmission Unit () per la rete. (L'API di Windows Sockets non fornisce un meccanismo per scoprire il MTU, ma deve essere non meno di 512 byte).

lpVendorInfo

Estremo puntatore a una struttura di dati specifici del fornitore. La definizione di questa struttura (se fornito) è oltre la portata della specifica Windows Sockets. Per ulteriori informazioni, vedere Windows Sockets programmazione considerazioni nella documentazione SDK Win32.

&Notanbsp;  In MFC, la struttura WSADATA viene restituita dalla funzione AfxSocketInit , che chiama nel tuo InitInstance funzione. È possibile recuperare la struttura e memorizzarlo nel vostro programma, se avete bisogno di utilizzare le informazioni da esso più tardi.

Vedere a&nchenbsp;AfxSocketInit

Index