SslStream.Read Metod

Definition

Överlagringar

Name Description
Read(Span<Byte>)

När den åsidosätts i en härledd klass läser du en sekvens med byte från den aktuella strömmen och flyttar fram positionen i dataströmmen med antalet lästa byte.

Read(Byte[], Int32, Int32)

Läser data från den här strömmen och lagrar dem i den angivna matrisen.

Read(Span<Byte>)

Källa:
SslStream.cs
Källa:
SslStream.cs
Källa:
SslStream.cs

När den åsidosätts i en härledd klass läser du en sekvens med byte från den aktuella strömmen och flyttar fram positionen i dataströmmen med antalet lästa byte.

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

Parametrar

buffer
Span<Byte>

En region med minne. När den här metoden returnerar ersätts innehållet i den här regionen med byteen som lästs från den aktuella källan.

Returer

Det totala antalet byte som lästs in i bufferten. Detta kan vara mindre än buffertens storlek om så många byte för närvarande inte är tillgängliga eller noll (0) om buffertens längd är noll eller om strömmens slut har nåtts.

Gäller för

Read(Byte[], Int32, Int32)

Källa:
SslStream.cs
Källa:
SslStream.cs
Källa:
SslStream.cs
Källa:
SslStream.cs
Källa:
SslStream.cs

Läser data från den här strömmen och lagrar dem i den angivna matrisen.

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

Parametrar

buffer
Byte[]

En Byte matris som tar emot byteen som lästs från den här strömmen.

offset
Int32

En Int32 som innehåller den nollbaserade plats buffer där du kan börja lagra data som lästs från den här dataströmmen.

count
Int32

En Int32 som innehåller det maximala antalet byte som ska läsas från den här strömmen.

Returer

Ett Int32 värde som anger antalet lästa byte. När det inte finns fler data att läsa returnerar 0.

Undantag

buffer är null.

offset är mindre än noll.

-eller-

offset är större än längden på buffer.

-eller-

offset + antal är större än längden på buffer.

Läsåtgärden misslyckades. Kontrollera det inre undantaget om det finns för att fastställa orsaken till felet.

Det pågår redan en läsåtgärd.

Det här objektet har stängts.

Autentiseringen har inte inträffat.

Exempel

Följande kodexempel visar läsning från en 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

Kommentarer

Metoden läser maximalt antal count byte från dataströmmen och lagrar dem från buffer och med offset. Du kan inte utföra flera samtidiga läsåtgärder.

Du kan inte anropa den här metoden förrän du har autentiserats. Om du vill autentisera AuthenticateAsClientanropa någon av metoderna , eller BeginAuthenticateAsClient, AuthenticateAsServer. BeginAuthenticateAsServer

Använd metoden för att utföra den här åtgärden asynkront BeginRead .

Gäller för