次の方法で共有


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

参照

参照

CAsyncSocket クラス

階層図

CAsyncSocket::Connect

CAsyncSocket::Create

その他の技術情報

CAsyncSocket のメンバ