Socket.ReceiveFromAsync(SocketAsyncEventArgs) Socket.ReceiveFromAsync(SocketAsyncEventArgs) Socket.ReceiveFromAsync(SocketAsyncEventArgs) Socket.ReceiveFromAsync(SocketAsyncEventArgs) Method

定義

指定したネットワーク デバイスから、データの非同期の受信を開始します。Begins to asynchronously receive data from a specified network device.

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 SocketAsyncEventArgs SocketAsyncEventArgs

この非同期ソケット操作に使用する SocketAsyncEventArgs オブジェクト。The SocketAsyncEventArgs object to use for this asynchronous socket operation.

戻り値

I/O 操作が保留中の場合は truetrue if the I/O operation is pending. 操作の完了時に、e パラメーターの Completed イベントが発生します。The Completed event on the e parameter will be raised upon completion of the operation.

I/O 操作が同期的に完了した場合は falsefalse if the I/O operation completed synchronously. この場合、e パラメーターの Completed イベントは発生しません。メソッド呼び出しから制御が戻った直後に、パラメーターとして渡された e オブジェクトを調べて操作の結果を取得できます。In this case, The Completed event on the e parameter will not be raised and the e object passed as a parameter may be examined immediately after the method call returns to retrieve the result of the operation.

例外

RemoteEndPoint に null 値を指定することはできません。The RemoteEndPoint cannot be null.

e パラメーターに指定された SocketAsyncEventArgs オブジェクトを使用してソケット操作が既に進行していました。A socket operation was already in progress using the SocketAsyncEventArgs object specified in the e parameter.

このメソッドには Windows XP 以降が必要です。Windows XP or later is required for this method.

ソケットへのアクセスを試行しているときにエラーが発生しました。An error occurred when attempting to access the socket.

注釈

メソッドReceiveFromAsyncは、主にコネクションレスソケットでデータを受信するために使用されます。The ReceiveFromAsync method is used primarily to receive data on a connectionless socket. ソケットのローカルアドレスがわかっている必要があります。The socket's local address must be known.

呼び出し元は、 SocketAsyncEventArgs.RemoteEndPointプロパティを、データを受信するリモートホストIPEndPointのに設定する必要があります。The caller must set the SocketAsyncEventArgs.RemoteEndPoint property to the IPEndPoint of the remote host from which the data is to be received.

eパラメーター SocketAsyncEventArgs.SocketFlagsのプロパティは、windows ソケットサービスプロバイダーに読み取り要求に関する追加情報を提供します。The SocketAsyncEventArgs.SocketFlags property on the e parameter provides the Window Sockets service provider with additional information about the read request. このパラメーターの使用方法の詳細についてはSystem.Net.Sockets.SocketFlags、「」を参照してください。For more information about how to use this parameter, see System.Net.Sockets.SocketFlags.

このメソッドを正常に呼び出すにSystem.Net.Sockets.SocketAsyncEventArgsは、オブジェクトの次のプロパティとイベントが必要です。The following properties and events on the System.Net.Sockets.SocketAsyncEventArgs object are required to successfully call this method:

呼び出し元は、 SocketAsyncEventArgs.UserToken ReceiveFromAsyncメソッドを呼び出す前に、プロパティを任意のユーザー状態オブジェクトに設定できます。これにより、コールバックメソッドで情報を取得できるようになります。The caller may set the SocketAsyncEventArgs.UserToken property to any user state object desired before calling the ReceiveFromAsync method, so that the information will be retrievable in the callback method. コールバックが1つのオブジェクトよりも多くの情報を必要とする場合は、他の必要な状態情報をメンバーとして保持するために、小さなクラスを作成できます。If the callback needs more information than a single object, a small class can be created to hold the other required state information as members.

メッセージ指向のソケットの場合は、バッファーの合計サイズまで、受信メッセージがバッファーに格納されます。For message-oriented sockets, an incoming message is placed into the buffer up to the total size of the buffer. プロパティSocketAsyncEventArgs.CountSocketAsyncEventArgs.Offsetプロパティは、データが格納されるバッファー内の場所とデータ量を決定します。The SocketAsyncEventArgs.Count and SocketAsyncEventArgs.Offset properties determine where in the buffer the data is placed and the amount of data.

バイトストリームスタイルのソケットの場合、バッファーがいっぱいになるか、接続が閉じられるか、内部バッファーデータが使い果たされるまで、受信データがバッファーに配置されます。For byte stream-style sockets, incoming data is placed into the buffer until the buffer is filled, the connection is closed, or the internally buffered data is exhausted. プロパティSocketAsyncEventArgs.CountSocketAsyncEventArgs.Offsetプロパティは、データが格納されるバッファー内の場所とデータ量を決定します。The SocketAsyncEventArgs.Count and SocketAsyncEventArgs.Offset properties determine where in the buffer the data is placed and the amount of data.

適用対象

こちらもご覧ください