CAsyncSocket::IOCtl
BOOL IOCtl ( 長い lCommand, DWORD ※ lpArgument );
戻り値
関数が成功したそうでなければ 0、および具体的なエラー コードGetLastErrorの呼び出し取得できます。このメンバー関数を次のエラーを適用します。:
-
WSANOTINITIALISED特価;成功AfxSocketInitがこの API を使用する前に行う必要があります。(&N)。
-
WSAENETDOWN特価;Windows ソケットの実装、ネットワーク サブシステムが失敗したことが検出されました(&N)。
-
WSAEINVAL特価;lCommandは有効なコマンドではありませんまたはlpArgument lCommand、許容パラメーターではありません、コマンドは、指定されたソケットの種類には適用されません。(&N)。
-
WSAEINPROGRESS特価;ブロックの Windows ソケット操作が進行中であります。(&N)。
-
特価; wsaenotsock が返されるディスクリプターはソケットではないです。(&N)。
パラメーター
lCommand
ソケットで実行するコマンド。
lpArgument
LCommandのパラメーターへのポインター。
解説
ソケットのモードを制御するにはこのメンバー関数を呼び出します。このルーチンは、ソケットの任意の状態で使用できます。取得またはプロトコルと通信サブシステムの独立したソケットと関連付けられている操作のパラメーターを取得するを使用します。次のコマンドがサポートされています:
-
FIONBIO特価;有効または、ソケットを非ブロック モードを無効にします。場合は非ブロッキング モードを有効にして無効にする場合は 0 に 0 以外の値は、 DWORD、 lpArgumentパラメーター点。AsyncSelectは、ソケットに発行されている場合は、 IOCtlを使用して、ソケットをブロック モードに設定するとWSAEINVALで失敗します。ソケットをブロック モードに設定してWSAEINVALエラーを回避するのには、アプリケーションする必要があります最初AsyncSelect呼び出しAsyncSelect lEventパラメータを 0 に等しいによって無効にする、 IOCtlを呼び出す(&N)。
-
FIONREAD特価;読み取ることができるバイト数の最大数を決定するこのソケットから 1 つの受信呼び出しで。LpArgumentパラメーターはIOCtl店でDWORDで結果を指します。このソケット タイプのSOCK_STREAMの場合は、 FIONREAD読むことができるデータの総量に 1 つの受信を返します。ソケット上のデータの合計量のキューとしてこれは通常、同じです。このソケット タイプのSOCK_DGRAMの場合は、最初のデータグラムのサイズは、ソケットのキューにFIONREADを返します(&N)。
-
SIOCATMARK特価;帯域外のデータがすべて読み込まれているかどうかを確認します。これは、帯域外のデータ (SO_OOBINLINE) の行で受付が構成されているは、 SOCK_STREAMタイプのソケットにのみ適用されます。読むことを帯域外のデータが存在しない場合、操作は 0 以外を返します。それ以外の場合は 0 を返すし、次の受信またはReceiveFromのソケットでを実行、「マーク」; の前のデータの一部またはすべてを取得しますアプリケーションでは、 SIOCATMARK操作を使用して、すべてのデータが残っているかどうかを確認する必要があります。「緊急」(帯域外) データの前に通常のデータがある場合は、順番に受信されます。(受信またはReceiveFromは帯域外で、通常のデータの同じ呼び出しでミックスされますに注意してください)。IOCtlが、結果を格納するDWORD時点は、パラメーターのlpArgument(&N)。
この関数はソケットで使用される特定のサブセットです。特に、 SIOCATMARKはサポートされてのみソケット レベル コマンドの中にFIOASYNC、相当コマンドはありません。
CAsyncSocket 概要|nbsp;クラス メンバー |階層図(&N)
参照特価;CAsyncSocket::AsyncSelect、 CAsyncSocket::Create、 CAsyncSocket::GetSockOpt、 CAsyncSocket::SetSockOpt(&N)