SslStream.Read(Byte[], Int32, Int32) Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Liest Daten aus diesem Datenstrom und speichert sie im angegebenen Array.
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
Parameter
- offset
- Int32
Ein Int32 Objekt, das den nullbasierten Speicherort enthält, an buffer dem die aus diesem Datenstrom gelesenen Daten gespeichert werden sollen.
Gibt zurück
Ein Int32 Wert, der die Anzahl der gelesenen Bytes angibt. Wenn keine weiteren Zu lesenden Daten vorhanden sind, wird 0 zurückgegeben.
Ausnahmen
buffer ist null.
offset ist kleiner als 0 (null).
-oder-
offset ist größer als die Länge von buffer.
-oder-
offset + Anzahl ist größer als die Länge von buffer.
Fehler beim Lesevorgang. Überprüfen Sie die innere Ausnahme, falls vorhanden, um die Ursache des Fehlers zu ermitteln.
Es wird bereits ein Lesevorgang ausgeführt.
Dieses Objekt wurde geschlossen.
Die Authentifizierung ist nicht aufgetreten.
Beispiele
Das folgende Codebeispiel veranschaulicht das Lesen aus einem 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
Hinweise
Die Methode liest maximal count Bytes aus dem Datenstrom und speichert sie beginnend buffer bei offset. Sie können nicht mehrere gleichzeitige Lesevorgänge ausführen.
Sie können diese Methode erst aufrufen, nachdem Sie sich erfolgreich authentifiziert haben. Zum Authentifizieren rufen Sie eine der AuthenticateAsClientMethoden oder Methoden oder BeginAuthenticateAsClientMethoden AuthenticateAsServerBeginAuthenticateAsServer auf.
Verwenden Sie die BeginRead Methode, um diesen Vorgang asynchron auszuführen.