Maximale Anzahl Sockets, die eine Anwendung verwenden können

SPRACHE AUSWÄHLEN SPRACHE AUSWÄHLEN
Artikel-ID: 111855 - Produkte anzeigen, auf die sich dieser Artikel bezieht
Alles erweitern | Alles schließen

Zusammenfassung

Die maximale Anzahl Sockets, die von einem bestimmten Lieferanten Windows Sockets unterstützt ist implementierungsspezifisch. Eine Anwendung sollten keine Annahmen über die Verfügbarkeit von einer bestimmten Anzahl von Sockets erstellen.

Weitere Informationen

Details der Windows Sockets-Implementierung werden beschrieben, in der Struktur WSAData von WSAStartup()-Aufruf zurückgegeben und wie folgt definiert:
struct WSAData {
     WORD          wVersion;
     WORD          wHighVersion;
     char           szDescription[WSADESCRIPTION_LEN+1];
     char          szSystemStatus[WSASYSSTATUS_LEN+1];
     unsigned short     iMaxSockets;
     unsigned short     iMaxUdpDg;
     char FAR *     lpVendorInfo
};
				
bei Rückgabe aus WSAStart() unter Windows NT
   iMaxSockets = 0x7fff (32767)
				
iMaxSockets ist, wobei die maximale Anzahl der Sockets, die ein einzelner Prozess möglicherweise öffnen können. Windows Sockets-Implementierung kann einen globalen Pool von Sockets für die Zuweisung an einen Prozess, oder es kann pro Prozess Ressourcen für Sockets zuweisen. Die Anzahl kann die Art und Weise wiedergibt, in der die Windows Sockets-DLL oder die Netzwerksoftware konfiguriert wurde. Die Anzahl kann auch verwendet werden, wenn beim Schreiben einer Anwendung als Hinweis, ob die Windows Sockets-Implementierung von der Anwendung verwendet werden kann.

Ein X Windows-Server kann z. B. iMaxSockets überprüfen, beim Starten. Wenn die Anzahl der Sockets kleiner als 8 ist, zeigt die Anwendung ein Fehlermeldung anweisen den Benutzer die Netzwerksoftware neu konfigurieren. (Dies ist eine Situation, in der der Text SzSystemStatus verwendet werden kann.) Es gibt keine Garantie dafür, dass eine bestimmte Anwendung tatsächlich iMaxSockets Sockets reservieren kann, da möglicherweise andere Windows Sockets-Anwendungen verwendet.

Unabhängig von der Anzahl der Sockets, die von einer bestimmten Implementierung unterstützt jedoch ist das Problem der maximalen Anzahl der Sockets, die eine Anwendung tatsächlich verwendet werden kann.

Die maximale Anzahl Sockets, die eine Windows Sockets-Anwendung verwenden kann wird zur Kompilierzeit von manifest Konstante FD_SETSIZE bestimmt. Klicken Sie dazu in der Win32 SDK-WINSOCK.H-Datei:
/*
 * Select uses arrays of SOCKETs. These macros manipulate such
 * arrays. FD_SETSIZE may be defined by the user before including
 * this file, but the default here should be >= 64.
 *
 * CAVEAT IMPLEMENTOR and USER: THESE MACROS AND TYPES MUST BE
 * INCLUDED IN WINSOCK.H EXACTLY AS SHOWN HERE.
 */ 
#ifndef FD_SETSIZE
#define FD_SETSIZE      64
#endif /* FD_SETSIZE */ 
				
dieser Wert wird bei der Erstellung der Fd_set Strukturen in select() verwendet verwendet. Der Standardwert in WINSOCK.H ist 64. Wenn eine Anwendung geeignet ist, werden mit mehr als 64 Sockets arbeiten kann, definieren Sie manifest FD_SETSIZE in jeder Quelldatei, bevor Sie z. B. WINSOCK.H. Eine Möglichkeit, der dies dadurch wird die Definition in der Compileroptionen in dem Makefile, z. B. das Hinzufügen - enthalten DFD_SETSIZE = 128 als Option für die Compilerbefehlszeile für Microsoft c.

Hinweis: FD_SETSIZE als einen bestimmten Wert definieren hat keine Auswirkungen auf die tatsächliche Anzahl der Sockets bereitgestellten Windows Sockets-Implementierung.

Eigenschaften

Artikel-ID: 111855 - Geändert am: Mittwoch, 1. November 2006 - Version: 3.1
Die Informationen in diesem Artikel beziehen sich auf:
  • Microsoft Windows NT Advanced Server 3.1
  • Microsoft Windows NT Workstation 3.1
Keywords: 
kbmt kbnetwork KB111855 KbMtde
Maschinell übersetzter Artikel
Wichtig: Dieser Artikel wurde maschinell und nicht von einem Menschen übersetzt. Die Microsoft Knowledge Base ist sehr umfangreich und ihre Inhalte werden ständig ergänzt beziehungsweise überarbeitet. Um Ihnen dennoch alle Inhalte auf Deutsch anbieten zu können, werden viele Artikel nicht von Menschen, sondern von Übersetzungsprogrammen übersetzt, die kontinuierlich optimiert werden. Doch noch sind maschinell übersetzte Texte in der Regel nicht perfekt, insbesondere hinsichtlich Grammatik und des Einsatzes von Fremdwörtern sowie Fachbegriffen. Microsoft übernimmt keine Gewähr für die sprachliche Qualität oder die technische Richtigkeit der Übersetzungen und ist nicht für Probleme haftbar, die direkt oder indirekt durch Übersetzungsfehler oder die Verwendung der übersetzten Inhalte durch Kunden entstehen könnten.
Den englischen Originalartikel können Sie über folgenden Link abrufen: 111855
Microsoft stellt Ihnen die in der Knowledge Base angebotenen Artikel und Informationen als Service-Leistung zur Verfügung. Microsoft übernimmt keinerlei Gewährleistung dafür, dass die angebotenen Artikel und Informationen auch in Ihrer Einsatzumgebung die erwünschten Ergebnisse erzielen. Die Entscheidung darüber, ob und in welcher Form Sie die angebotenen Artikel und Informationen nutzen, liegt daher allein bei Ihnen. Mit Ausnahme der gesetzlichen Haftung für Vorsatz ist jede Haftung von Microsoft im Zusammenhang mit Ihrer Nutzung dieser Artikel oder Informationen ausgeschlossen.

Ihr Feedback an uns

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com