SslStream.Write Methode

Definition

Schreibt Daten in diesen Datenstrom.

Überlädt

Name Beschreibung
Write(Byte[])

Schreibt die angegebenen Daten in diesen Datenstrom.

Write(ReadOnlySpan<Byte>)

Wenn sie in einer abgeleiteten Klasse überschrieben wird, wird eine Bytesequenz in den aktuellen Datenstrom geschrieben und die aktuelle Position innerhalb dieses Datenstroms um die Anzahl der geschriebenen Bytes vorangestellt.

Write(Byte[], Int32, Int32)

Schreiben Sie die angegebene Anzahl von s mithilfe des Byteangegebenen Puffers und Offsets in den zugrunde liegenden Datenstrom.

Write(Byte[])

Quelle:
SslStream.cs
Quelle:
SslStream.cs
Quelle:
SslStream.cs
Quelle:
SslStream.cs
Quelle:
SslStream.cs

Schreibt die angegebenen Daten in diesen Datenstrom.

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

Parameter

buffer
Byte[]

Ein Byte Array, das die in den Datenstrom geschriebenen Bytes bereitstellt.

Ausnahmen

buffer ist null.

Fehler beim Schreibvorgang.

Es wird bereits ein Schreibvorgang ausgeführt.

Dieses Objekt wurde geschlossen.

Die Authentifizierung ist nicht aufgetreten.

Beispiele

Das folgende Codebeispiel veranschaulicht das Schreiben in eine authentifizierte 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

Hinweise

Diese Methode blockiert, während der Vorgang abgeschlossen ist. Verwenden Sie die BeginWrite Methode, um das Blockieren während des Abschlusses des Vorgangs zu verhindern.

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.

Die SslStream Klasse unterstützt nicht mehrere gleichzeitige Schreibvorgänge.

Gilt für:

Write(ReadOnlySpan<Byte>)

Quelle:
SslStream.cs
Quelle:
SslStream.cs
Quelle:
SslStream.cs

Wenn sie in einer abgeleiteten Klasse überschrieben wird, wird eine Bytesequenz in den aktuellen Datenstrom geschrieben und die aktuelle Position innerhalb dieses Datenstroms um die Anzahl der geschriebenen Bytes vorangestellt.

public:
 override void Write(ReadOnlySpan<System::Byte> buffer);
public override void Write(ReadOnlySpan<byte> buffer);
override this.Write : ReadOnlySpan<byte> -> unit
Public Overrides Sub Write (buffer As ReadOnlySpan(Of Byte))

Parameter

buffer
ReadOnlySpan<Byte>

Ein Speicherbereich. Diese Methode kopiert den Inhalt dieses Bereichs in den aktuellen Datenstrom.

Gilt für:

Write(Byte[], Int32, Int32)

Quelle:
SslStream.cs
Quelle:
SslStream.cs
Quelle:
SslStream.cs
Quelle:
SslStream.cs
Quelle:
SslStream.cs

Schreiben Sie die angegebene Anzahl von s mithilfe des Byteangegebenen Puffers und Offsets in den zugrunde liegenden Datenstrom.

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)

Parameter

buffer
Byte[]

Ein Byte Array, das die in den Datenstrom geschriebenen Bytes bereitstellt.

offset
Int32

Eine Int32 , die den nullbasierten Speicherort enthält, an buffer dem mit dem Lesen von Bytes begonnen wird, die in den Datenstrom geschrieben werden sollen.

count
Int32

A Int32 , das die Anzahl der Bytes enthält, aus bufferdenen gelesen werden soll.

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 Schreibvorgang.

Es wird bereits ein Schreibvorgang ausgeführt.

Dieses Objekt wurde geschlossen.

Die Authentifizierung ist nicht aufgetreten.

Hinweise

Diese Methode blockiert, während der Vorgang abgeschlossen ist. Um das Blockieren zu verhindern, während der Vorgang abgeschlossen ist, verwenden Sie die BeginWrite Methode.

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.

Die SslStream Klasse unterstützt nicht mehrere gleichzeitige Schreibvorgänge.

Gilt für: