I get the following message back when trying to retrieve a file using TCPClient and RAW FTP:
425 Failed to establish connection.
I connect using :
using (TcpClient client = new TcpClient("ServerName", 21))
using (NetworkStream stream = client.GetStream())
using (StreamReader reader = new StreamReader(stream))
using (StreamWriter writer = new StreamWriter(stream))
{
Then I login to the server fine using USER ****
and PASS ***
. I manage to change to the correct directory using CWD /**/**
, as mentioned this all works fine and i get the expected response messages.
However when the following code executes the message mentioned above is all i receive.
lineToSend = "PASV";
Program.logger.Add("Sending to server: " + lineToSend, 1);
writer.WriteLine(lineToSend);
while (!stream.DataAvailable)
{
Program.logger.Add(stream.DataAvailable.ToString(), 1);
Program.logger.Persist();
Thread.Sleep(1000);
}
lineWeRead = reader.ReadLine();
Program.logger.Add("Received from server: " + lineWeRead, 1);
Program.logger.Persist();
lineToSend = "RETR file.txt";
Program.logger.Add("Sending to server: " + lineToSend, 1);
writer.WriteLine(lineToSend);
while (!stream.DataAvailable)
{
Program.logger.Add(stream.DataAvailable.ToString(), 1);
Program.logger.Persist();
Thread.Sleep(1000);
}
Program.logger.Add("Loop Exited: " + stream.DataAvailable.ToString(), 1);
Program.logger.Persist();
lineWeRead = reader.ReadLine();
Program.logger.Add("Received from server: " + lineWeRead, 1);
Program.logger.Persist();
I am fairly new to C#.NET and have been asked specifically to use this method of connecting and not the httpWebRequest.
The file I am trying to receive is a text file containing only "Get this message" but will be bigger when used. Any help is much appreciated.