Redigera

Dela via


SslStream.EndWrite(IAsyncResult) Method

Definition

Ends an asynchronous write operation started with a previous call to BeginWrite(Byte[], Int32, Int32, AsyncCallback, Object).

public:
 override void EndWrite(IAsyncResult ^ asyncResult);
public override void EndWrite (IAsyncResult asyncResult);
override this.EndWrite : IAsyncResult -> unit
Public Overrides Sub EndWrite (asyncResult As IAsyncResult)

Parameters

Exceptions

asyncResult is null.

There is no pending write operation to complete.

-or-

Authentication has not occurred.

The write operation failed.

Examples

The following code example demonstrates ending an asynchronous write operation.

void WriteCallback( IAsyncResult^ ar )
{
   ClientState^ state = dynamic_cast<ClientState^>(ar->AsyncState);
   SslStream^ stream = state->stream;
   try
   {
      Console::WriteLine( L"Writing data to the client." );
      stream->EndWrite( ar );
   }
   catch ( Exception^ writeException ) 
   {
      Console::WriteLine( L"Write error: {0}", writeException->Message );
      state->Close();
      return;
   }

   Console::WriteLine( L"Finished with client." );
   state->Close();
}
void WriteCallback(IAsyncResult ar)
{
    ClientState state = (ClientState) ar.AsyncState;
    SslStream stream = state.stream;
    try
    {
        Console.WriteLine("Writing data to the client.");
        stream.EndWrite(ar);
    }
    catch (Exception writeException)
    {
        Console.WriteLine("Write error: {0}",
            writeException.Message);
        state.Close();
        return;
    }
    Console.WriteLine("Finished with client.");
    state.Close();
}

Remarks

If the operation has not completed, this method blocks until it does.

An application cannot call this method until you have successfully authenticated. To authenticate, call one of the AuthenticateAsClient, or BeginAuthenticateAsClient, AuthenticateAsServer, BeginAuthenticateAsServer methods.

To perform this operation synchronously, use the Write method.

Applies to