Bagikan melalui


SslStream.Write Metode

Definisi

Menulis data ke aliran ini.

Overload

Write(Byte[])

Menulis data yang ditentukan ke aliran ini.

Write(Byte[], Int32, Int32)

Tulis jumlah Byteyang ditentukan ke aliran yang mendasar menggunakan buffer dan offset yang ditentukan.

Write(Byte[])

Sumber:
SslStream.cs
Sumber:
SslStream.cs
Sumber:
SslStream.cs

Menulis data yang ditentukan ke aliran ini.

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[]

Array Byte yang memasok byte yang ditulis ke aliran.

Pengecualian

bufferadalah null.

Operasi tulis gagal.

Sudah ada operasi tulis yang sedang berlangsung.

Objek ini telah ditutup.

Autentikasi belum terjadi.

Contoh

Contoh kode berikut menunjukkan penulisan ke yang diautentikasi SslStream.

static void ProcessClient( TcpClient^ client )
{
   
   // A client has connected. Create the 
   // SslStream using the client's network stream.
   SslStream^ sslStream = gcnew SslStream( client->GetStream(),false );
   
   // Authenticate the server but don't require the client to authenticate.
   try
   {
      sslStream->AuthenticateAsServer( serverCertificate, false, true );
      // false == no client cert required; true == check cert revocation.
      
      // 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( L"Waiting for client message..." );
      String^ messageData = ReadMessage( sslStream );
      Console::WriteLine( L"Received: {0}", messageData );
      
      // Write a message to the client.
      array<Byte>^message = Encoding::UTF8->GetBytes( L"Hello from the server.<EOF>" );
      Console::WriteLine( L"Sending hello message." );
      sslStream->Write( message );
   }
   catch ( AuthenticationException^ e ) 
   {
      Console::WriteLine( L"Exception: {0}", e->Message );
      if ( e->InnerException != nullptr )
      {
         Console::WriteLine( L"Inner exception: {0}", e->InnerException->Message );
      }
      Console::WriteLine( L"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();
   }

}
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

Keterangan

Metode ini memblokir saat operasi selesai. Untuk mencegah pemblokiran saat operasi selesai, gunakan BeginWrite metode .

Anda tidak dapat memanggil metode ini sampai Anda berhasil mengautentikasi. Untuk mengautentikasi panggilan salah AuthenticateAsClientsatu metode , atau BeginAuthenticateAsClient, AuthenticateAsServer, BeginAuthenticateAsServer .

Kelas SslStream tidak mendukung beberapa operasi tulis simultan.

Berlaku untuk

Write(Byte[], Int32, Int32)

Sumber:
SslStream.cs
Sumber:
SslStream.cs
Sumber:
SslStream.cs

Tulis jumlah Byteyang ditentukan ke aliran yang mendasar menggunakan buffer dan offset yang ditentukan.

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[]

Array Byte yang memasok byte yang ditulis ke aliran.

offset
Int32

Int32 yang berisi lokasi berbasis nol untuk buffer mulai membaca byte yang akan ditulis ke aliran.

count
Int32

Int32 yang berisi jumlah byte yang akan dibaca dari buffer.

Pengecualian

bufferadalah null.

offset kurang dari nol.

-atau-

offset lebih besar dari panjang buffer.

-atau-

offset + hitungan lebih besar dari panjang buffer.

Operasi tulis gagal.

Sudah ada operasi tulis yang sedang berlangsung.

Objek ini telah ditutup.

Autentikasi belum terjadi.

Keterangan

Metode ini memblokir saat operasi selesai. Untuk mencegah pemblokiran saat operasi selesai, gunakan BeginWrite metode .

Anda tidak dapat memanggil metode ini sampai Anda berhasil mengautentikasi. Untuk mengautentikasi panggilan salah AuthenticateAsClientsatu metode , atau BeginAuthenticateAsClient, AuthenticateAsServer, BeginAuthenticateAsServer .

Kelas SslStream tidak mendukung beberapa operasi tulis simultan.

Berlaku untuk