CAsyncSocket::Send

ソケット接続されたデータを送信するには、このメンバー関数を呼び出します。

virtual int Send(
   const void* lpBuf,
   int nBufLen,
   int nFlags = 0 
);

パラメーター

  • lpBuf
    送信されるデータを格納するバッファー。

  • nBufLen
    バイト lpBuf のデータの長さ。

  • nFlags
    呼び出しが行われる方法を指定します。この関数のセマンティクスは、ソケットの nFlags のオプションおよびパラメーターによって決まります。後者は、C++ OR 演算子では、次の値を組み合わせることによって構成されます:

    • MSG_DONTROUTE は、データがの適用を受けなかったルーティングをしないことを指定します。Windows ソケットの業者は、このフラグを無視するように選択できます。

    • MSG_OOB の送信の帯域外 (データSOCK_STREAM のみ)。

戻り値

エラーが発生しなかった場合は、[送信] が送信される文字数を返します。これがであること ( nBufLenでという名前の数よりも注意してください)。それ以外 SOCKET_ERROR の戻り値は、特定のエラー コードは GetLastErrorを呼び出して取得できます。このエラーは、次のメンバー関数に適用されます:

  • WSANOTINITIALISED は正常に AfxSocketInit は、この API を使用する前に行う必要があります。

  • WSAENETDOWN は、Windows ソケット実装ネットワークのサブシステムが失敗したことを検出しました。

  • WSAEACCES は要求されたアドレス ブロードキャスト アドレスですが、適切なフラグが設定された。

  • WSAEINPROGRESS A のブロックの Windows ソケット処理は進行中です。

  • WSAEFAULT は、ユーザーのアドレス空間に有効な部分に lpBuf の引数ありません。

  • WSAENETRESET は Windows ソケット接続の実装が削除されるため、リセットする必要があります。

  • Windows ソケットの実装WSAENOBUFS レポート バッファーのデッドロック。

  • WSAENOTCONN は、ソケット接続されていません。

  • WSAENOTSOCK は記述子ソケットではありません。

  • WSAEOPNOTSUPP   MSG_OOB が指定されましたが、ソケットは型 SOCK_STREAMではありません。

  • WSAESHUTDOWN は、ソケット シャットダウン; ShutDown が 1 または 2.に nHow 設定すると、開始後にソケット [送信] を呼び出すことはできません。

  • WSAEWOULDBLOCK はブロッキング ソケットとしてマークされ、要求された操作はブロックされます。

  • WSAEMSGSIZE は、型 SOCK_DGRAMソケットであり、データグラムは、Windows ソケットの実装でサポートされる最大サイズよりも大きいです。

  • WSAEINVAL は **[バインド]**とソケット バインドされていません。

  • WSAECONNABORTED は、仮想行タイムアウト中止またはそのほかのエラーが原因です。

  • WSAECONNRESET は、リモート側によって仮想行リセットされています。

解説

[送信] が接続されたストリームまたはデータグラム ソケットの出力データを作成するために使用します。データグラム ソケットに AfxSocketInitによって返される WSADATA の構造体の iMaxUdpDg の要素で指定された基になるサブネット IP パケットの最大サイズを超えていない場合、問題は注意が必要です。データを基になるプロトコルをアトミックに渡すには長すぎてエラー WSAEMSGSIZEGetLastErrorで戻り、データは送信されません。

データが正常に提供されたことをデータグラム ソケットに [送信] の正常な完了には示されていないことに注意してください。

SOCK_STREAMCAsyncSocket のオブジェクトで記述されたバイト数は、ローカルと外部のホストの両方のバッファーの可用性によって 1 で要求された長さの間にである場合もあります。

使用例

CAsyncSocket::OnSendの例を参照してください。

必要条件

Header: afxsock.h

参照

関連項目

CAsyncSocket クラス

階層図

CAsyncSocket::Create

CAsyncSocket::Receive

CAsyncSocket::ReceiveFrom

CAsyncSocket::SendTo