Dart.PowerTCP.EmailValidation Namespace > SegmentedStream Class > EndRead Method : EndRead(IAsyncResult,Boolean) Method |
Ends a pending asynchronous SegmentedStream.BeginRead request (that uses a 'found' parameter).
[Visual Basic]
Overloads Public Function EndRead( _
ByVal ar As IAsyncResult, _
ByRef found As Boolean _
) As Integer
[C#]
public int EndRead(
IAsyncResult ar,
ref bool found
);
[C++]
public: int EndRead(
IAsyncResult* ar,
ref bool found
)
[C++/CLI]
public:
int EndRead(
IAsyncResult^ ar,
% bool found
)
The number of bytes read from the stream and copied into the user's buffer. Will return 0 at the end of the stream to indicate the stream has closed and all data has been read.
Exception | Description |
---|---|
IOException | Thrown when the stream is not Readable. |
ArgumentNullException | asyncResult is a null reference. |
ArgumentException | asyncResult is not a valid reference. |
EndOfStreamException | The end of the stream was found before the required byte count was received, or the end of the stream was found before the delimiter was found. |
InternalBufferOverflowException | The delimiter was not found within the maximum number of bytes (count) specified. |
You will normally call this method from within your AsyncCallback event handler to complete your asynchronous read request, but it can be called anytime to cancel an outstanding request.
The following example demonstrates asynchronously reading from the server using the stream interface. This involves creating a callback method in which the response is handled. If you would like to use fully asynchronous methods with events already implemented, try the low-level interface (Tcp.BeginRead & Tcp.BeginWrite).
[C#]
private void AsynchronousReadTest()
{
// Connect to the server
tcp1.Connect("atropos", 13);
// DAYTIME protocol (port 13) sends data and closes, receive data.
// This demonstrates receiving data asynchronously using the stream interface.
// data buffer is a global variable
databuffer = new byte[tcp1.ReceiveBufferSize];
// Begin the asynchronous Read operation.
tcp1.Stream.BeginRead(databuffer, 0, tcp1.ReceiveBufferSize, new System.AsyncCallback(MyCallback), null);
}
private void MyCallback(System.IAsyncResult ar)
{
// End pending asynchronous request.
if(ar.IsCompleted)
tcp1.Stream.EndRead(ar);
// Write result
Debug.WriteLine(System.Text.Encoding.Default.GetString(databuffer));
}
Platforms: Windows 98, Windows NT 4.0, Windows ME, Windows 2000, Windows XP, Windows Server 2003, Windows Vista
SegmentedStream Class | SegmentedStream Members | Overload List
Send comments on this topic.
Documentation version 1.0.3.0.
© 2008 Dart Communications. All rights reserved.