安卓FTP客户端无法连接FTP服务器FineFTP

    FineFTP的介绍请见上一篇博文《C++FTP服务器库:FineFTP的编译和使用》。

 

一、问题描述:

如题,在windows电脑中通过FineFTP搭建了一个FTP服务器,在安卓手机/设备中运行FTP客户端,然后连接windows上的FTP服务器,结果无法连接。通过Wireshark抓包发现,客户端发送的FTP命令和返回的响应如下所示:

安卓FTP客户端无法连接FTP服务器FineFTP_第1张图片

 

问题就出在客户端向服务器发送SYST指令(获取服务器使用的操作系统)时,服务器返回了“215 WIN32”。该响应导致了客户端接下来发送QUIT指令,使客户端从 FTP 服务器上退出登录。

 

二、解决方法:

打开fineftp-server/src目录下的ftp_session.cpp文件

安卓FTP客户端无法连接FTP服务器FineFTP_第2张图片

 

将830行的:return FtpMessage(FtpReplyCode::NAME_SYSTEM_TYPE, "WIN32"); 更改为return FtpMessage(FtpReplyCode::NAME_SYSTEM_TYPE, "UNIX");

安卓FTP客户端无法连接FTP服务器FineFTP_第3张图片

 

更改完成后重新编译FTP服务器程序,重新使用安卓FTP客户端连接FTP服务器,然后发现客户端向服务器发送SYST指令时,服务器的响应改了,然后客户端可以正常连接服务器了,如下图所示:

安卓FTP客户端无法连接FTP服务器FineFTP_第4张图片

 

 

你可能感兴趣的:(网络/服务器,ftp)