支援的套接字數目上限
特定 Windows Sockets 服務提供者所支援的套接字數目上限是實作特定。 Microsoft Winsock 提供者只會限制本機計算機上可用記憶體所支援的套接字數目上限。 不過,第三方 Winsock 提供者可能會對支援的套接字數目有所限制。 應用程式不應假設特定數目的套接字可用性。 如需本主題的詳細資訊,請參閱 WSAStartup。
FD_SET並選取
Winsock2.h 頭檔中定義了許多 FD_XXX 巨集,以用於從 UNIX 環境將應用程式移植到 Windows。 這些巨集會與 選取 和 WSAPoll 函式搭配使用,以將應用程式移植到 Windows。 Windows Sockets 應用程式可以使用的套接字數目上限不受指令清單常數 FD_SETSIZE影響。 Winsock2.h 頭文件中定義的這個值,用於建構與選取 函式 搭配使用的 fd_set 結構。 Winsock2.h 中的預設值為 64。 如果應用程式設計成能夠使用 select 和 WSAPoll 函式來使用超過 64 個套接字,則實作者應該先定義每個來源檔案中的指令清單 FD_SETSIZE,再包含 Winsock2.h 頭檔。 這樣做的其中一種方法可能是在makefile的編譯程式選項中包含定義。 例如,您可以將 「-DFD_SETSIZE=128」 新增為Microsoft C++編譯程式命令行的選項。 必須強調,將 FD_SETSIZE 定義為特定值不會影響 Windows Sockets 服務提供者提供的實際套接字數目。 這個值只會影響 選取 和 WSAPoll 函式所使用的 FD_XXX 巨集。
相關主題