次の方法で共有


SslStream.EndWrite(IAsyncResult) メソッド

定義

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)

パラメーター

asyncResult
IAsyncResult

BeginWrite(Byte[], Int32, Int32, AsyncCallback, Object) の呼び出しによって返される IAsyncResult インスタンス。

例外

asyncResultnullです。

BeginWrite(Byte[], Int32, Int32, AsyncCallback, Object) への呼び出しで asyncResult が作成されませんでした。

完了する保留中の書き込み操作がありません。

または

認証が行われていません。

書き込み操作に失敗しました。

次のコード例では、非同期書き込み操作を終了する方法を示します。

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();
}

注釈

操作が完了していない場合、このメソッドは完了するまでブロックします。

正常に認証されるまで、アプリケーションはこのメソッドを呼び出すことができません。 認証するには、、BeginAuthenticateAsClientAuthenticateAsServerBeginAuthenticateAsServer、のいずれかのメソッドをAuthenticateAsClient呼び出します。

この操作を同期的に実行するには、 メソッドを使用します Write

適用対象