仮想 int 受信 ( void ※ lpBuf, int nBufLen, int nFlags = 0 );
戻り値
エラーが発生しない場合は、受信受信したバイト数を返します。接続が閉じられている場合は、0 を返します。それ以外の場合、値がSOCKET_ERRORを返し、 GetLastErrorを呼び出して、特定のエラー コードを取得することができます。このメンバー関数を次のエラーを適用します。:
パラメーター
lpBuf
着信データ用のバッファー。
nBufLen
LpBuf (バイト単位) の長さ。
nFlags
呼び出しが行われる方法を指定します。この関数の意味は、ソケット オプションとパラメーター nFlagsによって決まります。後者は C++または演算子を使って次の値のいずれかを組み合わせることで構築します。:
解説
ソケットからデータを受信するにはこのメンバー関数を呼び出します。この関数は接続されているストリームまたはデータグラム ソケットを使用し、受信データを読み取るために使用されて。
SOCK_STREAMタイプのソケットの場合、できるだけ多くの情報は、指定されたバッファーのサイズまで使用可能なが返されます。ソケット帯域外のデータ (ソケット オプションSO_OOBINLINE) の行で受信の構成されているし、帯域外のデータは読み取りではない場合は、帯域外のデータのみが返されます。アプリケーション、 IOCtlSIOCATMARKオプションまたはOnOutOfBandDataより帯域外のデータを読み取ることが残っているかどうかを確認できます。 。
データグラム ソケットでは、指定されたバッファーのサイズまで、最初のキューに格納されたデータグラムからデータが抽出されます。データグラムが指定されたバッファーよりも大きい場合、超過データは失われます、データグラムの最初の部分でバッファーがいっぱいです、受信値がSOCKET_ERROR WSAEMSGSIZEに、エラー コードを返します。ソケットに利用できる受信データがない場合は、値がSOCKET_ERROR WSAEWOULDBLOCKを設定、エラー コードが返されます。多くのデータが到着したときを判断するには、 OnReceiveコールバック関数を使用できます。
ソケットSOCK_STREAMタイプのリモート側が接続を正常にシャット ダウンしている場合は、0 バイト受信受信がすぐに完了します。接続がリセットされた場合は、受信エラー WSAECONNRESETで失敗します。
CAsyncSocket 概要|nbsp;クラス メンバー |階層図(&N)
参照特価;CAsyncSocket::AsyncSelect、 CAsyncSocket::Create、 CAsyncSocket::ReceiveFrom、 :send(&N)