Socket.ReceiveFromAsync(SocketAsyncEventArgs) メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
指定したネットワーク デバイスからのデータの非同期受信を開始します。
public:
bool ReceiveFromAsync(System::Net::Sockets::SocketAsyncEventArgs ^ e);
public bool ReceiveFromAsync(System.Net.Sockets.SocketAsyncEventArgs e);
member this.ReceiveFromAsync : System.Net.Sockets.SocketAsyncEventArgs -> bool
Public Function ReceiveFromAsync (e As SocketAsyncEventArgs) As Boolean
パラメーター
この非同期ソケット操作に使用する SocketAsyncEventArgs オブジェクト。
返品
true I/O 操作が保留中の場合は 。
Completed パラメーターのe イベントは、操作の完了時に発生します。
false I/O 操作が同期的に完了した場合は > この場合、Completed パラメーターの e イベントは発生せず、メソッド呼び出しが戻った直後にパラメーターとして渡されたe オブジェクトを調べて、操作の結果を取得できます。
例外
RemoteEndPointを null にすることはできません。
SocketAsyncEventArgs パラメーターで指定されたe オブジェクトを使用して、ソケット操作が既に進行中でした。
Socketが閉じられました。
ソケットにアクセスしようとしたときにエラーが発生しました。
注釈
ReceiveFromAsyncメソッドは、主にコネクションレス ソケットでデータを受信するために使用されます。 ソケットのローカル アドレスは既知である必要があります。
呼び出し元は、 SocketAsyncEventArgs.RemoteEndPoint プロパティをリモート ホストのエンドポイントと同じ種類の EndPoint に設定する必要があります。 プロパティは、実際のリモート エンドポイントへの正常な受信時に更新されます。
SocketAsyncEventArgs.SocketFlags パラメーターの e プロパティは、Window Sockets サービス プロバイダーに読み取り要求に関する追加情報を提供します。 このパラメーターの使用方法の詳細については、 System.Net.Sockets.SocketFlagsを参照してください。
このメソッドを正常に呼び出すには、 System.Net.Sockets.SocketAsyncEventArgs オブジェクトの次のプロパティとイベントが必要です。
呼び出し元は、コールバック メソッドで情報を取得できるように、SocketAsyncEventArgs.UserToken メソッドを呼び出す前に必要な任意のユーザー状態オブジェクトにReceiveFromAsync プロパティを設定できます。 コールバックに 1 つのオブジェクトよりも多くの情報が必要な場合は、他の必要な状態情報をメンバーとして保持する小さなクラスを作成できます。
メッセージ指向ソケットの場合、受信メッセージはバッファーの合計サイズまでバッファーに配置されます。 SocketAsyncEventArgs.CountプロパティとSocketAsyncEventArgs.Offsetプロパティによって、バッファー内のデータの配置場所とデータ量が決まります。
バイト ストリーム スタイルのソケットの場合、受信データは、バッファーがいっぱいになるか、接続が閉じられるか、内部でバッファーに格納されたデータが使い果たされるまでバッファーに配置されます。 SocketAsyncEventArgs.CountプロパティとSocketAsyncEventArgs.Offsetプロパティによって、バッファー内のデータの配置場所とデータ量が決まります。