Socket.BeginReceive Método

Definição

Começa a receber de maneira assíncrona dados de um Socket conectado.Begins to asynchronously receive data from a connected Socket.

Sobrecargas

BeginReceive(Byte[], Int32, Int32, SocketFlags, SocketError, AsyncCallback, Object)

Começa a receber de maneira assíncrona dados de um Socket conectado.Begins to asynchronously receive data from a connected Socket.

BeginReceive(Byte[], Int32, Int32, SocketFlags, AsyncCallback, Object)

Começa a receber de maneira assíncrona dados de um Socket conectado.Begins to asynchronously receive data from a connected Socket.

BeginReceive(IList<ArraySegment<Byte>>, SocketFlags, SocketError, AsyncCallback, Object)

Começa a receber de maneira assíncrona dados de um Socket conectado.Begins to asynchronously receive data from a connected Socket.

BeginReceive(IList<ArraySegment<Byte>>, SocketFlags, AsyncCallback, Object)

Começa a receber de maneira assíncrona dados de um Socket conectado.Begins to asynchronously receive data from a connected Socket.

BeginReceive(Byte[], Int32, Int32, SocketFlags, SocketError, AsyncCallback, Object)

Começa a receber de maneira assíncrona dados de um Socket conectado.Begins to asynchronously receive data from a connected Socket.

public:
 IAsyncResult ^ BeginReceive(cli::array <System::Byte> ^ buffer, int offset, int size, System::Net::Sockets::SocketFlags socketFlags, [Runtime::InteropServices::Out] System::Net::Sockets::SocketError % errorCode, AsyncCallback ^ callback, System::Object ^ state);
public:
 IAsyncResult ^ BeginReceive(cli::array <System::Byte> ^ buffer, int offset, int size, System::Net::Sockets::SocketFlags flags, [Runtime::InteropServices::Out] System::Net::Sockets::SocketError % error, AsyncCallback ^ callback, System::Object ^ state);
public IAsyncResult? BeginReceive (byte[] buffer, int offset, int size, System.Net.Sockets.SocketFlags socketFlags, out System.Net.Sockets.SocketError? errorCode, AsyncCallback? callback, object? state);
public IAsyncResult BeginReceive (byte[] buffer, int offset, int size, System.Net.Sockets.SocketFlags socketFlags, out System.Net.Sockets.SocketError errorCode, AsyncCallback callback, object state);
public IAsyncResult BeginReceive (byte[] buffer, int offset, int size, System.Net.Sockets.SocketFlags flags, out System.Net.Sockets.SocketError error, AsyncCallback callback, object state);
member this.BeginReceive : byte[] * int * int * System.Net.Sockets.SocketFlags * SocketError * AsyncCallback * obj -> IAsyncResult
member this.BeginReceive : byte[] * int * int * System.Net.Sockets.SocketFlags * SocketError * AsyncCallback * obj -> IAsyncResult
Public Function BeginReceive (buffer As Byte(), offset As Integer, size As Integer, socketFlags As SocketFlags, ByRef errorCode As SocketError, callback As AsyncCallback, state As Object) As IAsyncResult
Public Function BeginReceive (buffer As Byte(), offset As Integer, size As Integer, flags As SocketFlags, ByRef error As SocketError, callback As AsyncCallback, state As Object) As IAsyncResult

Parâmetros

buffer
Byte[]

Uma matriz do tipo Byte que é o local de armazenamento dos dados recebidos.An array of type Byte that is the storage location for the received data.

offset
Int32

O local no buffer para armazenar os dados recebidos.The location in buffer to store the received data.

size
Int32

O número de bytes a serem recebidos.The number of bytes to receive.

socketFlagsflags
SocketFlags

Uma combinação bit a bit dos valores SocketFlags.A bitwise combination of the SocketFlags values.

errorCodeerror
SocketError

Um objeto SocketError que armazena o erro de soquete.A SocketError object that stores the socket error.

callback
AsyncCallback

Um delegado AsyncCallback que faz referência ao método a ser invocado quando a operação é concluída.An AsyncCallback delegate that references the method to invoke when the operation is complete.

state
Object

Um objeto definido pelo usuário que contém informações sobre a operação de recebimento.A user-defined object that contains information about the receive operation. Esse objeto é passado para o delegado EndReceive(IAsyncResult) quando a operação é concluída.This object is passed to the EndReceive(IAsyncResult) delegate when the operation is complete.

