Was this page helpful?
Your feedback about this content is important. Let us know what you think.
Additional feedback?
1500 characters remaining
Export (0) Print
Expand All

NegotiateStream.EndRead Method

Note: This method is new in the .NET Framework version 2.0.

Ends an asynchronous read operation that was started with a call to BeginRead.

Namespace: System.Net.Security
Assembly: System (in system.dll)

public override int EndRead (
	IAsyncResult asyncResult
public int EndRead (
	IAsyncResult asyncResult
public override function EndRead (
	asyncResult : IAsyncResult
) : int



An IAsyncResult instance returned by a call to BeginRead

Return Value

A Int32 value that specifies the number of bytes read from the underlying stream.

Exception typeCondition


asyncResult is a null reference (Nothing in Visual Basic).


The asyncResult was not created by a call to BeginRead.


There is no pending read operation to complete.


The read operation failed.


Authentication has not occurred.

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

To perform this operation synchronously, use the Read method.

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

The following code example demonstrates ending an asynchronous read operation. For an example that demonstrates starting the operation, see BeginRead.

public static void EndReadCallback(IAsyncResult ar)
    // Get the saved data.
    ClientState cState = (ClientState) ar.AsyncState;
    TcpClient clientRequest = cState.Client;
    NegotiateStream authStream = (NegotiateStream) cState.AuthenticatedStream; 
    // Get the buffer that stores the message sent by the client.
    int bytes = -1;
    // Read the client message.
            bytes = authStream.EndRead(ar);
            cState.Message.Append(Encoding.UTF8.GetChars(cState.Buffer, 0, bytes));
            if (bytes != 0)
                 authStream.BeginRead(cState.Buffer, 0, cState.Buffer.Length, 
                       new AsyncCallback(EndReadCallback), 
    catch (Exception e)
        // A real application should do something
        // useful here, such as logging the failure.
        Console.WriteLine("Client message exception:");
    IIdentity id = authStream.RemoteIdentity;
    Console.WriteLine("{0} says {1}", id.Name, cState.Message.ToString());

Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see System Requirements.

.NET Framework

Supported in: 2.0

Community Additions

© 2015 Microsoft