【发布时间】:2015-01-09 05:02:50
【问题描述】:
我在尝试使用 TCPClient 和 RAW FTP 检索文件时收到以下消息:
425 建立连接失败。
我使用连接:
using (TcpClient client = new TcpClient("ServerName", 21))
using (NetworkStream stream = client.GetStream())
using (StreamReader reader = new StreamReader(stream))
using (StreamWriter writer = new StreamWriter(stream))
{
然后我使用USER **** 和PASS *** 登录到服务器。我设法使用CWD /**/** 更改到正确的目录,如上所述,这一切正常,我得到了预期的响应消息。
但是,当下面的代码执行时,我收到的只是上面提到的消息。
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();
我是 C#.NET 的新手,并被专门要求使用这种连接方法,而不是 httpWebRequest。
我尝试接收的文件是一个仅包含“获取此消息”的文本文件,但使用时会更大。非常感谢任何帮助。
【问题讨论】:
-
为什么不能使用
FtpWebRequest?除非这是家庭作业,否则请告诉任何问你的人,重新发明轮子是没有意义的。