CAsyncSocket::ShutDown
更新 : 2007 年 11 月
ソケットでの送信、受信のいずれか、または両方を無効にします。
BOOL ShutDown(
int nHow = sends
);
パラメータ
nHow
どの型の操作を無効にするかどうかを示すフラグ。次の列挙値を使います。receives = 0
sends = 1
both = 2
戻り値
正常終了した場合は 0 以外を返します。それ以外の場合は 0 を返します。GetLastError を呼び出すと、固有のエラー コードを取得できます。このメンバ関数では、次のエラーが発生します。
WSANOTINITIALISED この API を使う前に AfxSocketInit の呼び出しが正常終了していることが必要です。
WSAENETDOWN Windows ソケットの実装が、ネットワーク サブシステムの異常を検出しました。
WSAEINVAL nHow が無効です。
WSAEINPROGRESS 実行中の Windows ソケット呼び出しがブロッキングされています。
WSAENOTCONN ソケットが接続されていません (SOCK_STREAM 型だけ)。
WSAENOTSOCK 記述子がソケットではありません。
解説
ShutDown は、すべての型のソケットに対して、送信、受信のいずれか、または両方を無効にするために使います。nHow を 0 にすると、ソケットでの受信はできなくなります。これは、下位のプロトコル層には影響しません。
TCP (伝送制御プロトコル) では、TCP ウィンドウを変更せずに、ウィンドウを使いきるまで受信データを受け入れます。ただし、応答はしません。ユーザー データグラム プロトコル (UDP) では、受信したデータグラムを受け入れ、キューに置きます。ICMP エラー パケットが生成されることはありません。nHow を 1 にすると、その後送信できなくなります。TCP ソケットでは、FIN を送信します。nHow を 2 にすると、送信も受信もできなくなります。
ShutDown はソケットを閉じません。また、Close が呼び出されるまでソケットに結び付けられたリソースも解放しません。アプリケーションでは、シャットダウンした後のソケットを再使用できても、利用しないでください。特に、Windows ソケットの実装は、再利用されたソケットでの Connect はサポートしていません。
使用例
「CAsyncSocket::OnReceive」の例を参照してください。
必要条件
ヘッダー : afxsock.h