SslStream.Write Метод

Определение

Записывает данные в этот поток.

Перегрузки

Имя Описание
Write(Byte[])

Записывает указанные данные в этот поток.

Write(ReadOnlySpan<Byte>)

При переопределении в производном классе записывает последовательность байтов в текущий поток и перемещает текущую позицию в этом потоке по количеству записанных байтов.

Write(Byte[], Int32, Int32)

Запишите указанное число s в Byteбазовый поток с помощью указанного буфера и смещения.

Write(Byte[])

Исходный код:
SslStream.cs
Исходный код:
SslStream.cs
Исходный код:
SslStream.cs
Исходный код:
SslStream.cs
Исходный код:
SslStream.cs

Записывает указанные данные в этот поток.

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

Параметры

buffer
Byte[]

Byte Массив, предоставляющий байты, записанные в поток.

Исключения

buffer равно null.

Сбой операции записи.

Выполняется операция записи.

Этот объект был закрыт.

Проверка подлинности не произошла.

Примеры

В следующем примере кода демонстрируется запись в прошедший проверку подлинности 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

Комментарии

Этот метод блокируется во время завершения операции. Чтобы предотвратить блокировку во время завершения операции, используйте BeginWrite этот метод.

Этот метод нельзя вызвать, пока не будет успешно выполнена проверка подлинности. Чтобы выполнить проверку подлинности, вызовите один из AuthenticateAsClientметодов или BeginAuthenticateAsClient, AuthenticateAsServerBeginAuthenticateAsServer

Класс SslStream не поддерживает несколько одновременных операций записи.

Применяется к

Write(ReadOnlySpan<Byte>)

Исходный код:
SslStream.cs
Исходный код:
SslStream.cs
Исходный код:
SslStream.cs

При переопределении в производном классе записывает последовательность байтов в текущий поток и перемещает текущую позицию в этом потоке по количеству записанных байтов.

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))

Параметры

buffer
ReadOnlySpan<Byte>

Область памяти. Этот метод копирует содержимое этого региона в текущий поток.

Применяется к

Write(Byte[], Int32, Int32)

Исходный код:
SslStream.cs
Исходный код:
SslStream.cs
Исходный код:
SslStream.cs
Исходный код:
SslStream.cs
Исходный код:
SslStream.cs

Запишите указанное число s в Byteбазовый поток с помощью указанного буфера и смещения.

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)

Параметры

buffer
Byte[]

Byte Массив, предоставляющий байты, записанные в поток.

offset
Int32

Объект Int32 , содержащий отсчитываемое от нуля расположение, в котором начинается чтение байтов, записываемых в buffer поток.

count
Int32

ЗначениеInt32, содержащее количество байтов для чтения.buffer

Исключения

buffer равно null.

offset меньше нуля.

–или–

offset больше длины buffer.

–или–

offset + число больше длины buffer.

Сбой операции записи.

Выполняется операция записи.

Этот объект был закрыт.

Проверка подлинности не произошла.

Комментарии

Этот метод блокируется во время завершения операции. Чтобы предотвратить блокировку во время завершения операции, используйте BeginWrite метод.

Этот метод нельзя вызвать, пока не будет успешно выполнена проверка подлинности. Чтобы выполнить проверку подлинности, вызовите один из AuthenticateAsClientметодов или BeginAuthenticateAsClient, AuthenticateAsServerBeginAuthenticateAsServer

Класс SslStream не поддерживает несколько одновременных операций записи.

Применяется к