Socket.ReceiveFromAsync(SocketAsyncEventArgs) メソッド

定義

指定したネットワーク デバイスからのデータの非同期受信を開始します。

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

パラメーター

e
SocketAsyncEventArgs

この非同期ソケット操作に使用する 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プロパティによって、バッファー内のデータの配置場所とデータ量が決まります。

適用対象

こちらもご覧ください