Retornos

IAsyncResult

Um IAsyncResult que faz referência à leitura assíncrona.An IAsyncResult that references the asynchronous read.

Exceções

buffer é null.buffer is null.

Ocorreu um erro ao tentar acessar o soquete.An error occurred when attempting to access the socket.

O Socket foi fechado.Socket has been closed.

offset é menor que 0.offset is less than 0.

- ou --or- offset é maior que o comprimento do buffer.offset is greater than the length of buffer.

- ou --or- size é menor que 0.size is less than 0.

- ou --or- size é maior que o comprimento da subtração de buffer e do valor do parâmetro offset.size is greater than the length of buffer minus the value of the offset parameter.

Comentários

A operação assíncrona BeginReceive deve ser concluída chamando o EndReceive método.The asynchronous BeginReceive operation must be completed by calling the EndReceive method. Normalmente, o método é invocado pelo callback delegado.Typically, the method is invoked by the callback delegate.

Este método não é bloqueado até que a operação seja concluída.This method does not block until the operation is complete. Para bloquear até que a operação seja concluída, use uma das Receive sobrecargas de método.To block until the operation is complete, use one of the Receive method overloads.

Para cancelar um pendente BeginReceive , chame o Close método.To cancel a pending BeginReceive, call the Close method.

Para obter informações detalhadas sobre como usar o modelo de programação assíncrona, consulte chamando métodos síncronos de formaassíncrona.For detailed information about using the asynchronous programming model, see Calling Synchronous Methods Asynchronously.

Observação

Se você receber um SocketException , use a SocketException.ErrorCode propriedade para obter o código de erro específico.If you receive a SocketException, use the SocketException.ErrorCode property to obtain the specific error code. Depois de obter esse código, consulte a documentação do código de erro da API do Windows Sockets versão 2 para obter uma descrição detalhada do erro.After you have obtained this code, refer to the Windows Sockets version 2 API error code documentation for a detailed description of the error.

Observação

Todas as e/s iniciadas por um determinado thread são canceladas quando o thread é encerrado.All I/O initiated by a given thread is canceled when that thread exits. Uma operação assíncrona pendente poderá falhar se o thread sair antes da conclusão da operação.A pending asynchronous operation can fail if the thread exits before the operation completes.

Observação

state é uma instanciação de uma classe definida pelo usuário.state is an instantiation of a user-defined class.

Observação

Esse membro emite o rastreamento de informações quando você ativa o rastreamento de rede em seu aplicativo.This member outputs trace information when you enable network tracing in your application. Para obter mais informações, consulte rastreamento de rede na .NET Framework.For more information, see Network Tracing in the .NET Framework.

Observação

O contexto de execução (o contexto de segurança, o usuário representado e o contexto de chamada) é armazenado em cache para os métodos assíncronos Socket .The execution context (the security context, the impersonated user, and the calling context) is cached for the asynchronous Socket methods. Após o primeiro uso de um contexto específico (um método assíncrono específico Socket , uma Socket instância específica e um retorno de chamada específico), os usos subsequentes desse contexto verão uma melhoria no desempenho.After the first use of a particular context (a specific asynchronous Socket method, a specific Socket instance, and a specific callback), subsequent uses of that context will see a performance improvement.

Confira também

Aplica-se a

BeginReceive(Byte[], Int32, Int32, SocketFlags, AsyncCallback, Object)

Começa a receber de maneira assíncrona dados de um Socket conectado.Begins to asynchronously receive data from a connected Socket.

public:
 IAsyncResult ^ BeginReceive(cli::array <System::Byte> ^ buffer, int offset, int size, System::Net::Sockets::SocketFlags socketFlags, AsyncCallback ^ callback, System::Object ^ state);
public:
 IAsyncResult ^ BeginReceive(cli::array <System::Byte> ^ buffer, int offset, int size, System::Net::Sockets::SocketFlags socket_flags, AsyncCallback ^ callback, System::Object ^ state);
