建立FTP数据连接时是否需要问候或握手?

建立FTP数据连接时是否需要问候或握手?,ftp,ftpwebrequest,filezilla,Ftp,Ftpwebrequest,Filezilla,我正在实现一个简单的FTP服务器。调试时,我尝试使用FileZilla客户端连接服务器。命令面板中的请求和响应模式如下所示: GREETING: 220 (FTP v1.0) REQUEST: USER *** RESPONS: 331 Password? REQUEST: PASS ******** RESPONS: 230 login successfully. REQUEST: PWD RESPONS: 257 "/a/" is current directory. REQUE

我正在实现一个简单的FTP服务器。调试时,我尝试使用FileZilla客户端连接服务器。命令面板中的请求和响应模式如下所示:

GREETING: 220 (FTP v1.0)
REQUEST:  USER ***
RESPONS:  331 Password?
REQUEST:  PASS ********
RESPONS:  230 login successfully.
REQUEST:  PWD
RESPONS:  257 "/a/" is current directory.
REQUEST:  TYPE I
RESPONS:  200 Type set to I.
REQUEST:  PASV
RESPONS:  200 127,255,0,0,175,200(I specify local port 45000)
REQUEST:  LIST
RESPONS:  150 here is the listing
RESPONS:  226 Transfer done.
但是,读取directroy时出现了一个错误。我认为确实建立了被动连接,因为我可以在套接字上获取流(我用C#实现服务器)。但我不知道为什么会出错。是不是因为我应该发送一些握手/问候信息,比如控制连接中的信息,而不是直接将数据发送到同步服务器和客户端?如果是,此信息的状态代码是什么


谢谢并致以最诚挚的问候。

数据连接上没有握手


“读取目录失败”错误可能是由于服务器返回的文件夹列表格式不正确造成的?

也许,我使用了一些虚拟数据进行测试,将优化此模块并再次测试。谢谢,你说得对。格式是一回事,另一件事是我在数据传输完成后保持连接打开。想知道为什么FileZilla会采用这种策略,也许所有操作都在一个线程中完成?如果我有时间,我会检查src。