SslStream.Read Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Surcharges
| Nom | Description |
|---|---|
| Read(Span<Byte>) |
En cas de substitution dans une classe dérivée, lit une séquence d’octets à partir du flux actuel et avance la position dans le flux par le nombre d’octets lus. |
| Read(Byte[], Int32, Int32) |
Lit les données de ce flux et les stocke dans le tableau spécifié. |
Read(Span<Byte>)
- Source:
- SslStream.cs
- Source:
- SslStream.cs
- Source:
- SslStream.cs
En cas de substitution dans une classe dérivée, lit une séquence d’octets à partir du flux actuel et avance la position dans le flux par le nombre d’octets lus.
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
Paramètres
Une région de mémoire. Lorsque cette méthode est retournée, le contenu de cette région est remplacé par les octets lus à partir de la source actuelle.
Retours
Nombre total d’octets lus dans la mémoire tampon. Cela peut être inférieur à la taille de la mémoire tampon si de nombreux octets ne sont pas actuellement disponibles, ou zéro (0) si la longueur de la mémoire tampon est égale à zéro ou que la fin du flux a été atteinte.
S’applique à
Read(Byte[], Int32, Int32)
- Source:
- SslStream.cs
- Source:
- SslStream.cs
- Source:
- SslStream.cs
- Source:
- SslStream.cs
- Source:
- SslStream.cs
Lit les données de ce flux et les stocke dans le tableau spécifié.
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
Paramètres
- offset
- Int32
Qui Int32 contient l’emplacement de base zéro dans buffer lequel commencer à stocker les données lues à partir de ce flux.
Retours
Valeur Int32 qui spécifie le nombre d’octets lus. Lorsqu’il n’y a plus de données à lire, retourne 0.
Exceptions
buffer a la valeur null.
offset est inférieur à zéro.
- ou -
offset est supérieur à la longueur de buffer.
- ou -
offset + nombre est supérieur à la longueur de buffer.
Échec de l’opération de lecture. Vérifiez l’exception interne, si elle est présente pour déterminer la cause de l’échec.
Il existe déjà une opération de lecture en cours.
Cet objet a été fermé.
L’authentification n’a pas eu lieu.
Exemples
L’exemple de code suivant illustre la lecture à partir d’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
Remarques
La méthode lit un maximum d’octets count à partir du flux et les stocke en buffer commençant à offset. Vous ne pouvez pas effectuer plusieurs opérations de lecture simultanées.
Vous ne pouvez pas appeler cette méthode tant que vous n’avez pas correctement authentifié. Pour authentifier l’appel de l’une AuthenticateAsClientdes méthodes, ou BeginAuthenticateAsClient, AuthenticateAsServerBeginAuthenticateAsServer
Pour effectuer cette opération de façon asynchrone, utilisez la BeginRead méthode.