Private Sub button1_Click(ByVal sender As Object, ByVal e As System.EventArgs )
Dim ftp As New AsyncFtpClient()
Dim result As IAsyncResult = ftp.BeginConnect( "ftp.server.com", Nothing, Nothing )
While Not result.IsCompleted
Application.DoEvents()
WEnd
ftp.EndConnect( result )
result = ftp.BeginLogin( Nothing, Nothing )
While Not result.IsCompleted
Application.DoEvents()
WEnd
ftp.EndLogin( result )
result = ftp.BeginGetDownloadStream( "test.txt", 0, New AsyncCallback( AddressOf Me.end_download ), ftp )
While Not result.IsCompleted
Application.DoEvents()
WEnd
result = ftp.BeginDisconnect( Nothing, Nothing )
While Not result.IsCompleted
Application.DoEvents()
WEnd
ftp.EndDisconnect( result )
End Sub
Private Sub end_download( ByVal result As IAsyncResult )
Dim client As AsyncFtpClient = result.AsyncState
Try
Dim stream As System.IO.Stream = client.EndGetDownloadStream( result )
Dim buffer(32768) As Byte
Dim bytesRead As Integer = 0
' Loop until we have nothing more to read from the source stream.
' We are assuming that the data contained in the file is text
Dim data As String = string.Empty
Do
bytesRead = stream.Read(buffer, 0, buffer.Length)
If bytesRead > 0 Then
data += System.Text.Encoding.ASCII.GetString( buffer )
End If
Loop Until bytesRead = 0
System.Diagnostics.Debug.WriteLine( data )
stream.Close()
Catch exception As Exception
System.Diagnostics.Debug.WriteLine( exception.Message )
End Try
End Sub
private void button1_Click(object sender, System.EventArgs e)
{
AsyncFtpClient ftp = new AsyncFtpClient();
IAsyncResult result = ftp.BeginConnect( "ftp.server.com", null, null );
while( !result.IsCompleted )
Application.DoEvents();
ftp.EndConnect( result );
result = ftp.BeginLogin( null, null );
while( !result.IsCompleted )
Application.DoEvents();
ftp.EndLogin( result );
result = ftp.BeginGetDownloadStream( "test.txt", 0, new AsyncCallback( this.end_download ), ftp );
while( !result.IsCompleted )
Application.DoEvents();
result = ftp.BeginDisconnect( null, null );
while( !result.IsCompleted )
Application.DoEvents();
ftp.EndDisconnect( result );
}
private void end_download( IAsyncResult result )
{
AsyncFtpClient client = result.AsyncState as AsyncFtpClient;
try
{
using( System.IO.Stream stream = client.EndGetDownloadStream( result ) )
{
byte[] buffer = new byte[ 32768 ];
int bytesRead = 0;
// Loop until we have nothing more to read from the source stream.
// We are assuming that the data contained in the file is text
string data = string.Empty;
while( ( bytesRead = stream.Read( buffer, 0, buffer.Length ) ) > 0 )
{
data += System.Text.Encoding.ASCII.GetString( buffer );
}
System.Diagnostics.Debug.WriteLine( data );
}
}
catch( Exception exception )
{
System.Diagnostics.Debug.WriteLine( exception.Message );
}
}