支持的最大套接字数

特定 Windows 套接字服务提供程序支持的最大套接字数取决于具体实现。 Microsoft Windows 套接字提供程序仅根据本地计算机上的可用内存来限制支持的最大套接字数。 但是,第三方 Windows 套接字提供程序可能会对支持的套接字数量有限制。 应用程序不应假设可以使用特定数量的套接字。 有关本主题的详细信息,请参阅 WSAStartup

FD_SET 并选择

Winsock2.h 头文件中定义了许多 FD_XXX 宏,用于将应用程序从 UNIX 环境移植到 Windows。 这些宏与 selectWSAPoll 函数一起使用,用于将应用程序移植到 Windows。 Windows 套接字应用程序可以使用的最大套接字数不受清单常量 FD_SETSIZE 的影响。 Winsock2.h 头文件中定义的此值用于构造与 select 函数一起使用 的fd_set 结构。 Winsock2.h 中的默认值为 64。 如果应用程序设计为能够使用 select 和 WSAPoll 函数处理超过 64 个套接字,则实现器应在包含 Winsock2.h 头文件前定义每个源文件中的 FD_SETSIZE。 实现此操作的一种方法是在生成文件的编译器选项中包含定义。 例如,可以将“-DFD_SETSIZE=128”作为选项添加到 Microsoft C++ 的编译器命令行。 必须强调的是,将 FD_SETSIZE 定义为特定值不会影响 Windows 套接字服务提供程序提供的实际套接字数。 此值仅影响 select 和 WSAPoll 函数使用的 FD_XXX 宏。

fd_set

将套接字应用程序移植到 Winsock

select

Winsock 编程注意事项

WSAStartup

WSAPoll