public IAsyncResult BeginReceive (byte[] buffer, int offset, int size, System.Net.Sockets.SocketFlags socketFlags, AsyncCallback? callback, object? state);
public IAsyncResult BeginReceive (byte[] buffer, int offset, int size, System.Net.Sockets.SocketFlags socketFlags, AsyncCallback callback, object state);
public IAsyncResult BeginReceive (byte[] buffer, int offset, int size, System.Net.Sockets.SocketFlags socket_flags, AsyncCallback callback, object state);
member this.BeginReceive : byte[] * int * int * System.Net.Sockets.SocketFlags * AsyncCallback * obj -> IAsyncResult
member this.BeginReceive : byte[] * int * int * System.Net.Sockets.SocketFlags * AsyncCallback * obj -> IAsyncResult
Public Function BeginReceive (buffer As Byte(), offset As Integer, size As Integer, socketFlags As SocketFlags, callback As AsyncCallback, state As Object) As IAsyncResult
Public Function BeginReceive (buffer As Byte(), offset As Integer, size As Integer, socket_flags As SocketFlags, callback As AsyncCallback, state As Object) As IAsyncResult

Parâmetros

buffer
Byte[]

Uma matriz do tipo Byte que é o local de armazenamento dos dados recebidos.An array of type Byte that is the storage location for the received data.

offset
Int32

A posição de base zero no parâmetro buffer no qual armazenar os dados recebidos.The zero-based position in the buffer parameter at which to store the received data.

size
Int32

O número de bytes a serem recebidos.The number of bytes to receive.

socketFlagssocket_flags
SocketFlags

Uma combinação bit a bit dos valores SocketFlags.A bitwise combination of the SocketFlags values.

callback
AsyncCallback

Um delegado AsyncCallback que faz referência ao método a ser invocado quando a operação é concluída.An AsyncCallback delegate that references the method to invoke when the operation is complete.

state
Object

Um objeto definido pelo usuário que contém informações sobre a operação de recebimento.A user-defined object that contains information about the receive operation. Esse objeto é passado para o delegado EndReceive(IAsyncResult) quando a operação é concluída.This object is passed to the EndReceive(IAsyncResult) delegate when the operation is complete.

Retornos

IAsyncResult

Um IAsyncResult que faz referência à leitura assíncrona.An IAsyncResult that references the asynchronous read.

Exceções

buffer é null.buffer is null.

Ocorreu um erro ao tentar acessar o soquete.An error occurred when attempting to access the socket.

O Socket foi fechado.Socket has been closed.

offset é menor que 0.offset is less than 0.

- ou --or- offset é maior que o comprimento do buffer.offset is greater than the length of buffer.

- ou --or- size é menor que 0.size is less than 0.

- ou --or- size é maior que o comprimento da subtração de buffer e do valor do parâmetro offset.size is greater than the length of buffer minus the value of the offset parameter.

Exemplos

O exemplo de código a seguir começa a receber dados de forma assíncrona de um conectado Socket .The following code example begins to asynchronously receive data from a connected Socket.

public ref class StateObject
{
public:
   literal int BUFFER_SIZE = 1024;
   Socket^ workSocket;
   array<Byte>^ buffer;
   StringBuilder^ sb;
   StateObject() : workSocket( nullptr )
   {
      buffer = gcnew array<Byte>(BUFFER_SIZE);
      sb = gcnew StringBuilder;
   }
};
public class StateObject{
     public Socket workSocket = null;
     public const int BUFFER_SIZE = 1024;
     public byte[] buffer = new byte[BUFFER_SIZE];
     public StringBuilder sb = new StringBuilder();
}
Public Class StateObject
   Public workSocket As Socket = Nothing
   Public const BUFFER_SIZE As Integer = 1024
   Public buffer(BUFFER_SIZE) As byte
   Public sb As New StringBuilder()
End Class
static void Listen_Callback( IAsyncResult^ ar )
{
   allDone->Set();
   Socket^ s = safe_cast<Socket^>(ar->AsyncState);
   Socket^ s2 = s->EndAccept( ar );
   StateObject^ so2 = gcnew StateObject;
   so2->workSocket = s2;
   s2->BeginReceive( so2->buffer, 0, StateObject::BUFFER_SIZE, SocketFlags::None,
      gcnew AsyncCallback( &Async_Send_Receive::Read_Callback ), so2 );
}
public static void Listen_Callback(IAsyncResult ar){
     allDone.Set();
     Socket s = (Socket) ar.AsyncState;
     Socket s2 = s.EndAccept(ar);
     StateObject so2 = new StateObject();
     so2.workSocket = s2;
     s2.BeginReceive(so2.buffer, 0, StateObject.BUFFER_SIZE,0,
                           new AsyncCallback(Async_Send_Receive.Read_Callback), so2);	
}
Public Shared Sub Listen_Callback(ar As IAsyncResult)
   allDone.Set()
   Dim s As Socket = CType(ar.AsyncState, Socket)
   Dim s2 As Socket = s.EndAccept(ar)
   Dim so2 As New StateObject()
   so2.workSocket = s2
   s2.BeginReceive(so2.buffer, 0, StateObject.BUFFER_SIZE, 0, New AsyncCallback(AddressOf Async_Send_Receive.Read_Callback), so2)
