SslStream.Read Método
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Sobrecargas
| Name | Description |
|---|---|
| Read(Span<Byte>) |
Quando sobreposto numa classe derivada, lê uma sequência de bytes do fluxo atual e avança a posição dentro do fluxo pelo número de bytes lidos. |
| Read(Byte[], Int32, Int32) |
Lê dados deste fluxo e armazena-os no array especificado. |
Read(Span<Byte>)
- Origem:
- SslStream.cs
- Origem:
- SslStream.cs
- Origem:
- SslStream.cs
Quando sobreposto numa classe derivada, lê uma sequência de bytes do fluxo atual e avança a posição dentro do fluxo pelo número de bytes lidos.
public:
override int Read(Span<System::Byte> buffer);
public override int Read(Span<byte> buffer);
override this.Read : Span<byte> -> int
Public Overrides Function Read (buffer As Span(Of Byte)) As Integer
Parâmetros
Uma região da memória. Quando este método retorna, o conteúdo desta região é substituído pelos bytes lidos da fonte atual.
Devoluções
O número total de bytes lidos no buffer. Isto pode ser inferior ao tamanho do buffer se não houver esse número de bytes disponível no momento, ou zero (0) se o comprimento do buffer for zero ou se o fim do fluxo tiver sido atingido.
Aplica-se a
Read(Byte[], Int32, Int32)
- Origem:
- SslStream.cs
- Origem:
- SslStream.cs
- Origem:
- SslStream.cs
- Origem:
- SslStream.cs
- Origem:
- SslStream.cs
Lê dados deste fluxo e armazena-os no array especificado.
public:
override int Read(cli::array <System::Byte> ^ buffer, int offset, int count);
public override int Read(byte[] buffer, int offset, int count);
override this.Read : byte[] * int * int -> int
Public Overrides Function Read (buffer As Byte(), offset As Integer, count As Integer) As Integer
Parâmetros
- offset
- Int32
A Int32 que contém a localização baseada em zero em buffer onde começar a armazenar os dados lidos deste fluxo.
Devoluções
Um valor que especifica o número de bytes lidos Int32 . Quando não há mais dados para ler, retorna 0.
Exceções
buffer é null.
offset é inferior a zero.
-ou-
offset é maior do que o comprimento de buffer.
-ou-
offset + contagem é maior que o comprimento de buffer.
A operação de leitura falhou. Verifique a exceção interna, se existir, para determinar a causa da falha.
Já está em curso uma operação de leitura.
Este objeto foi encerrado.
A autenticação não ocorreu.
Exemplos
O seguinte exemplo de código demonstra a leitura a partir de um SslStream.
static string ReadMessage(SslStream sslStream)
{
// Read the message sent by the server.
// The end of the message is signaled using the
// "<EOF>" marker.
byte [] buffer = new byte[2048];
StringBuilder messageData = new StringBuilder();
int bytes = -1;
do
{
bytes = sslStream.Read(buffer, 0, buffer.Length);
// Use Decoder class to convert from bytes to UTF8
// in case a character spans two buffers.
Decoder decoder = Encoding.UTF8.GetDecoder();
char[] chars = new char[decoder.GetCharCount(buffer,0,bytes)];
decoder.GetChars(buffer, 0, bytes, chars,0);
messageData.Append (chars);
// Check for EOF.
if (messageData.ToString().IndexOf("<EOF>") != -1)
{
break;
}
} while (bytes != 0);
return messageData.ToString();
}
Private Shared Function ReadMessage(sslStream As SslStream) As String
' Read the message sent by the server.
' The end of the message is signaled using the "<EOF>" marker.
Dim buffer = New Byte(2048) {}
Dim messageData = New StringBuilder()
Dim bytes As Integer
Do
bytes = sslStream.Read(buffer, 0, buffer.Length)
' Use Decoder class to convert from bytes to UTF8
' in case a character spans two buffers.
Dim decoder As Decoder = Encoding.UTF8.GetDecoder()
Dim chars = New Char(decoder.GetCharCount(buffer, 0, bytes) - 1) {}
decoder.GetChars(buffer, 0, bytes, chars, 0)
messageData.Append(chars)
' Check for EOF.
If messageData.ToString().IndexOf("<EOF>") <> -1 Then Exit Do
Loop While bytes <> 0
Return messageData.ToString()
End Function
Observações
O método lê um máximo de count bytes do fluxo e armazena-os buffer a partir de .offset Não pode realizar múltiplas operações de leitura simultâneas.
Não pode chamar este método até ter autenticado com sucesso. Para autenticar, chame um dos AuthenticateAsClient, ou BeginAuthenticateAsClient, AuthenticateAsServer, BeginAuthenticateAsServer métodos.
Para realizar esta operação de forma assíncrona, use o BeginRead método.