SslStream.Write Méthode

Définition

Écrit des données dans ce flux.

Surcharges

Nom Description
Write(Byte[])

Écrit les données spécifiées dans ce flux.

Write(Byte[], Int32, Int32)

Écrivez le nombre spécifié de Bytes dans le flux sous-jacent à l’aide de la mémoire tampon et du décalage spécifiés.

Write(Byte[])

Écrit les données spécifiées dans ce flux.

public:
 void Write(cli::array <System::Byte> ^ buffer);
public void Write(byte[] buffer);
override this.Write : byte[] -> unit
Public Sub Write (buffer As Byte())

Paramètres

buffer
Byte[]

Tableau Byte qui fournit les octets écrits dans le flux.

Exceptions

buffer a la valeur null.

Échec de l’opération d’écriture.

Il existe déjà une opération d’écriture en cours.

Cet objet a été fermé.

L’authentification n’a pas eu lieu.

Exemples

L’exemple de code suivant illustre l’écriture dans un fichier authentifié SslStream.

static void ProcessClient (TcpClient client)
{
    // A client has connected. Create the
    // SslStream using the client's network stream.
    SslStream sslStream = new SslStream(
        client.GetStream(), false);
    // Authenticate the server but don't require the client to authenticate.
    try
    {
        sslStream.AuthenticateAsServer(serverCertificate, clientCertificateRequired: false, checkCertificateRevocation: true);

        // Display the properties and settings for the authenticated stream.
        DisplaySecurityLevel(sslStream);
        DisplaySecurityServices(sslStream);
        DisplayCertificateInformation(sslStream);
        DisplayStreamProperties(sslStream);

        // Set timeouts for the read and write to 5 seconds.
        sslStream.ReadTimeout = 5000;
        sslStream.WriteTimeout = 5000;
        // Read a message from the client.
        Console.WriteLine("Waiting for client message...");
        string messageData = ReadMessage(sslStream);
        Console.WriteLine("Received: {0}", messageData);

        // Write a message to the client.
        byte[] message = Encoding.UTF8.GetBytes("Hello from the server.<EOF>");
        Console.WriteLine("Sending hello message.");
        sslStream.Write(message);
    }
    catch (AuthenticationException e)
    {
        Console.WriteLine("Exception: {0}", e.Message);
        if (e.InnerException != null)
        {
            Console.WriteLine("Inner exception: {0}", e.InnerException.Message);
        }
        Console.WriteLine ("Authentication failed - closing the connection.");
        sslStream.Close();
        client.Close();
        return;
    }
    finally
    {
        // The client stream will be closed with the sslStream
        // because we specified this behavior when creating
        // the sslStream.
        sslStream.Close();
        client.Close();
    }
}
Private Shared Sub ProcessClient(client As TcpClient)
    ' A client has connected. Create the 
    ' SslStream using the client's network stream.
    Dim sslStream = New SslStream(client.GetStream(), False)

    Try

        sslStream.AuthenticateAsServer(serverCertificate, clientCertificateRequired:=False, checkCertificateRevocation:=True)
        ' Display the properties And settings for the authenticated stream.
        DisplaySecurityLevel(sslStream)
        DisplaySecurityServices(sslStream)
        DisplayCertificateInformation(sslStream)
        DisplayStreamProperties(sslStream)

        ' Set timeouts for the read and write to 5 seconds.
        sslStream.ReadTimeout = 5000
        sslStream.WriteTimeout = 5000

        ' Read a message from the client.   
        Console.WriteLine("Waiting for client message...")
        Dim messageData As String = ReadMessage(sslStream)
        Console.WriteLine("Received: {0}", messageData)

        ' Write a message to the client.
        Dim message As Byte() = Encoding.UTF8.GetBytes("Hello from the server.<EOF>")
        Console.WriteLine("Sending hello message.")
        sslStream.Write(message)
    Catch e As AuthenticationException
        Console.WriteLine("Exception: {0}", e.Message)

        If e.InnerException IsNot Nothing Then
            Console.WriteLine("Inner exception: {0}", e.InnerException.Message)
        End If

        Console.WriteLine("Authentication failed - closing the connection.")
        sslStream.Close()
        client.Close()
        Return
    Finally
        ' The client stream will be closed with the sslStream
        ' because we specified this behavior when creating
        ' the sslStream.
        sslStream.Close()
        client.Close()
    End Try
End Sub

Remarques

Cette méthode se bloque pendant la fin de l’opération. Pour empêcher le blocage pendant la fin de l’opération, utilisez la BeginWrite méthode.

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

La SslStream classe ne prend pas en charge plusieurs opérations d’écriture simultanées.

S’applique à

Write(Byte[], Int32, Int32)

Écrivez le nombre spécifié de Bytes dans le flux sous-jacent à l’aide de la mémoire tampon et du décalage spécifiés.

public:
 override void Write(cli::array <System::Byte> ^ buffer, int offset, int count);
public override void Write(byte[] buffer, int offset, int count);
override this.Write : byte[] * int * int -> unit
Public Overrides Sub Write (buffer As Byte(), offset As Integer, count As Integer)

Paramètres

buffer
Byte[]

Tableau Byte qui fournit les octets écrits dans le flux.

offset
Int32

Qui Int32 contient l’emplacement de base zéro dans buffer lequel commencer la lecture d’octets à écrire dans le flux.

count
Int32

Qui Int32 contient le nombre d’octets à lire buffer.

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 d’écriture.

Il existe déjà une opération d’écriture en cours.

Cet objet a été fermé.

L’authentification n’a pas eu lieu.

Remarques

Cette méthode se bloque pendant la fin de l’opération. Pour empêcher le blocage pendant la fin de l’opération, utilisez la BeginWrite méthode.

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

La SslStream classe ne prend pas en charge plusieurs opérations d’écriture simultanées.

S’applique à