End Sub

static void Read_Callback( IAsyncResult^ ar )
{
   StateObject^ so = safe_cast<StateObject^>(ar->AsyncState);
   Socket^ s = so->workSocket;

   int read = s->EndReceive( ar );

   if ( read > 0 )
   {
      so->sb->Append( Encoding::ASCII->GetString( so->buffer, 0, read ) );
      s->BeginReceive( so->buffer, 0, StateObject::BUFFER_SIZE, SocketFlags::None,
         gcnew AsyncCallback( &Async_Send_Receive::Read_Callback ), so );
   }
   else
   {
      if ( so->sb->Length > 1 )
      {
         //All of the data has been read, so displays it to the console
         String^ strContent = so->sb->ToString();
         Console::WriteLine( String::Format( "Read {0} byte from socket" +
            " data = {1} ", strContent->Length, strContent ) );
      }
      s->Close();
   }
}
public static void Read_Callback(IAsyncResult ar){
    StateObject so = (StateObject) ar.AsyncState;
    Socket s = so.workSocket;

    int read = s.EndReceive(ar);

    if (read > 0) {
            so.sb.Append(Encoding.ASCII.GetString(so.buffer, 0, read));
            s.BeginReceive(so.buffer, 0, StateObject.BUFFER_SIZE, 0,
                                     new AsyncCallback(Async_Send_Receive.Read_Callback), so);
    }
    else{
         if (so.sb.Length > 1) {
              //All of the data has been read, so displays it to the console
              string strContent;
              strContent = so.sb.ToString();
              Console.WriteLine(String.Format("Read {0} byte from socket" +
                               "data = {1} ", strContent.Length, strContent));
         }
         s.Close();
    }
}
Public Shared Sub Read_Callback(ar As IAsyncResult)
   Dim so As StateObject = CType(ar.AsyncState, StateObject)
   Dim s As Socket = so.workSocket
   
   Dim read As Integer = s.EndReceive(ar)
   
   If read > 0 Then
      so.sb.Append(Encoding.ASCII.GetString(so.buffer, 0, read))
      s.BeginReceive(so.buffer, 0, StateObject.BUFFER_SIZE, 0, New AsyncCallback(AddressOf Async_Send_Receive.Read_Callback), so)
   Else
      If so.sb.Length > 1 Then
         'All the data has been read, so displays it to the console
         Dim strContent As String
         strContent = so.sb.ToString()
         Console.WriteLine([String].Format("Read {0} byte from socket" + "data = {1} ", strContent.Length, strContent))
      End If
      s.Close()
   End If
End Sub

Comentários

A operação assíncrona BeginReceive deve ser concluída chamando o EndReceive método.The asynchronous BeginReceive operation must be completed by calling the EndReceive method. Normalmente, o método é invocado pelo callback delegado.Typically, the method is invoked by the callback delegate.

Este método não é bloqueado até que a operação seja concluída.This method does not block until the operation is complete. Para bloquear até que a operação seja concluída, use uma das Receive sobrecargas de método.To block until the operation is complete, use one of the Receive method overloads.

Para cancelar um pendente BeginReceive , chame o Close método.To cancel a pending BeginReceive, call the Close method.

Para obter informações detalhadas sobre como usar o modelo de programação assíncrona, consulte chamando métodos síncronos de formaassíncrona.For detailed information about using the asynchronous programming model, see Calling Synchronous Methods Asynchronously.

Observação

Se você receber um SocketException , use a SocketException.ErrorCode propriedade para obter o código de erro específico.If you receive a SocketException, use the SocketException.ErrorCode property to obtain the specific error code. Depois de obter esse código, consulte a documentação do código de erro da API do Windows Sockets versão 2 para obter uma descrição detalhada do erro.After you have obtained this code, refer to the Windows Sockets version 2 API error code documentation for a detailed description of the error.

