Dela via


Maximalt antal socketar som stöds

Det maximala antalet socketar som stöds av en viss Windows Sockets-tjänstleverantör är implementeringsspecifikt. Microsoft Winsock-providern begränsar det maximala antalet socketar som endast stöds av tillgängligt minne på den lokala datorn. Winsock-leverantörer från tredje part kan dock ha begränsningar för antalet socketar som stöds. Ett program bör inte göra några antaganden om tillgängligheten för ett visst antal socketar. Mer information om det här avsnittet finns i WSAStartup.

FD_SET och välj

Ett antal FD_XXX makron definieras i Winsock2.h- huvudfil för användning i portning av program till Windows från UNIX-miljön. Dessa makron används med välja och WSAPoll- funktioner för portning av program till Windows. Det maximala antalet socketar som ett Windows Sockets-program kan använda påverkas inte av manifestkonstanten FD_SETSIZE. Det här värdet som definieras i Winsock2.h-huvudfilen används för att konstruera de fd_set strukturer som används med välja funktion. Standardvärdet i Winsock2.h är 64. Om ett program är utformat för att kunna arbeta med fler än 64 sockets med hjälp av välja och WSAPoll funktioner, bör implementorn definiera manifestet FD_SETSIZE i varje källfil innan Winsock2.h huvudfil. Ett sätt att göra detta kan vara att inkludera definitionen i kompilatoralternativen i makefile. Du kan till exempel lägga till "-DFD_SETSIZE=128" som ett alternativ på kommandoraden för kompilatorn för Microsoft C++. Det måste betonas att definitionen av FD_SETSIZE som ett visst värde inte påverkar det faktiska antalet socketar som tillhandahålls av en Windows Sockets-tjänstleverantör. Det här värdet påverkar bara de FD_XXX makron som används av välja och WSAPoll- funktioner.

fd_set

Porting Socket-program till Winsock-

välj

överväganden för Winsock-programmering

WSAStartup

WSAPoll