LPWSPSHUTDOWN コールバック関数 (ws2spi.h)

LPWSPShutdown 関数は、ソケットでの送受信を無効にします。

構文

LPWSPSHUTDOWN Lpwspshutdown;

int Lpwspshutdown(
  [in]  SOCKET s,
  [in]  int how,
  [out] LPINT lpErrno
)
{...}

パラメーター

[in] s

ソケットを識別する記述子。

[in] how

許可されなくなる操作の種類を示すフラグ。

[out] lpErrno

エラー コードへのポインター。

戻り値

エラーが発生しない場合、 LPWSPShutdown は 0 を返します。 それ以外の場合は、SOCKET_ERRORの値が返され、 lpErrno で特定のエラー コードを使用できます。

エラー コード 意味
WSAENETDOWN
ネットワーク サブシステムが失敗しました。
WSAEINVAL
方法が無効であるか、ソケットの種類と一致していません。 たとえば、SD_SENDは、UNI_RECVソケット型で使用されます。
WSAEINPROGRESS
コールバックが進行中の場合、関数が呼び出されます。
WSAENOTCONN
ソケットが接続されていません (接続指向のソケットのみ)。
WSAENOTSOCK
記述子はソケットではありません。

注釈

LPWSPShutdown 関数は、受信、送信、またはその両方を無効にするために、すべての種類のソケットで使用されます。

方法がSD_RECEIVE場合、ソケットでの後続の受信は許可されません。 これは、下位プロトコルレイヤーには影響しません。 TCP ソケットの場合、受け取りを待機しているソケットにまだデータがキューに入っている場合、またはデータが後続に到着した場合、データをユーザーに配信できないため、接続はリセットされます。 UDP ソケットの場合、受信データグラムは受け入れられ、キューに入れられます。 いずれの場合も、ICMP エラー パケットは生成されません。

方法がSD_SEND場合、ソケット上の後続の送信は許可されません。 TCP ソケットの場合、FIN が送信されます。 SD_BOTH 方法 を設定すると、上記のように送受信の両方が無効になります。

LPWSPShutdown はソケットを閉じず、ソケットに接続されているリソースは LPWSPCloseSocket が呼び出されるまで解放されないことに注意してください。

注意

LPWSPShutdown 関数は、ソケットのSO_LINGER設定に関係なくブロックしません。 Windows ソケット SPI クライアントは、シャットダウン後にソケットを再利用できることに依存しないでください。 特に、このようなソケットでの LPWSPConnect の使用をサポートするために、Windows ソケット サービス プロバイダーは必要ありません。

要件

要件
サポートされている最小のクライアント Windows 2000 Professional [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows 2000 Server [デスクトップ アプリのみ]
Header ws2spi.h

こちらもご覧ください

LPWSPConnect

LPWSPSocket