Observação

Todas as e/s iniciadas por um determinado thread são canceladas quando o thread é encerrado.All I/O initiated by a given thread is canceled when that thread exits. Uma operação assíncrona pendente poderá falhar se o thread sair antes da conclusão da operação.A pending asynchronous operation can fail if the thread exits before the operation completes.

Observação

state é uma instanciação de uma classe definida pelo usuário.state is an instantiation of a user-defined class.

Observação

Esse membro emite o rastreamento de informações quando você ativa o rastreamento de rede em seu aplicativo.This member outputs trace information when you enable network tracing in your application. Para obter mais informações, consulte rastreamento de rede na .NET Framework.For more information, see Network Tracing in the .NET Framework.

Observação

O contexto de execução (o contexto de segurança, o usuário representado e o contexto de chamada) é armazenado em cache para os métodos assíncronos Socket .The execution context (the security context, the impersonated user, and the calling context) is cached for the asynchronous Socket methods. Após o primeiro uso de um contexto específico (um método assíncrono específico Socket , uma Socket instância específica e um retorno de chamada específico), os usos subsequentes desse contexto verão uma melhoria no desempenho.After the first use of a particular context (a specific asynchronous Socket method, a specific Socket instance, and a specific callback), subsequent uses of that context will see a performance improvement.

Confira também

Aplica-se a

BeginReceive(IList<ArraySegment<Byte>>, SocketFlags, SocketError, AsyncCallback, Object)

Importante

Esta API não está em conformidade com CLS.

Começa a receber de maneira assíncrona dados de um Socket conectado.Begins to asynchronously receive data from a connected Socket.

public:
 IAsyncResult ^ BeginReceive(System::Collections::Generic::IList<ArraySegment<System::Byte>> ^ buffers, System::Net::Sockets::SocketFlags socketFlags, [Runtime::InteropServices::Out] System::Net::Sockets::SocketError % errorCode, AsyncCallback ^ callback, System::Object ^ state);
public IAsyncResult? BeginReceive (System.Collections.Generic.IList<ArraySegment<byte>> buffers, System.Net.Sockets.SocketFlags socketFlags, out System.Net.Sockets.SocketError? errorCode, AsyncCallback? callback, object? state);
public IAsyncResult BeginReceive (System.Collections.Generic.IList<ArraySegment<byte>> buffers, System.Net.Sockets.SocketFlags socketFlags, out System.Net.Sockets.SocketError errorCode, AsyncCallback callback, object state);
[System.CLSCompliant(false)]
public IAsyncResult BeginReceive (System.Collections.Generic.IList<ArraySegment<byte>> buffers, System.Net.Sockets.SocketFlags socketFlags, out System.Net.Sockets.SocketError errorCode, AsyncCallback callback, object state);
member this.BeginReceive : System.Collections.Generic.IList<ArraySegment<byte>> * System.Net.Sockets.SocketFlags * SocketError * AsyncCallback * obj -> IAsyncResult
[<System.CLSCompliant(false)>]
member this.BeginReceive : System.Collections.Generic.IList<ArraySegment<byte>> * System.Net.Sockets.SocketFlags * SocketError * AsyncCallback * obj -> IAsyncResult
Public Function BeginReceive (buffers As IList(Of ArraySegment(Of Byte)), socketFlags As SocketFlags, ByRef errorCode As SocketError, callback As AsyncCallback, state As Object) As IAsyncResult

Parâmetros

buffers
IList<ArraySegment<Byte>>

Uma matriz do tipo Byte que é o local de armazenamento dos dados recebidos.An array of type Byte that is the storage location for the received data.

socketFlags
SocketFlags

Uma combinação bit a bit dos valores SocketFlags.A bitwise combination of the SocketFlags values.

errorCode
SocketError

Um objeto SocketError que armazena o erro de soquete.A SocketError object that stores the socket error.

callback
AsyncCallback

Um delegado AsyncCallback que faz referência ao método a ser invocado quando a operação é concluída.An AsyncCallback delegate that references the method to invoke when the operation is complete.

state
Object

