Socket.Receive 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.
Recebe dados de um limite Socket.
Sobrecargas
| Nome | Description |
|---|---|
| Receive(Byte[], Int32, Int32, SocketFlags, SocketError) |
Recebe dados de um limite Socket em um buffer de recebimento, usando o especificado SocketFlags. |
| Receive(Span<Byte>, SocketFlags, SocketError) |
Recebe dados de um limite Socket em um buffer de recebimento, usando o especificado SocketFlags. |
| Receive(IList<ArraySegment<Byte>>, SocketFlags, SocketError) |
Recebe dados de um limite Socket na lista de buffers de recebimento, usando o especificado SocketFlags. |
| Receive(Byte[], Int32, SocketFlags) |
Recebe o número especificado de bytes de dados de um limite Socket em um buffer de recebimento, usando o especificado SocketFlags. |
| Receive(Span<Byte>, SocketFlags) |
Recebe dados de um limite Socket em um buffer de recebimento, usando o especificado SocketFlags. |
| Receive(Byte[], Int32, Int32, SocketFlags) |
Recebe o número especificado de bytes de um limite Socket para a posição de deslocamento especificada do buffer de recebimento, usando o especificado SocketFlags. |
| Receive(Byte[], SocketFlags) |
Recebe dados de um limite Socket em um buffer de recebimento, usando o especificado SocketFlags. |
| Receive(Span<Byte>) |
Recebe dados de um limite Socket em um buffer de recebimento. |
| Receive(IList<ArraySegment<Byte>>) |
Recebe dados de um limite Socket na lista de buffers de recebimento. |
| Receive(Byte[]) |
Recebe dados de um limite Socket em um buffer de recebimento. |
| Receive(IList<ArraySegment<Byte>>, SocketFlags) |
Recebe dados de um limite Socket na lista de buffers de recebimento, usando o especificado SocketFlags. |
Receive(Byte[], Int32, Int32, SocketFlags, SocketError)
- Origem:
- Socket.cs
- Origem:
- Socket.cs
- Origem:
- Socket.cs
- Origem:
- Socket.cs
- Origem:
- Socket.cs
Recebe dados de um limite Socket em um buffer de recebimento, usando o especificado SocketFlags.
public:
int Receive(cli::array <System::Byte> ^ buffer, int offset, int size, System::Net::Sockets::SocketFlags socketFlags, [Runtime::InteropServices::Out] System::Net::Sockets::SocketError % errorCode);
public int Receive(byte[] buffer, int offset, int size, System.Net.Sockets.SocketFlags socketFlags, out System.Net.Sockets.SocketError errorCode);
member this.Receive : byte[] * int * int * System.Net.Sockets.SocketFlags * SocketError -> int
Public Function Receive (buffer As Byte(), offset As Integer, size As Integer, socketFlags As SocketFlags, ByRef errorCode As SocketError) As Integer
Parâmetros
- offset
- Int32
A posição no buffer parâmetro para armazenar os dados recebidos.
- size
- Int32
O número de bytes a serem recebidos.
- socketFlags
- SocketFlags
Uma combinação bit a bit dos SocketFlags valores.
- errorCode
- SocketError
Um SocketError objeto que armazena o erro do soquete.
Retornos
O número total de bytes recebidos. O método retornará zero (0) somente se zero bytes tiverem sido solicitados ou se não houver mais bytes disponíveis porque o soquete par realizou um desligamento normal.
Exceções
buffer é null.
offset é menor que 0.
- ou -
offset é maior que o comprimento de buffer.
- ou -
size é menor que 0.
- ou -
size é maior que o comprimento de buffer menos o valor do offset parâmetro.
O Socket foi fechado.
Um chamador na pilha de chamadas não tem as permissões necessárias.
Comentários
O Receive método lê dados no parâmetro de buffer e retorna o número de bytes lidos com êxito. Você pode chamar Receive de soquetes orientados à conexão e sem conexão.
Se você estiver usando um protocolo orientado à conexão, deverá chamar Connect para estabelecer uma conexão de host remoto ou Accept aceitar uma conexão de entrada antes de chamar Receive. O Receive método lerá apenas os dados que chegam do host remoto estabelecido no método ou Accept no Connect método. Se você estiver usando um protocolo sem conexão, também poderá usar o ReceiveFrom método. ReceiveFrom permitirá que você receba dados que chegam de qualquer host.
Se nenhum dado estiver disponível para leitura, o Receive método será bloqueado até que os dados sejam disponibilizados, a menos que um valor de tempo limite tenha sido definido usando Socket.ReceiveTimeout. Se o valor do tempo limite tiver sido excedido, a Receive chamada gerará um SocketException. Se você estiver no modo de não bloqueio e não houver dados disponíveis no buffer de pilha de protocolo, o Receive método será concluído imediatamente e gerará um SocketException. Erro ao tentar acessar o soquete. Veja comentários abaixo. Você pode usar a propriedade para determinar se os Available dados estão disponíveis para leitura. Quando Available não for zero, tente novamente a operação de recebimento.
Se você estiver usando uma conexão orientada Socket, o Receive método lerá o máximo de dados que estiver disponível, até o número de bytes especificados pelo parâmetro de tamanho. Se o host remoto desligar a Socket conexão com o Shutdown método e todos os dados disponíveis tiverem sido recebidos, o Receive método será concluído imediatamente e retornará zero bytes.
Se você estiver usando um sem Socketconexão, Receive lerá o primeiro datagrama enfileirado do endereço de destino especificado no Connect método. Se o datagram recebido for maior que o tamanho do buffer parâmetro, buffer será preenchido com a primeira parte da mensagem, o excesso de dados será perdido e um SocketException será gerado.
Observação
Esse membro gera informações de rastreamento quando você habilita o rastreamento de rede em seu aplicativo. Para obter mais informações, consulte Rastreamento de Rede no .NET Framework.
Confira também
- Connect(EndPoint)
- ReceiveFrom(Byte[], Int32, Int32, SocketFlags, EndPoint)
- Available
- Shutdown(SocketShutdown)
- Close()
Aplica-se a
Receive(Span<Byte>, SocketFlags, SocketError)
- Origem:
- Socket.cs
- Origem:
- Socket.cs
- Origem:
- Socket.cs
- Origem:
- Socket.cs
- Origem:
- Socket.cs
Recebe dados de um limite Socket em um buffer de recebimento, usando o especificado SocketFlags.
public:
int Receive(Span<System::Byte> buffer, System::Net::Sockets::SocketFlags socketFlags, [Runtime::InteropServices::Out] System::Net::Sockets::SocketError % errorCode);
public int Receive(Span<byte> buffer, System.Net.Sockets.SocketFlags socketFlags, out System.Net.Sockets.SocketError errorCode);
member this.Receive : Span<byte> * System.Net.Sockets.SocketFlags * SocketError -> int
Public Function Receive (buffer As Span(Of Byte), socketFlags As SocketFlags, ByRef errorCode As SocketError) As Integer
Parâmetros
- socketFlags
- SocketFlags
Uma combinação bit a bit dos valores de enumeração que especifica comportamentos de envio e recebimento.
- errorCode
- SocketError
Quando esse método é retornado, contém um dos valores de enumeração que define códigos de erro para o soquete.
Retornos
O número total de bytes recebidos. O método retornará zero (0) somente se zero bytes tiverem sido solicitados ou se não houver mais bytes disponíveis porque o soquete par realizou um desligamento normal.
Exceções
Erro ao tentar acessar o soquete.
O Socket foi fechado.
Um chamador na pilha de chamadas não tem as permissões necessárias.
Comentários
O Receive método lê dados no parâmetro de buffer e retorna o número de bytes lidos com êxito. Você pode chamar Receive de soquetes orientados à conexão e sem conexão.
Essa sobrecarga exige apenas que você forneça um buffer de recebimento. O deslocamento de buffer usa como padrão 0, o tamanho é padrão para o comprimento do parâmetro de buffer e o valor usa como SocketFlags padrão None.
Se você estiver usando um protocolo orientado à conexão, deverá chamar Connect para estabelecer uma conexão de host remoto ou Accept aceitar uma conexão de entrada antes de chamar Receive. O Receive método lerá apenas os dados que chegam do host remoto estabelecido no método ou Accept no Connect método. Se você estiver usando um protocolo sem conexão, também poderá usar o ReceiveFrom método. ReceiveFrom permitirá que você receba dados que chegam de qualquer host.
Se nenhum dado estiver disponível para leitura, o Receive método será bloqueado até que os dados sejam disponibilizados, a menos que um valor de tempo limite tenha sido definido usando Socket.ReceiveTimeout. Quando o valor de tempo limite for excedido, a Receive chamada gerará um SocketException. Se você estiver no modo de não bloqueio e não houver dados disponíveis no buffer de pilha de protocolo, o Receive método será concluído imediatamente e gerará um SocketException. Você pode usar a propriedade para determinar se os Available dados estão disponíveis para leitura. Quando Available não for zero, tente novamente a operação de recebimento.
Se você estiver usando uma conexão orientada Socket, o Receive método lerá o máximo de dados que estiver disponível, até o tamanho do buffer. Se o host remoto desligar a Socket conexão com o Shutdown método e todos os dados disponíveis tiverem sido recebidos, o Receive método será concluído imediatamente e retornará zero bytes.
Se você estiver usando um sem Socketconexão, Receive lerá o primeiro datagrama enfileirado do endereço de destino especificado no Connect método. Se o datagram recebido for maior que o tamanho do buffer parâmetro, buffer será preenchido com a primeira parte da mensagem, o excesso de dados será perdido e um SocketException será gerado.
Observação
Se você receber um SocketException, use a SocketException.ErrorCode propriedade para obter o código de erro específico. 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.
Observação
Esse membro gera informações de rastreamento quando você habilita o rastreamento de rede em seu aplicativo. Para obter mais informações, consulte Rastreamento de Rede no .NET Framework.
Confira também
- Connect(EndPoint)
- ReceiveFrom(Byte[], Int32, Int32, SocketFlags, EndPoint)
- Available
- Shutdown(SocketShutdown)
- Close()
Aplica-se a
Receive(IList<ArraySegment<Byte>>, SocketFlags, SocketError)
- Origem:
- Socket.cs
- Origem:
- Socket.cs
- Origem:
- Socket.cs
- Origem:
- Socket.cs
- Origem:
- Socket.cs
Recebe dados de um limite Socket na lista de buffers de recebimento, usando o especificado SocketFlags.
public:
int Receive(System::Collections::Generic::IList<ArraySegment<System::Byte>> ^ buffers, System::Net::Sockets::SocketFlags socketFlags, [Runtime::InteropServices::Out] System::Net::Sockets::SocketError % errorCode);
public int Receive(System.Collections.Generic.IList<ArraySegment<byte>> buffers, System.Net.Sockets.SocketFlags socketFlags, out System.Net.Sockets.SocketError errorCode);
member this.Receive : System.Collections.Generic.IList<ArraySegment<byte>> * System.Net.Sockets.SocketFlags * SocketError -> int
Public Function Receive (buffers As IList(Of ArraySegment(Of Byte)), socketFlags As SocketFlags, ByRef errorCode As SocketError) As Integer
Parâmetros
- buffers
- IList<ArraySegment<Byte>>
Uma lista de ArraySegment<T>s do tipo Byte que contém os dados recebidos.
- socketFlags
- SocketFlags
Uma combinação bit a bit dos SocketFlags valores.
- errorCode
- SocketError
Um SocketError objeto que armazena o erro do soquete.
Retornos
O número total de bytes recebidos. O método retornará zero (0) somente se zero bytes tiverem sido solicitados ou se não houver mais bytes disponíveis porque o soquete par realizou um desligamento normal.
Exceções
Erro ao tentar acessar o soquete.
O Socket foi fechado.
Comentários
Esse método lê dados no buffers parâmetro e retorna o número de bytes lidos com êxito. Você pode chamar de soquetes orientados à conexão e sem conexão.
Essa sobrecarga exige que você forneça um ou mais buffers de recebimento. O SocketFlags valor é padrão para None.
Se você estiver usando um protocolo orientado à conexão, deverá chamar Connect para estabelecer uma conexão de host remoto ou Accept aceitar uma conexão de entrada antes de chamar Receive. O Receive método lerá apenas os dados que chegam da conexão de host remoto estabelecida no método ou Accept no Connect método. Se você estiver usando um protocolo sem conexão, também poderá usar o ReceiveFrom método. ReceiveFrom permitirá que você receba dados que chegam de qualquer host.
Se nenhum dado estiver disponível para leitura, o Receive método será bloqueado até que os dados sejam disponibilizados, a menos que um valor de tempo limite tenha sido definido usando Socket.ReceiveTimeout. Se o valor do tempo limite tiver sido excedido, a Receive chamada gerará um SocketException. Se você estiver no modo de não bloqueio e não houver dados disponíveis no buffer de pilha de protocolo, o Receive método será concluído imediatamente e gerará um SocketException. Você pode usar a propriedade para determinar se os Available dados estão disponíveis para leitura. Quando Available não for zero, tente novamente a operação de recebimento.
Se você estiver usando uma conexão orientada Socket, o Receive método lerá o máximo de dados que estiver disponível, até o tamanho do buffer. Se o host remoto desligar a Socket conexão com o Shutdown método e todos os dados disponíveis tiverem sido recebidos, o Receive método será concluído imediatamente e retornará zero bytes.
Se você estiver usando um sem Socketconexão,Receive lerá o primeiro datagrama enfileirado do endereço de destino especificado no Connect método. Se o datagram recebido for maior que o tamanho do buffers parâmetro, buffers será preenchido com a primeira parte da mensagem, o excesso de dados será perdido e um SocketException será gerado.
Observação
Se você receber um SocketException, use a SocketException.ErrorCode propriedade para obter o código de erro específico. 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.
Observação
Esse membro gera informações de rastreamento quando você habilita o rastreamento de rede em seu aplicativo. Para obter mais informações, consulte Rastreamento de Rede no .NET Framework.
Confira também
- Connect(EndPoint)
- ReceiveFrom(Byte[], Int32, Int32, SocketFlags, EndPoint)
- Available
- Shutdown(SocketShutdown)
- Close()
Aplica-se a
Receive(Byte[], Int32, SocketFlags)
- Origem:
- Socket.cs
- Origem:
- Socket.cs
- Origem:
- Socket.cs
- Origem:
- Socket.cs
- Origem:
- Socket.cs
Recebe o número especificado de bytes de dados de um limite Socket em um buffer de recebimento, usando o especificado SocketFlags.
public:
int Receive(cli::array <System::Byte> ^ buffer, int size, System::Net::Sockets::SocketFlags socketFlags);
public int Receive(byte[] buffer, int size, System.Net.Sockets.SocketFlags socketFlags);
member this.Receive : byte[] * int * System.Net.Sockets.SocketFlags -> int
Public Function Receive (buffer As Byte(), size As Integer, socketFlags As SocketFlags) As Integer
Parâmetros
- size
- Int32
O número de bytes a serem recebidos.
- socketFlags
- SocketFlags
Uma combinação bit a bit dos SocketFlags valores.
Retornos
O número total de bytes recebidos. O método retornará zero (0) somente se zero bytes tiverem sido solicitados ou se não houver mais bytes disponíveis porque o soquete par realizou um desligamento normal.
Exceções
buffer é null.
size excede o tamanho de buffer.
Erro ao tentar acessar o soquete.
O Socket foi fechado.
Um chamador na pilha de chamadas não tem as permissões necessárias.
Exemplos
O seguinte recebe os dados encontrados buffere especifica None para SocketFlags.
// Receive the host home page content and loop until all the data is received.
Int32 bytes = s.Receive(RecvBytes, RecvBytes.Length, 0);
strRetPage = "Default HTML page on " + server + ":\r\n";
strRetPage = strRetPage + ASCII.GetString(RecvBytes, 0, bytes);
while (bytes > 0)
{
bytes = s.Receive(RecvBytes, RecvBytes.Length, 0);
strRetPage = strRetPage + ASCII.GetString(RecvBytes, 0, bytes);
}
' Receive the host home page content and loop until all the data is received.
'Dim bytes As Int32 = s.Receive(RecvBytes, RecvBytes.Length, 0)
Dim bytes As Int32 = s.Receive(RecvBytes, RecvBytes.Length, 0)
strRetPage = "Default HTML page on " + server + ":\r\n"
strRetPage = "Default HTML page on " + server + ":" + ControlChars.Lf + ControlChars.NewLine
Dim i As Integer
While bytes > 0
bytes = s.Receive(RecvBytes, RecvBytes.Length, 0)
strRetPage = strRetPage + ASCII.GetString(RecvBytes, 0, bytes)
End While
Comentários
O Receive método lê dados no buffer parâmetro e retorna o número de bytes lidos com êxito. Você pode chamar Receive de soquetes orientados à conexão e sem conexão.
Essa sobrecarga exige apenas que você forneça um buffer de recebimento, o número de bytes que você deseja receber e o necessário SocketFlags.
Se você estiver usando um protocolo orientado à conexão, deverá chamar Connect para estabelecer uma conexão de host remoto ou Accept aceitar uma conexão de entrada antes de chamar Receive. O Receive método lerá apenas os dados que chegam do host remoto estabelecido no método ou Accept no Connect método. Se você estiver usando um protocolo sem conexão, também poderá usar o ReceiveFrom método. ReceiveFrom permitirá que você receba dados que chegam de qualquer host.
Se nenhum dado estiver disponível para leitura, o Receive método será bloqueado até que os dados sejam disponibilizados, a menos que um valor de tempo limite tenha sido definido usando Socket.ReceiveTimeout. Se o valor do tempo limite tiver sido excedido, a Receive chamada gerará um SocketException. Se você estiver no modo de não bloqueio e não houver dados disponíveis no buffer de pilha de protocolo, o Receive método será concluído imediatamente e gerará um SocketException. Você pode usar a propriedade para determinar se os Available dados estão disponíveis para leitura. Quando Available não for zero, repita a operação de recebimento.
Se você estiver usando uma conexão orientada Socket, o Receive método lerá o máximo de dados que estiver disponível, até o número de bytes especificados size pelo parâmetro. Se o host remoto desligar a Socket conexão com o Shutdown método e todos os dados disponíveis tiverem sido recebidos, o Receive método será concluído imediatamente e retornará zero bytes.
Se você estiver usando um sem Socketconexão, Receive lerá o primeiro datagrama enfileirado do endereço de destino especificado no Connect método. Se o datagram recebido for maior que o tamanho do buffer parâmetro, buffer será preenchido com a primeira parte da mensagem, o excesso de dados será perdido e um SocketException será gerado.
Observação
Se você receber um SocketException, use a SocketException.ErrorCode propriedade para obter o código de erro específico. 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.
Observação
Esse membro gera informações de rastreamento quando você habilita o rastreamento de rede em seu aplicativo. Para obter mais informações, consulte Rastreamento de Rede no .NET Framework.
Confira também
- Connect(EndPoint)
- ReceiveFrom(Byte[], Int32, Int32, SocketFlags, EndPoint)
- Available
- Shutdown(SocketShutdown)
- Close()
Aplica-se a
Receive(Span<Byte>, SocketFlags)
- Origem:
- Socket.cs
- Origem:
- Socket.cs
- Origem:
- Socket.cs
- Origem:
- Socket.cs
- Origem:
- Socket.cs
Recebe dados de um limite Socket em um buffer de recebimento, usando o especificado SocketFlags.
public:
int Receive(Span<System::Byte> buffer, System::Net::Sockets::SocketFlags socketFlags);
public int Receive(Span<byte> buffer, System.Net.Sockets.SocketFlags socketFlags);
member this.Receive : Span<byte> * System.Net.Sockets.SocketFlags -> int
Public Function Receive (buffer As Span(Of Byte), socketFlags As SocketFlags) As Integer
Parâmetros
- socketFlags
- SocketFlags
Uma combinação bit a bit dos valores de enumeração que especifica comportamentos de envio e recebimento.
Retornos
O número total de bytes recebidos. O método retornará zero (0) somente se zero bytes tiverem sido solicitados ou se não houver mais bytes disponíveis porque o soquete par realizou um desligamento normal.
Exceções
Erro ao tentar acessar o soquete.
O Socket foi fechado.
Um chamador na pilha de chamadas não tem as permissões necessárias.
Comentários
O Receive método lê dados no parâmetro de buffer e retorna o número de bytes lidos com êxito. Você pode chamar Receive de soquetes orientados à conexão e sem conexão.
Essa sobrecarga exige apenas que você forneça um buffer de recebimento. O deslocamento de buffer usa como padrão 0, o tamanho é padrão para o comprimento do parâmetro de buffer e o valor usa como SocketFlags padrão None.
Se você estiver usando um protocolo orientado à conexão, deverá chamar Connect para estabelecer uma conexão de host remoto ou Accept aceitar uma conexão de entrada antes de chamar Receive. O Receive método lerá apenas os dados que chegam do host remoto estabelecido no método ou Accept no Connect método. Se você estiver usando um protocolo sem conexão, também poderá usar o ReceiveFrom método. ReceiveFrom permitirá que você receba dados que chegam de qualquer host.
Se nenhum dado estiver disponível para leitura, o Receive método será bloqueado até que os dados sejam disponibilizados, a menos que um valor de tempo limite tenha sido definido usando Socket.ReceiveTimeout. Quando o valor de tempo limite for excedido, a Receive chamada gerará um SocketException. Se você estiver no modo de não bloqueio e não houver dados disponíveis no buffer de pilha de protocolo, o Receive método será concluído imediatamente e gerará um SocketException. Você pode usar a propriedade para determinar se os Available dados estão disponíveis para leitura. Quando Available não for zero, tente novamente a operação de recebimento.
Se você estiver usando uma conexão orientada Socket, o Receive método lerá o máximo de dados que estiver disponível, até o tamanho do buffer. Se o host remoto desligar a Socket conexão com o Shutdown método e todos os dados disponíveis tiverem sido recebidos, o Receive método será concluído imediatamente e retornará zero bytes.
Se você estiver usando um sem Socketconexão, Receive lerá o primeiro datagrama enfileirado do endereço de destino especificado no Connect método. Se o datagram recebido for maior que o tamanho do buffer parâmetro, buffer será preenchido com a primeira parte da mensagem, o excesso de dados será perdido e um SocketException será gerado.
Observação
Se você receber um SocketException, use a SocketException.ErrorCode propriedade para obter o código de erro específico. 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.
Esse membro gera informações de rastreamento quando você habilita o rastreamento de rede em seu aplicativo. Para obter mais informações, consulte Rastreamento de Rede no .NET Framework.
Confira também
- Connect(EndPoint)
- ReceiveFrom(Byte[], Int32, Int32, SocketFlags, EndPoint)
- Available
- Shutdown(SocketShutdown)
- Close()
Aplica-se a
Receive(Byte[], Int32, Int32, SocketFlags)
- Origem:
- Socket.cs
- Origem:
- Socket.cs
- Origem:
- Socket.cs
- Origem:
- Socket.cs
- Origem:
- Socket.cs
Recebe o número especificado de bytes de um limite Socket para a posição de deslocamento especificada do buffer de recebimento, usando o especificado SocketFlags.
public:
int Receive(cli::array <System::Byte> ^ buffer, int offset, int size, System::Net::Sockets::SocketFlags socketFlags);
public int Receive(byte[] buffer, int offset, int size, System.Net.Sockets.SocketFlags socketFlags);
member this.Receive : byte[] * int * int * System.Net.Sockets.SocketFlags -> int
Public Function Receive (buffer As Byte(), offset As Integer, size As Integer, socketFlags As SocketFlags) As Integer
Parâmetros
- offset
- Int32
O local no buffer qual armazenar os dados recebidos.
- size
- Int32
O número de bytes a serem recebidos.
- socketFlags
- SocketFlags
Uma combinação bit a bit dos SocketFlags valores.
Retornos
O número total de bytes recebidos. O método retornará zero (0) somente se zero bytes tiverem sido solicitados ou se não houver mais bytes disponíveis porque o soquete par realizou um desligamento normal.
Exceções
buffer é null.
offset é menor que 0.
- ou -
offset é maior que o comprimento de buffer.
- ou -
size é menor que 0.
- ou -
size é maior que o comprimento de buffer menos o valor do offset parâmetro.
socketFlags não é uma combinação válida de valores.
- ou -
A LocalEndPoint propriedade não foi definida.
- ou -
Ocorre um erro do sistema operacional ao acessar o Socket.
O Socket foi fechado.
Um chamador na pilha de chamadas não tem as permissões necessárias.
Exemplos
O exemplo de código a seguir especifica um buffer de dados, um deslocamento, um tamanho e um sinalizador de soquete antes de receber dados em um conectado Socket.
// Displays sending with a connected socket
// using the overload that takes a buffer, offset, message size, and socket flags.
public static int SendReceiveTest4(Socket server)
{
byte[] msg = Encoding.UTF8.GetBytes("This is a test");
byte[] bytes = new byte[256];
try
{
// Blocks until send returns.
int byteCount = server.Send(msg, 0, msg.Length, SocketFlags.None);
Console.WriteLine("Sent {0} bytes.", byteCount);
// Get reply from the server.
byteCount = server.Receive(bytes, 0, bytes.Length, SocketFlags.None);
if (byteCount > 0)
Console.WriteLine(Encoding.UTF8.GetString(bytes, 0, byteCount));
}
catch (SocketException e)
{
Console.WriteLine("{0} Error code: {1}.", e.Message, e.ErrorCode);
return (e.ErrorCode);
}
return 0;
}
' Displays sending with a connected socket
' using the overload that takes a buffer, offset, message size, and socket flags.
Public Shared Function SendReceiveTest4(ByVal server As Socket) As Integer
Dim msg As Byte() = Encoding.UTF8.GetBytes("This is a test")
Dim bytes(255) As Byte
Try
' Blocks until send returns.
Dim byteCount As Integer = server.Send(msg, 0, msg.Length, SocketFlags.None)
Console.WriteLine("Sent {0} bytes.", byteCount)
' Get reply from the server.
byteCount = server.Receive(bytes, 0, server.Available, SocketFlags.None)
If byteCount > 0 Then
Console.WriteLine(Encoding.UTF8.GetString(bytes))
End If
Catch e As SocketException
Console.WriteLine("{0} Error code: {1}.", e.Message, e.ErrorCode)
Return e.ErrorCode
End Try
Return 0
End Function 'SendReceiveTest4
Comentários
O Receive método lê dados no parâmetro de buffer e retorna o número de bytes lidos com êxito. Você pode chamar Receive de soquetes orientados à conexão e sem conexão.
Se você estiver usando um protocolo orientado à conexão, deverá chamar Connect para estabelecer uma conexão de host remoto ou Accept aceitar uma conexão de entrada antes de chamar Receive. O Receive método lerá apenas os dados que chegam do host remoto estabelecido no método ou Accept no Connect método. Se você estiver usando um protocolo sem conexão, também poderá usar o ReceiveFrom método. ReceiveFrom permitirá que você receba dados que chegam de qualquer host.
Se nenhum dado estiver disponível para leitura, o Receive método será bloqueado até que os dados sejam disponibilizados, a menos que um valor de tempo limite tenha sido definido usando Socket.ReceiveTimeout. Se o valor do tempo limite tiver sido excedido, a Receive chamada gerará um SocketException. Se você estiver no modo de não bloqueio e não houver dados disponíveis no buffer de pilha de protocolo, o Receive método será concluído imediatamente e gerará um SocketException. Erro ao tentar acessar o soquete. Veja comentários abaixo. Você pode usar a propriedade para determinar se os Available dados estão disponíveis para leitura. Quando Available não for zero, tente novamente a operação de recebimento.
Se você estiver usando uma conexão orientada Socket, o Receive método lerá o máximo de dados que estiver disponível, até o número de bytes especificados pelo parâmetro de tamanho. Se o host remoto desligar a Socket conexão com o Shutdown método e todos os dados disponíveis tiverem sido recebidos, o Receive método será concluído imediatamente e retornará zero bytes.
Se você estiver usando um sem Socketconexão, Receive lerá o primeiro datagrama enfileirado do endereço de destino especificado no Connect método. Se o datagram recebido for maior que o tamanho do buffer parâmetro, buffer será preenchido com a primeira parte da mensagem, o excesso de dados será perdido e um SocketException será gerado.
Observação
Se você receber um SocketException, use a SocketException.ErrorCode propriedade para obter o código de erro específico. 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.
Observação
Esse membro gera informações de rastreamento quando você habilita o rastreamento de rede em seu aplicativo. Para obter mais informações, consulte Rastreamento de Rede no .NET Framework.
Confira também
- Connect(EndPoint)
- ReceiveFrom(Byte[], Int32, Int32, SocketFlags, EndPoint)
- Available
- Shutdown(SocketShutdown)
- Close()
Aplica-se a
Receive(Byte[], SocketFlags)
- Origem:
- Socket.cs
- Origem:
- Socket.cs
- Origem:
- Socket.cs
- Origem:
- Socket.cs
- Origem:
- Socket.cs
Recebe dados de um limite Socket em um buffer de recebimento, usando o especificado SocketFlags.
public:
int Receive(cli::array <System::Byte> ^ buffer, System::Net::Sockets::SocketFlags socketFlags);
public int Receive(byte[] buffer, System.Net.Sockets.SocketFlags socketFlags);
member this.Receive : byte[] * System.Net.Sockets.SocketFlags -> int
Public Function Receive (buffer As Byte(), socketFlags As SocketFlags) As Integer
Parâmetros
- socketFlags
- SocketFlags
Uma combinação bit a bit dos SocketFlags valores.
Retornos
O número total de bytes recebidos. O método retornará zero (0) somente se zero bytes tiverem sido solicitados ou se não houver mais bytes disponíveis porque o soquete par realizou um desligamento normal.
Exceções
buffer é null.
Erro ao tentar acessar o soquete.
O Socket foi fechado.
Um chamador na pilha de chamadas não tem as permissões necessárias.
Exemplos
O exemplo de código a seguir especifica um buffer de dados e SocketFlags para o recebimento de dados em um conectado Socket.
// Displays sending with a connected socket
// using the overload that takes a buffer and socket flags.
public static int SendReceiveTest2(Socket server)
{
byte[] msg = Encoding.UTF8.GetBytes("This is a test");
byte[] bytes = new byte[256];
try
{
// Blocks until send returns.
int byteCount = server.Send(msg, SocketFlags.None);
Console.WriteLine("Sent {0} bytes.", byteCount);
// Get reply from the server.
byteCount = server.Receive(bytes, SocketFlags.None);
if (byteCount > 0)
Console.WriteLine(Encoding.UTF8.GetString(bytes));
}
catch (SocketException e)
{
Console.WriteLine("{0} Error code: {1}.", e.Message, e.ErrorCode);
return (e.ErrorCode);
}
return 0;
}
' Displays sending with a connected socket
' using the overload that takes a buffer and socket flags.
Public Shared Function SendReceiveTest2(ByVal server As Socket) As Integer
Dim msg As Byte() = Encoding.UTF8.GetBytes("This is a test")
Dim bytes(255) As Byte
Try
' Blocks until send returns.
Dim byteCount As Integer = server.Send(msg, SocketFlags.None)
Console.WriteLine("Sent {0} bytes.", byteCount)
' Get reply from the server.
byteCount = server.Receive(bytes, SocketFlags.None)
If byteCount > 0 Then
Console.WriteLine(Encoding.UTF8.GetString(bytes))
End If
Catch e As SocketException
Console.WriteLine("{0} Error code: {1}.", e.Message, e.ErrorCode)
Return e.ErrorCode
End Try
Return 0
End Function 'SendReceiveTest2
Comentários
O Receive método lê dados no parâmetro de buffer e retorna o número de bytes lidos com êxito. Você pode chamar Receive de soquetes orientados à conexão e sem conexão.
Essa sobrecarga exige apenas que você forneça um buffer de recebimento e o necessário SocketFlags. O deslocamento de buffer é padrão para 0 e o tamanho é padrão para o comprimento do parâmetro de bytes.
Se você estiver usando um protocolo orientado à conexão, deverá chamar Connect para estabelecer uma conexão de host remoto ou Accept aceitar uma conexão de entrada antes de chamar Receive. O Receive método lerá apenas os dados que chegam do host remoto estabelecido no método ou Accept no Connect método. Se você estiver usando um protocolo sem conexão, também poderá usar o ReceiveFrom método. ReceiveFrom permitirá que você receba dados que chegam de qualquer host.
Se nenhum dado estiver disponível para leitura, o Receive método será bloqueado até que os dados sejam disponibilizados. Se você estiver no modo de não bloqueio e não houver dados disponíveis no buffer de pilha de protocolo, o Receive método será concluído imediatamente e gerará um SocketException. Você pode usar a propriedade para determinar se os Available dados estão disponíveis para leitura. Quando Available não for zero, repita a operação de recebimento.
Se você estiver usando uma conexão orientada Socket, o Receive método lerá o máximo de dados que estiver disponível até o tamanho do buffer. Se o host remoto desligar a Socket conexão com o Shutdown método e todos os dados disponíveis tiverem sido recebidos, o Receive método será concluído imediatamente e retornará zero bytes.
Se você estiver usando um sem Socketconexão, Receive lerá o primeiro datagrama enfileirado do endereço de destino especificado no Connect método. Se o datagram recebido for maior que o tamanho do buffer parâmetro, buffer será preenchido com a primeira parte da mensagem, o excesso de dados será perdido e um SocketException será gerado.
Observação
Se você receber um SocketException, use a SocketException.ErrorCode propriedade para obter o código de erro específico. 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.
Observação
Esse membro gera informações de rastreamento quando você habilita o rastreamento de rede em seu aplicativo. Para obter mais informações, consulte Rastreamento de Rede no .NET Framework.
Confira também
- Connect(EndPoint)
- ReceiveFrom(Byte[], Int32, Int32, SocketFlags, EndPoint)
- Available
- Shutdown(SocketShutdown)
- Close()
Aplica-se a
Receive(Span<Byte>)
- Origem:
- Socket.cs
- Origem:
- Socket.cs
- Origem:
- Socket.cs
- Origem:
- Socket.cs
- Origem:
- Socket.cs
Recebe dados de um limite Socket em um buffer de recebimento.
public:
int Receive(Span<System::Byte> buffer);
public int Receive(Span<byte> buffer);
member this.Receive : Span<byte> -> int
Public Function Receive (buffer As Span(Of Byte)) As Integer
Parâmetros
Retornos
O número total de bytes recebidos. O método retornará zero (0) somente se zero bytes tiverem sido solicitados ou se não houver mais bytes disponíveis porque o soquete par realizou um desligamento normal.
Exceções
Erro ao tentar acessar o soquete.
O Socket foi fechado.
Um chamador na pilha de chamadas não tem as permissões necessárias.
Comentários
O Receive método lê dados no parâmetro de buffer e retorna o número de bytes lidos com êxito. Você pode chamar Receive de soquetes orientados à conexão e sem conexão.
Essa sobrecarga exige apenas que você forneça um buffer de recebimento. O deslocamento de buffer usa como padrão 0, o tamanho é padrão para o comprimento do parâmetro de buffer e o valor usa como SocketFlags padrão None.
Se você estiver usando um protocolo orientado à conexão, deverá chamar Connect para estabelecer uma conexão de host remoto ou Accept aceitar uma conexão de entrada antes de chamar Receive. O Receive método lerá apenas os dados que chegam do host remoto estabelecido no método ou Accept no Connect método. Se você estiver usando um protocolo sem conexão, também poderá usar o ReceiveFrom método. ReceiveFrom permitirá que você receba dados que chegam de qualquer host.
Se nenhum dado estiver disponível para leitura, o Receive método será bloqueado até que os dados sejam disponibilizados, a menos que um valor de tempo limite tenha sido definido usando Socket.ReceiveTimeout. Quando o valor de tempo limite for excedido, a Receive chamada gerará um SocketException. Se você estiver no modo de não bloqueio e não houver dados disponíveis no buffer de pilha de protocolo, o Receive método será concluído imediatamente e gerará um SocketException. Você pode usar a propriedade para determinar se os Available dados estão disponíveis para leitura. Quando Available não for zero, tente novamente a operação de recebimento.
Se você estiver usando uma conexão orientada Socket, o Receive método lerá o máximo de dados que estiver disponível, até o tamanho do buffer. Se o host remoto desligar a Socket conexão com o Shutdown método e todos os dados disponíveis tiverem sido recebidos, o Receive método será concluído imediatamente e retornará zero bytes.
Se você estiver usando um sem Socketconexão, Receive lerá o primeiro datagrama enfileirado do endereço de destino especificado no Connect método. Se o datagram recebido for maior que o tamanho do buffer parâmetro, buffer será preenchido com a primeira parte da mensagem, o excesso de dados será perdido e um SocketException será gerado.
Observação
Se você receber um SocketException, use a SocketException.ErrorCode propriedade para obter o código de erro específico. 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.
Esse membro gera informações de rastreamento quando você habilita o rastreamento de rede em seu aplicativo. Para obter mais informações, consulte Rastreamento de Rede no .NET Framework.
Confira também
- Connect(EndPoint)
- ReceiveFrom(Byte[], Int32, Int32, SocketFlags, EndPoint)
- Available
- Shutdown(SocketShutdown)
- Close()
Aplica-se a
Receive(IList<ArraySegment<Byte>>)
- Origem:
- Socket.cs
- Origem:
- Socket.cs
- Origem:
- Socket.cs
- Origem:
- Socket.cs
- Origem:
- Socket.cs
Recebe dados de um limite Socket na lista de buffers de recebimento.
public:
int Receive(System::Collections::Generic::IList<ArraySegment<System::Byte>> ^ buffers);
public int Receive(System.Collections.Generic.IList<ArraySegment<byte>> buffers);
member this.Receive : System.Collections.Generic.IList<ArraySegment<byte>> -> int
Public Function Receive (buffers As IList(Of ArraySegment(Of Byte))) As Integer
Parâmetros
- buffers
- IList<ArraySegment<Byte>>
Uma lista de ArraySegment<T>s do tipo Byte que contém os dados recebidos.
Retornos
O número total de bytes recebidos. O método retornará zero (0) somente se zero bytes tiverem sido solicitados ou se não houver mais bytes disponíveis porque o soquete par realizou um desligamento normal.
Exceções
O buffers parâmetro é null.
Erro ao tentar acessar o soquete.
O Socket foi fechado.
Comentários
Esse método lê dados no parâmetro buffers e retorna o número de bytes lidos com êxito. Você pode chamar de soquetes orientados à conexão e sem conexão.
Essa sobrecarga exige que você forneça um ou mais buffers de recebimento.
Se você estiver usando um protocolo orientado à conexão, deverá chamar Connect para estabelecer uma conexão de host remoto ou Accept aceitar uma conexão de entrada antes de chamar Receive. O Receive método lerá apenas os dados que chegam da conexão de host remoto estabelecida no método ou Accept no Connect método. Se você estiver usando um protocolo sem conexão, também poderá usar o ReceiveFrom método. ReceiveFrom permitirá que você receba dados que chegam de qualquer host.
Se nenhum dado estiver disponível para leitura, o Receive método será bloqueado até que os dados sejam disponibilizados, a menos que um valor de tempo limite tenha sido definido usando Socket.ReceiveTimeout. Se o valor do tempo limite tiver sido excedido, a Receive chamada gerará um SocketException. Se você estiver no modo de não bloqueio e não houver dados disponíveis no buffer de pilha de protocolo, o Receive método será concluído imediatamente e gerará um SocketException. Você pode usar a propriedade para determinar se os Available dados estão disponíveis para leitura. Quando Available não for zero, tente novamente a operação de recebimento.
Se você estiver usando uma conexão orientada Socket, o Receive método lerá o máximo de dados que estiver disponível, até o tamanho do buffer. Se o host remoto desligar a Socket conexão com o Shutdown método e todos os dados disponíveis tiverem sido recebidos, o Receive método será concluído imediatamente e retornará zero bytes.
Se você estiver usando um sem Socketconexão, Receive lerá o primeiro datagrama enfileirado do endereço de destino especificado no Connect método. Se o datagram recebido for maior que o tamanho do buffers parâmetro, buffers será preenchido com a primeira parte da mensagem, o excesso de dados será perdido e um SocketException será gerado.
Observação
Se você receber um SocketException, use a SocketException.ErrorCode propriedade para obter o código de erro específico. 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.
Nota Esse membro gera informações de rastreamento quando você habilita o rastreamento de rede em seu aplicativo. Para obter mais informações, consulte Rastreamento de Rede no .NET Framework.
Aplica-se a
Receive(Byte[])
- Origem:
- Socket.cs
- Origem:
- Socket.cs
- Origem:
- Socket.cs
- Origem:
- Socket.cs
- Origem:
- Socket.cs
Recebe dados de um limite Socket em um buffer de recebimento.
public:
int Receive(cli::array <System::Byte> ^ buffer);
public int Receive(byte[] buffer);
member this.Receive : byte[] -> int
Public Function Receive (buffer As Byte()) As Integer
Parâmetros
Retornos
O número total de bytes recebidos. O método retornará zero (0) somente se zero bytes tiverem sido solicitados ou se não houver mais bytes disponíveis porque o soquete par realizou um desligamento normal.
Exceções
buffer é null.
Erro ao tentar acessar o soquete.
O Socket foi fechado.
Um chamador na pilha de chamadas não tem as permissões necessárias.
Exemplos
O exemplo de código a seguir recebe dados em um conectado Socket.
// Displays sending with a connected socket
// using the overload that takes a buffer.
public static int SendReceiveTest1(Socket server)
{
byte[] msg = Encoding.UTF8.GetBytes("This is a test");
byte[] bytes = new byte[256];
try
{
// Blocks until send returns.
int i = server.Send(msg);
Console.WriteLine("Sent {0} bytes.", i);
// Get reply from the server.
i = server.Receive(bytes);
Console.WriteLine(Encoding.UTF8.GetString(bytes));
}
catch (SocketException e)
{
Console.WriteLine("{0} Error code: {1}.", e.Message, e.ErrorCode);
return (e.ErrorCode);
}
return 0;
}
' Displays sending with a connected socket
' using the overload that takes a buffer.
Public Shared Function SendReceiveTest1(ByVal server As Socket) As Integer
Dim msg As Byte() = Encoding.UTF8.GetBytes("This is a test")
Dim bytes(255) As Byte
Try
' Blocks until send returns.
Dim i As Integer = server.Send(msg)
Console.WriteLine("Sent {0} bytes.", i)
' Get reply from the server.
i = server.Receive(bytes)
Console.WriteLine(Encoding.UTF8.GetString(bytes))
Catch e As SocketException
Console.WriteLine("{0} Error code: {1}.", e.Message, e.ErrorCode)
Return e.ErrorCode
End Try
Return 0
End Function 'SendReceiveTest1
Comentários
O Receive método lê dados no parâmetro de buffer e retorna o número de bytes lidos com êxito. Você pode chamar Receive de soquetes orientados à conexão e sem conexão.
Essa sobrecarga exige apenas que você forneça um buffer de recebimento. O deslocamento de buffer usa como padrão 0, o tamanho é padrão para o comprimento do parâmetro de buffer e o valor usa como SocketFlags padrão None.
Se você estiver usando um protocolo orientado à conexão, deverá chamar Connect para estabelecer uma conexão de host remoto ou Accept aceitar uma conexão de entrada antes de chamar Receive. O Receive método lerá apenas os dados que chegam do host remoto estabelecido no método ou Accept no Connect método. Se você estiver usando um protocolo sem conexão, também poderá usar o ReceiveFrom método. ReceiveFrom permitirá que você receba dados que chegam de qualquer host.
Se nenhum dado estiver disponível para leitura, o Receive método será bloqueado até que os dados sejam disponibilizados, a menos que um valor de tempo limite tenha sido definido usando Socket.ReceiveTimeout. Se o valor do tempo limite tiver sido excedido, a Receive chamada gerará um SocketException. Se você estiver no modo de não bloqueio e não houver dados disponíveis no buffer de pilha de protocolo, o Receive método será concluído imediatamente e gerará um SocketException. Você pode usar a propriedade para determinar se os Available dados estão disponíveis para leitura. Quando Available não for zero, tente novamente a operação de recebimento.
Se você estiver usando uma conexão orientada Socket, o Receive método lerá o máximo de dados que estiver disponível, até o tamanho do buffer. Se o host remoto desligar a Socket conexão com o Shutdown método e todos os dados disponíveis tiverem sido recebidos, o Receive método será concluído imediatamente e retornará zero bytes.
Se você estiver usando um sem Socketconexão, Receive lerá o primeiro datagrama enfileirado do endereço de destino especificado no Connect método. Se o datagram recebido for maior que o tamanho do buffer parâmetro, buffer será preenchido com a primeira parte da mensagem, o excesso de dados será perdido e um SocketException será gerado.
Observação
Se você receber um SocketException, use a SocketException.ErrorCode propriedade para obter o código de erro específico. 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.
Observação
Esse membro gera informações de rastreamento quando você habilita o rastreamento de rede em seu aplicativo. Para obter mais informações, consulte Rastreamento de Rede no .NET Framework.
Confira também
- Connect(EndPoint)
- ReceiveFrom(Byte[], Int32, Int32, SocketFlags, EndPoint)
- Available
- Shutdown(SocketShutdown)
- Close()
Aplica-se a
Receive(IList<ArraySegment<Byte>>, SocketFlags)
- Origem:
- Socket.cs
- Origem:
- Socket.cs
- Origem:
- Socket.cs
- Origem:
- Socket.cs
- Origem:
- Socket.cs
Recebe dados de um limite Socket na lista de buffers de recebimento, usando o especificado SocketFlags.
public:
int Receive(System::Collections::Generic::IList<ArraySegment<System::Byte>> ^ buffers, System::Net::Sockets::SocketFlags socketFlags);
public int Receive(System.Collections.Generic.IList<ArraySegment<byte>> buffers, System.Net.Sockets.SocketFlags socketFlags);
member this.Receive : System.Collections.Generic.IList<ArraySegment<byte>> * System.Net.Sockets.SocketFlags -> int
Public Function Receive (buffers As IList(Of ArraySegment(Of Byte)), socketFlags As SocketFlags) As Integer
Parâmetros
- buffers
- IList<ArraySegment<Byte>>
Uma lista de ArraySegment<T>s do tipo Byte que contém os dados recebidos.
- socketFlags
- SocketFlags
Uma combinação bit a bit dos SocketFlags valores.
Retornos
O número total de bytes recebidos. O método retornará zero (0) somente se zero bytes tiverem sido solicitados ou se não houver mais bytes disponíveis porque o soquete par realizou um desligamento normal.
Exceções
Erro ao tentar acessar o soquete.
O Socket foi fechado.
Exemplos
O exemplo de código a seguir demonstra como receber dados em um conectado Socket.
// Build the buffers for the receive.
List<ArraySegment<byte>> recvBuffers =
new List<ArraySegment<byte>>(2);
byte[] bigBuffer = new byte[1024];
// Specify the first buffer segment (2 bytes, starting
// at the 4th element of bigBuffer)
recvBuffers.Add(new ArraySegment<byte>(bigBuffer, 4, 2));
// Specify the second buffer segment (500 bytes, starting
// at the 20th element of bigBuffer)
recvBuffers.Add(new ArraySegment<byte>(bigBuffer, 20, 500));
int bytesReceived = mySocket.Receive(recvBuffers);
Console.WriteLine("{0}", ASCII.GetString(bigBuffer));
Comentários
Esse método lê dados no buffers parâmetro e retorna o número de bytes lidos com êxito. Você pode chamar de soquetes orientados à conexão e sem conexão.
Essa sobrecarga exige que você forneça um ou mais buffers de recebimento. O SocketFlags valor é padrão para None.
Se você estiver usando um protocolo orientado à conexão, deverá chamar Connect para estabelecer uma conexão de host remoto ou Accept aceitar uma conexão de entrada antes de chamar Receive. O Receive método lerá apenas os dados que chegam da conexão de host remoto estabelecida no método ou Accept no Connect método. Se você estiver usando um protocolo sem conexão, também poderá usar o ReceiveFrom método. ReceiveFrom permitirá que você receba dados que chegam de qualquer host.
Se nenhum dado estiver disponível para leitura, o Receive método será bloqueado até que os dados sejam disponibilizados, a menos que um valor de tempo limite tenha sido definido usando Socket.ReceiveTimeout. Se o valor do tempo limite tiver sido excedido, a Receive chamada gerará um SocketException. Se você estiver no modo de não bloqueio e não houver dados disponíveis no buffer de pilha de protocolo, o Receive método será concluído imediatamente e gerará um SocketException. Você pode usar a propriedade para determinar se os Available dados estão disponíveis para leitura. Quando Available não for zero, tente novamente a operação de recebimento.
Se você estiver usando uma conexão orientada Socket, o Receive método lerá o máximo de dados que estiver disponível, até o tamanho do buffer. Se o host remoto desligar a Socket conexão com o Shutdown método e todos os dados disponíveis tiverem sido recebidos, o Receive método será concluído imediatamente e retornará zero bytes.
Se você estiver usando um sem Socketconexão, Receive lerá o primeiro datagrama enfileirado do endereço de destino especificado no Connect método. Se o datagram recebido for maior que o tamanho do buffers parâmetro, buffers será preenchido com a primeira parte da mensagem, o excesso de dados será perdido e um SocketException será gerado.
Observação
Se você receber um SocketException, use a SocketException.ErrorCode propriedade para obter o código de erro específico. 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.
Observação
Esse membro gera informações de rastreamento quando você habilita o rastreamento de rede em seu aplicativo. Para obter mais informações, consulte Rastreamento de Rede no .NET Framework.
Confira também
- Connect(EndPoint)
- ReceiveFrom(Byte[], Int32, Int32, SocketFlags, EndPoint)
- Available
- Shutdown(SocketShutdown)
- Close()