Socket.BeginReceive Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Começa a receber de maneira assíncrona dados de um Socket conectado.
Sobrecargas
BeginReceive(Byte[], Int32, Int32, SocketFlags, SocketError, AsyncCallback, Object) |
Começa a receber de maneira assíncrona dados de um Socket conectado. |
BeginReceive(Byte[], Int32, Int32, SocketFlags, AsyncCallback, Object) |
Começa a receber de maneira assíncrona dados de um Socket conectado. |
BeginReceive(IList<ArraySegment<Byte>>, SocketFlags, AsyncCallback, Object) |
Começa a receber de maneira assíncrona dados de um Socket conectado. |
BeginReceive(IList<ArraySegment<Byte>>, SocketFlags, SocketError, AsyncCallback, Object) |
Começa a receber de maneira assíncrona dados de um Socket conectado. |
BeginReceive(Byte[], Int32, Int32, SocketFlags, SocketError, AsyncCallback, Object)
- Origem:
- Socket.cs
- Origem:
- Socket.cs
- Origem:
- Socket.cs
Começa a receber de maneira assíncrona dados de um Socket conectado.
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 (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);
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
Parâmetros
- offset
- Int32
O local no buffer
para armazenar os dados recebidos.
- size
- Int32
O número de bytes a serem recebidos.
- socketFlags
- SocketFlags
Uma combinação bit a bit dos valores SocketFlags.
- errorCode
- SocketError
Um objeto SocketError que armazena o erro de soquete.
- callback
- AsyncCallback
Um delegado AsyncCallback que faz referência ao método a ser invocado quando a operação é concluída.
- state
- Object
Um objeto definido pelo usuário que contém informações sobre a operação de recebimento. Esse objeto é passado para o delegado EndReceive(IAsyncResult) quando a operação é concluída.
Retornos
Um IAsyncResult que faz referência à leitura assíncrona.
Exceções
buffer
é null
.
.NET Framework e .NET 5 e somente anteriores: ocorreu um erro ao tentar acessar o soquete.
O Socket foi fechado.
offset
é menor que 0.
- ou -
offset
é maior que o comprimento do buffer
.
- ou -
size
é menor que 0.
- ou -
size
é maior que o comprimento da subtração de buffer
e do valor do parâmetro offset
.
Comentários
Importante
Essa é uma API de compatibilidade. Não recomendamos usar os métodos APM (Begin*
e End*
) para novo desenvolvimento. Em vez disso, use os Task
equivalentes baseados em .
Você pode passar um retorno de chamada que implementa AsyncCallback para BeginReceive ser notificado sobre a conclusão da operação. Observe que, se a pilha de rede subjacente concluir a operação de forma síncrona, o retorno de chamada será executado embutido durante a chamada para BeginReceive. Nesse caso, a CompletedSynchronously propriedade no retornado IAsyncResult será definida true
como para indicar que o método foi concluído de forma síncrona. Use a AsyncState propriedade do IAsyncResult para obter o objeto de estado passado para o BeginReceive método .
A operação assíncrona BeginReceive deve ser concluída chamando o EndReceive método . Normalmente, o método é invocado pelo AsyncCallback delegado. EndReceive bloqueará o thread de chamada até que a operação seja concluída.
Feche o Socket para cancelar um pendente BeginReceive. Quando o Close método é chamado enquanto uma operação assíncrona está em andamento, o retorno de chamada fornecido ao BeginReceive método é chamado. Uma chamada subsequente para o EndReceive método gerará um ObjectDisposedException (antes do .NET 7) ou um SocketException (no .NET 7+) para indicar que a operação foi cancelada.
Observação
Se você receber um SocketException, use a SocketException.ErrorCode propriedade para obter o código de erro específico.
Observação
Todas as E/S iniciadas por um determinado thread são canceladas quando esse thread é encerrado. Uma operação assíncrona pendente poderá falhar se o thread for encerrado antes da conclusão da operação.
Observação
state
é uma instanciação de uma classe definida pelo usuário.
Observação
Esse membro emite o rastreamento de informações quando você ativa o rastreamento de rede em seu aplicativo. Para obter mais informações, consulte Rastreamento de rede em .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 . Após o primeiro uso de um contexto específico (um método assíncrono Socket específico, uma instância específica Socket e um retorno de chamada específico), os usos subsequentes desse contexto verão uma melhoria de desempenho.
Confira também
- EndAccept(IAsyncResult)
- AsyncCallback
- Connect(EndPoint)
- BeginReceiveFrom(Byte[], Int32, Int32, SocketFlags, EndPoint, AsyncCallback, Object)
- Realizando marshaling de um delegado como um método de retorno de chamada
- Exemplo de soquete de cliente assíncrono
- Exemplo de soquete de servidor assíncrono
Aplica-se a
BeginReceive(Byte[], Int32, Int32, SocketFlags, AsyncCallback, Object)
- Origem:
- Socket.cs
- Origem:
- Socket.cs
- Origem:
- Socket.cs
Começa a receber de maneira assíncrona dados de um Socket conectado.
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 (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);
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
Parâmetros
- offset
- Int32
A posição de base zero no parâmetro buffer
no qual armazenar os dados recebidos.
- size
- Int32
O número de bytes a serem recebidos.
- socketFlags
- SocketFlags
Uma combinação bit a bit dos valores SocketFlags.
- callback
- AsyncCallback
Um delegado AsyncCallback que faz referência ao método a ser invocado quando a operação é concluída.
- state
- Object
Um objeto definido pelo usuário que contém informações sobre a operação de recebimento. Esse objeto é passado para o delegado EndReceive(IAsyncResult) quando a operação é concluída.
Retornos
Um IAsyncResult que faz referência à leitura assíncrona.
Exceções
buffer
é null
.
.NET Framework e .NET 5 e somente anteriores: ocorreu um erro ao tentar acessar o soquete.
O Socket foi fechado.
offset
é menor que 0.
- ou -
offset
é maior que o comprimento do buffer
.
- ou -
size
é menor que 0.
- ou -
size
é maior que o comprimento da subtração de buffer
e do valor do parâmetro offset
.
Comentários
Importante
Essa é uma API de compatibilidade. Não recomendamos usar os métodos APM (Begin*
e End*
) para novo desenvolvimento. Em vez disso, use os Task
equivalentes baseados em .
Você pode passar um retorno de chamada que implementa AsyncCallback para BeginReceive ser notificado sobre a conclusão da operação. Observe que, se a pilha de rede subjacente concluir a operação de forma síncrona, o retorno de chamada será executado embutido durante a chamada para BeginReceive. Nesse caso, a CompletedSynchronously propriedade no retornado IAsyncResult será definida true
como para indicar que o método foi concluído de forma síncrona. Use a AsyncState propriedade do IAsyncResult para obter o objeto de estado passado para o BeginReceive método .
A operação assíncrona BeginReceive deve ser concluída chamando o EndReceive método . Normalmente, o método é invocado pelo AsyncCallback delegado. EndReceive bloqueará o thread de chamada até que a operação seja concluída.
Feche o Socket para cancelar um pendente BeginReceive. Quando o Close método é chamado enquanto uma operação assíncrona está em andamento, o retorno de chamada fornecido ao BeginReceive método é chamado. Uma chamada subsequente para o EndReceive método gerará um ObjectDisposedException (antes do .NET 7) ou um SocketException (no .NET 7+) para indicar que a operação foi cancelada.
Observação
Se você receber um SocketException, use a SocketException.ErrorCode propriedade para obter o código de erro específico.
Observação
Todas as E/S iniciadas por um determinado thread são canceladas quando esse thread é encerrado. Uma operação assíncrona pendente poderá falhar se o thread for encerrado antes da conclusão da operação.
Observação
state
é uma instanciação de uma classe definida pelo usuário.
Observação
Esse membro emite o rastreamento de informações quando você ativa o rastreamento de rede em seu aplicativo. Para obter mais informações, consulte Rastreamento de rede em .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 . Após o primeiro uso de um contexto específico (um método assíncrono Socket específico, uma instância específica Socket e um retorno de chamada específico), os usos subsequentes desse contexto verão uma melhoria de desempenho.
Confira também
- EndAccept(IAsyncResult)
- AsyncCallback
- Connect(EndPoint)
- BeginReceiveFrom(Byte[], Int32, Int32, SocketFlags, EndPoint, AsyncCallback, Object)
- Realizando marshaling de um delegado como um método de retorno de chamada
- Exemplo de soquete de cliente assíncrono
- Exemplo de soquete de servidor assíncrono
Aplica-se a
BeginReceive(IList<ArraySegment<Byte>>, SocketFlags, AsyncCallback, Object)
- Origem:
- Socket.cs
- Origem:
- Socket.cs
- Origem:
- Socket.cs
Começa a receber de maneira assíncrona dados de um Socket conectado.
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);
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.
- socketFlags
- SocketFlags
Uma combinação bit a bit dos valores SocketFlags.
- callback
- AsyncCallback
Um delegado AsyncCallback que faz referência ao método a ser invocado quando a operação é concluída.
- state
- Object
Um objeto definido pelo usuário que contém informações sobre a operação de recebimento. Esse objeto é passado para o delegado EndReceive(IAsyncResult) quando a operação é concluída.
Retornos
Um IAsyncResult que faz referência à leitura assíncrona.
Exceções
buffer
é null
.
.NET Framework e .NET 5 e somente anteriores: ocorreu um erro ao tentar acessar o soquete.
O Socket foi fechado.
Comentários
Importante
Essa é uma API de compatibilidade. Não recomendamos usar os métodos APM (Begin*
e End*
) para novo desenvolvimento. Em vez disso, use os Task
equivalentes baseados em .
Você pode passar um retorno de chamada que implementa AsyncCallback para BeginReceive ser notificado sobre a conclusão da operação. Observe que, se a pilha de rede subjacente concluir a operação de forma síncrona, o retorno de chamada será executado embutido durante a chamada para BeginReceive. Nesse caso, a CompletedSynchronously propriedade no retornado IAsyncResult será definida como true
para indicar que o método foi concluído de forma síncrona. Use a AsyncState propriedade do IAsyncResult para obter o objeto de estado passado para o BeginReceive método .
A operação assíncrona BeginReceive deve ser concluída chamando o EndReceive método . Normalmente, o método é invocado pelo AsyncCallback delegado. EndReceive bloqueará o thread de chamada até que a operação seja concluída.
Feche o Socket para cancelar um pendente BeginReceive. Quando o Close método é chamado enquanto uma operação assíncrona está em andamento, o retorno de chamada fornecido ao BeginReceive método é chamado. Uma chamada subsequente para o EndReceive método lançará um ObjectDisposedException (antes do .NET 7) ou um SocketException (no .NET 7+) para indicar que a operação foi cancelada.
Observação
Se você receber um SocketException, use a SocketException.ErrorCode propriedade para obter o código de erro específico.
Observação
Todas as E/S iniciadas por um determinado thread são canceladas quando esse thread é encerrado. Uma operação assíncrona pendente poderá falhar se o thread for encerrado antes da conclusão da operação.
Observação
state
é uma instanciação de uma classe definida pelo usuário.
Observação
Esse membro emite o rastreamento de informações quando você ativa o rastreamento de rede em seu aplicativo. Para obter mais informações, consulte Rastreamento de rede em .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 . Após o primeiro uso de um contexto específico (um método assíncrono Socket específico, uma instância específica Socket e um retorno de chamada específico), os usos subsequentes desse contexto verão uma melhoria de desempenho.
Confira também
- EndAccept(IAsyncResult)
- AsyncCallback
- Connect(EndPoint)
- BeginReceiveFrom(Byte[], Int32, Int32, SocketFlags, EndPoint, AsyncCallback, Object)
- Realizando marshaling de um delegado como um método de retorno de chamada
- Exemplo de soquete de cliente assíncrono
- Exemplo de soquete de servidor assíncrono
Aplica-se a
BeginReceive(IList<ArraySegment<Byte>>, SocketFlags, SocketError, AsyncCallback, Object)
- Origem:
- Socket.cs
- Origem:
- Socket.cs
- Origem:
- Socket.cs
Começa a receber de maneira assíncrona dados de um Socket conectado.
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);
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.
- socketFlags
- SocketFlags
Uma combinação bit a bit dos valores SocketFlags.
- errorCode
- SocketError
Um objeto SocketError que armazena o erro de soquete.
- callback
- AsyncCallback
Um delegado AsyncCallback que faz referência ao método a ser invocado quando a operação é concluída.
- state
- Object
Um objeto definido pelo usuário que contém informações sobre a operação de recebimento. Esse objeto é passado para o delegado EndReceive(IAsyncResult) quando a operação é concluída.
Retornos
Um IAsyncResult que faz referência à leitura assíncrona.
Exceções
buffer
é null
.
.NET Framework e .NET 5 e somente anteriores: ocorreu um erro ao tentar acessar o soquete.
O Socket foi fechado.
Comentários
Importante
Essa é uma API de compatibilidade. Não recomendamos usar os métodos APM (Begin*
e End*
) para novo desenvolvimento. Em vez disso, use os Task
equivalentes baseados em .
Você pode passar um retorno de chamada que implementa AsyncCallback para BeginReceive ser notificado sobre a conclusão da operação. Observe que, se a pilha de rede subjacente concluir a operação de forma síncrona, o retorno de chamada será executado embutido durante a chamada para BeginReceive. Nesse caso, a CompletedSynchronously propriedade no retornado IAsyncResult será definida como true
para indicar que o método foi concluído de forma síncrona. Use a AsyncState propriedade do IAsyncResult para obter o objeto de estado passado para o BeginReceive método .
A operação assíncrona BeginReceive deve ser concluída chamando o EndReceive método . Normalmente, o método é invocado pelo AsyncCallback delegado. EndReceive bloqueará o thread de chamada até que a operação seja concluída.
Feche o Socket para cancelar um pendente BeginReceive. Quando o Close método é chamado enquanto uma operação assíncrona está em andamento, o retorno de chamada fornecido ao BeginReceive método é chamado. Uma chamada subsequente para o EndReceive método lançará um ObjectDisposedException (antes do .NET 7) ou um SocketException (no .NET 7+) para indicar que a operação foi cancelada.
Observação
Se você receber um SocketException, use a SocketException.ErrorCode propriedade para obter o código de erro específico.
Observação
Todas as E/S iniciadas por um determinado thread são canceladas quando esse thread é encerrado. Uma operação assíncrona pendente poderá falhar se o thread for encerrado antes da conclusão da operação.
Observação
state
é uma instanciação de uma classe definida pelo usuário.
Observação
Esse membro emite o rastreamento de informações quando você ativa o rastreamento de rede em seu aplicativo. Para obter mais informações, consulte Rastreamento de rede em .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 . Após o primeiro uso de um contexto específico (um método assíncrono Socket específico, uma instância específica Socket e um retorno de chamada específico), os usos subsequentes desse contexto verão uma melhoria de desempenho.
Confira também
- EndAccept(IAsyncResult)
- AsyncCallback
- Connect(EndPoint)
- BeginReceiveFrom(Byte[], Int32, Int32, SocketFlags, EndPoint, AsyncCallback, Object)
- Realizando marshaling de um delegado como um método de retorno de chamada
- Exemplo de soquete de cliente assíncrono
- Exemplo de soquete de servidor assíncrono