Um objeto definido pelo usuário que contém informações sobre a operação de recebimento.A user-defined object that contains information about the receive operation. Esse objeto é passado para o delegado EndReceive(IAsyncResult) quando a operação é concluída.This object is passed to the EndReceive(IAsyncResult) delegate when the operation is complete.

Retornos

IAsyncResult

Um IAsyncResult que faz referência à leitura assíncrona.An IAsyncResult that references the asynchronous read.

Atributos

Exceções

buffer é null.buffer is null.

Ocorreu um erro ao tentar acessar o soquete.An error occurred when attempting to access the socket.

O Socket foi fechado.Socket has been closed.

Comentários

A operação assíncrona BeginReceive deve ser concluída chamando o EndReceive método.The asynchronous BeginReceive operation must be completed by calling the EndReceive method. Normalmente, o método é invocado pelo callback delegado.Typically, the method is invoked by the callback delegate.

Este método não é bloqueado até que a operação seja concluída.This method does not block until the operation is complete. Para bloquear até que a operação seja concluída, use uma das Receive sobrecargas de método.To block until the operation is complete, use one of the Receive method overloads.

Para cancelar um pendente BeginReceive , chame o Close método.To cancel a pending BeginReceive, call the Close method.

Para obter informações detalhadas sobre como usar o modelo de programação assíncrona, consulte chamando métodos síncronos de formaassíncrona.For detailed information about using the asynchronous programming model, see Calling Synchronous Methods Asynchronously.

Observação

Se você receber um SocketException , use a SocketException.ErrorCode propriedade para obter o código de erro específico.If you receive a SocketException, use the SocketException.ErrorCode property to obtain the specific error code. Depois de obter esse código, consulte a documentação do código de erro da API do Windows Sockets versão 2 para obter uma descrição detalhada do erro.After you have obtained this code, refer to the Windows Sockets version 2 API error code documentation for a detailed description of the error.

Observação

Todas as e/s iniciadas por um determinado thread são canceladas quando o thread é encerrado.All I/O initiated by a given thread is canceled when that thread exits. Uma operação assíncrona pendente poderá falhar se o thread sair antes da conclusão da operação.A pending asynchronous operation can fail if the thread exits before the operation completes.

Observação

state é uma instanciação de uma classe definida pelo usuário.state is an instantiation of a user-defined class.

Observação

Esse membro emite o rastreamento de informações quando você ativa o rastreamento de rede em seu aplicativo.This member outputs trace information when you enable network tracing in your application. Para obter mais informações, consulte rastreamento de rede na .NET Framework.For more information, see Network Tracing in the .NET Framework.

Observação

O contexto de execução (o contexto de segurança, o usuário representado e o contexto de chamada) é armazenado em cache para os métodos assíncronos Socket .The execution context (the security context, the impersonated user, and the calling context) is cached for the asynchronous Socket methods. Após o primeiro uso de um contexto específico (um método assíncrono específico Socket , uma Socket instância específica e um retorno de chamada específico), os usos subsequentes desse contexto verão uma melhoria no desempenho.After the first use of a particular context (a specific asynchronous Socket method, a specific Socket instance, and a specific callback), subsequent uses of that context will see a performance improvement.

Confira também

Aplica-se a

BeginReceive(IList<ArraySegment<Byte>>, SocketFlags, AsyncCallback, Object)

Importante

Esta API não está em conformidade com CLS.

Começa a receber de maneira assíncrona dados de um Socket conectado.Begins to asynchronously receive data from a connected Socket.

public:
 IAsyncResult ^ BeginReceive(System::Collections::Generic::IList<ArraySegment<System::Byte>> ^ buffers, System::Net::Sockets::SocketFlags socketFlags, AsyncCallback ^ callback, System::Object ^ state);
public IAsyncResult BeginReceive (System.Collections.Generic.IList<ArraySegment<byte>> buffers, System.Net.Sockets.SocketFlags socketFlags, AsyncCallback? callback, object? state);
public IAsyncResult BeginReceive (System.Collections.Generic.IList<ArraySegment<byte>> buffers, System.Net.Sockets.SocketFlags socketFlags, AsyncCallback callback, object state);
[System.CLSCompliant(false)]
public IAsyncResult BeginReceive (System.Collections.Generic.IList<ArraySegment<byte>> buffers, System.Net.Sockets.SocketFlags socketFlags, AsyncCallback callback, object state);
member this.BeginReceive : System.Collections.Generic.IList<ArraySegment<byte>> * System.Net.Sockets.SocketFlags * AsyncCallback * obj -> IAsyncResult
[<System.CLSCompliant(false)>]
member this.BeginReceive : System.Collections.Generic.IList<ArraySegment<byte>> * System.Net.Sockets.SocketFlags * AsyncCallback * obj -> IAsyncResult
Public Function BeginReceive (buffers As IList(Of ArraySegment(Of Byte)), socketFlags As SocketFlags, callback As AsyncCallback, state As Object) As IAsyncResult

