SslStream.Read Método

Definición

Sobrecargas

Nombre Description
Read(Span<Byte>)

Cuando se reemplaza en una clase derivada, lee una secuencia de bytes de la secuencia actual y avanza la posición dentro de la secuencia por el número de bytes leídos.

Read(Byte[], Int32, Int32)

Lee los datos de esta secuencia y los almacena en la matriz especificada.

Read(Span<Byte>)

Source:
SslStream.cs
Source:
SslStream.cs
Source:
SslStream.cs

Cuando se reemplaza en una clase derivada, lee una secuencia de bytes de la secuencia actual y avanza la posición dentro de la secuencia por el número de bytes leídos.

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

buffer
Span<Byte>

Una región de memoria. Cuando este método devuelve, el contenido de esta región se reemplaza por los bytes leídos del origen actual.

Devoluciones

Número total de bytes leídos en el búfer. Esto puede ser menor que el tamaño del búfer si no hay muchos bytes disponibles actualmente, o cero (0) si la longitud del búfer es cero o se ha alcanzado el final de la secuencia.

Se aplica a

Read(Byte[], Int32, Int32)

Source:
SslStream.cs
Source:
SslStream.cs
Source:
SslStream.cs
Source:
SslStream.cs
Source:
SslStream.cs

Lee los datos de esta secuencia y los almacena en la matriz especificada.

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

buffer
Byte[]

Matriz Byte que recibe los bytes leídos de esta secuencia.

offset
Int32

que Int32 contiene la ubicación de base cero en la buffer que se van a empezar a almacenar los datos leídos de esta secuencia.

count
Int32

que Int32 contiene el número máximo de bytes que se van a leer de esta secuencia.

Devoluciones

Valor Int32 que especifica el número de bytes leídos. Cuando no hay más datos que leer, devuelve 0.

Excepciones

buffer es null.

offset es menor que cero.

O bien

offset es mayor que la longitud de buffer.

O bien

offset + count es mayor que la longitud de buffer.

Error en la operación de lectura. Compruebe la excepción interna, si está presente para determinar la causa del error.

Ya hay una operación de lectura en curso.

Este objeto se ha cerrado.

No se ha producido la autenticación.

Ejemplos

En el ejemplo de código siguiente se muestra la lectura de un 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

Comentarios

El método lee un máximo de count bytes de la secuencia y los almacena a partir de bufferoffset. No se pueden realizar varias operaciones de lectura simultáneas.

No puede llamar a este método hasta que se haya autenticado correctamente. Para autenticar una de las llamadas a uno de los AuthenticateAsClientmétodos , o BeginAuthenticateAsClient, AuthenticateAsServer. BeginAuthenticateAsServer

Para realizar esta operación de forma asincrónica, use el BeginRead método .

Se aplica a