次の方法で共有


サポートされるソケットの最大数

特定の Windows ソケット サービス プロバイダーでサポートされるソケットの最大数は、実装固有です。 Microsoft Winsock プロバイダーは、ローカル コンピューター上の使用可能なメモリによってのみサポートされるソケットの最大数を制限します。 ただし、サードパーティの Winsock プロバイダーでは、サポートされるソケットの数に制限がある場合があります。 アプリケーションでは、特定の数のソケットが利用可能かどうかは想定されるべきではありません。 このトピックの詳細については、WSAStartup に関するページを参照してください。

FD_SET と select

UNIX 環境から Windows にアプリケーションを移植する際に使用するために、Winsock2.h ヘッダー ファイルには多くの FD_XXX マクロが定義されています。 これらのマクロは、アプリケーションを Windows に移植するために select および WSAPoll 関数と共に使用されます。 Windows ソケット アプリケーションで使用できるソケットの最大数は、マニフェスト定数 FD_SETSIZE の影響を受けません。 Winsock2.h ヘッダー ファイルで定義されているこの値は、select 関数で使用される fd_set 構造体を構築するために使用されます。 Winsock2.h の既定値は 64 です。 アプリケーションが select および WSAPoll 関数を使用して 64 個を超えるソケットを操作できるように設計されている場合、実装者は、Winsock2.h ヘッダー ファイルを含める前にすべてのソース ファイルにマニフェスト FD_SETSIZE を定義する必要があります。 これを行う方法の 1 つは、メイクファイルのコンパイラ オプション内に定義を含める方法です。 たとえば、Microsoft C++ のコンパイラ コマンド ラインにオプションとして "-DFD_SETSIZE=128" を追加できます。 FD_SETSIZE を特定の値として定義しても、Windows ソケット サービス プロバイダーによって提供されるソケットの実際の数には影響を与えないことを強調する必要があります。 この値は、select および WSAPoll 関数で使用される FD_XXX マクロにのみ影響します。

fd_set

ソケット アプリケーションを Winsock に移植

選択

Winsock プログラミングの考慮事項

WSAStartup

WSAPoll