Parâmetros

buffers
IList<ArraySegment<Byte>>

Uma matriz do tipo Byte que é o local de armazenamento dos dados recebidos.An array of type Byte that is the storage location for the received data.

socketFlags
SocketFlags

Uma combinação bit a bit dos valores SocketFlags.A bitwise combination of the SocketFlags values.

callback
AsyncCallback

Um delegado AsyncCallback que faz referência ao método a ser invocado quando a operação é concluída.An AsyncCallback delegate that references the method to invoke when the operation is complete.

state
Object

Um objeto definido pelo usuário que contém informações sobre a operação de recebimento.A user-defined object that contains information about the receive operation. Esse objeto é passado para o delegado EndReceive(IAsyncResult) quando a operação é concluída.This object is passed to the EndReceive(IAsyncResult) delegate when the operation is complete.

Retornos

IAsyncResult

Um IAsyncResult que faz referência à leitura assíncrona.An IAsyncResult that references the asynchronous read.

Atributos

Exceções

buffer é null.buffer is null.

Ocorreu um erro ao tentar acessar o soquete.An error occurred when attempting to access the socket.

O Socket foi fechado.Socket has been closed.

Comentários

A operação assíncrona BeginReceive deve ser concluída chamando o EndReceive método.The asynchronous BeginReceive operation must be completed by calling the EndReceive method. Normalmente, o método é invocado pelo callback delegado.Typically, the method is invoked by the callback delegate.

Este método não é bloqueado até que a operação seja concluída.This method does not block until the operation is complete. Para bloquear até que a operação seja concluída, use uma das Receive sobrecargas de método.To block until the operation is complete, use one of the Receive method overloads.

Para cancelar um pendente BeginReceive , chame o Close método.To cancel a pending BeginReceive, call the Close method.

Para obter informações detalhadas sobre como usar o modelo de programação assíncrona, consulte chamando métodos síncronos de formaassíncrona.For detailed information about using the asynchronous programming model, see Calling Synchronous Methods Asynchronously.

Observação

Se você receber um SocketException , use a SocketException.ErrorCode propriedade para obter o código de erro específico.If you receive a SocketException, use the SocketException.ErrorCode property to obtain the specific error code. Depois de obter esse código, consulte a documentação do código de erro da API do Windows Sockets versão 2 para obter uma descrição detalhada do erro.After you have obtained this code, refer to the Windows Sockets version 2 API error code documentation for a detailed description of the error.

Observação

Todas as e/s iniciadas por um determinado thread são canceladas quando o thread é encerrado.All I/O initiated by a given thread is canceled when that thread exits. Uma operação assíncrona pendente poderá falhar se o thread sair antes da conclusão da operação.A pending asynchronous operation can fail if the thread exits before the operation completes.

Observação

state é uma instanciação de uma classe definida pelo usuário.state is an instantiation of a user-defined class.

Observação

Esse membro emite o rastreamento de informações quando você ativa o rastreamento de rede em seu aplicativo.This member outputs trace information when you enable network tracing in your application. Para obter mais informações, consulte rastreamento de rede na .NET Framework.For more information, see Network Tracing in the .NET Framework.

Observação

O contexto de execução (o contexto de segurança, o usuário representado e o contexto de chamada) é armazenado em cache para os métodos assíncronos Socket .The execution context (the security context, the impersonated user, and the calling context) is cached for the asynchronous Socket methods. Após o primeiro uso de um contexto específico (um método assíncrono específico Socket , uma Socket instância específica e um retorno de chamada específico), os usos subsequentes desse contexto verão uma melhoria no desempenho.After the first use of a particular context (a specific asynchronous Socket method, a specific Socket instance, and a specific callback), subsequent uses of that context will see a performance improvement.

Confira também

Aplica-se a