//FTPserverwithsupportforonlyoneuser-wewanttouseitforfileuploads#include""#define_CLOSE_ERROR//testoption#ifdefinedUSE_FTP/*===================================================================*//*localdefinitions*//*===================================================================*/#ifdefSTRING_OPTIMISATION//{14}#define_fnBufferDec(x,y,z)fnBufferDec(x,y,z)//newdecimalstringroutine#else#define_fnBufferDec(x,y,z)fnDebugDec(x,y,z)//originaldecimalstringroutine#endif#if!definedFTP_DISPLAY_USER_FILES#undefINTERNAL_USER_FILES#endif#defineOWN_TASKTASK_FTP#defineFTP_STATE_CLOSED0//mandstates#defineFTP_STATE_CONNECTED1#defineFTP_STATE_LOGIN2#defineFTP_STATE_ACTIVE_USER3#defineFTP_STATE_PREPARE_CLOSE4#defineMSG_DO_NOTHING0//Messagestates#defineMSG_REPEAT_DATA1#defineMSG_REPEAT_CONTROL2#defineMSG_SERVER_READY10//Commandmessages#defineMSG_DIR_OK11#defineMSG_ENTER_PASS12#ESS13#defineMSG_LOG_FAILED14#defineMSG_FTP_DATA15#defineMSG_FTP_TYPE16#defineMSG_FTP_DENIED17#defineMSG_FTP_DIR18#defineMSG_FTP_OK19#defineMSG_DIR_CHANGED20#defineMSG_FTP_UNKNOWN21#defineMSG_DEL_OK22#defineMSG_FILE_LENGTH23#defineMSG_PASV_OK24#defineMSG_BAD_DATA_CONNECTION25#defineMSG_NOT_SUPPORTED26#defineMSG_FTP_QUITTING27#defineMSG_FTP_READY_FOR_RENAME28#ESSFUL29#defineMSG_DIR40//Datamessages#defineMSG_UPLOAD41#defineFIRST_DATA_MESSAGEMSG_DIR#ifdefFTP_VERIFY_DATA_PORT//{4}ifcheckingisenablemodifyreturntypeoffnGetDataPort()#defineRTN_DATA_PORTint#else#defineRTN_DATA_PORTvoid#endif#onstCHARcFileType[]={'','1','','5','0','2','','5','0','2',''};onstCHARcFileDate[]={'','M','a','y','','1','','2','0','0','9',''};//{13}onstCHARcFileRights[]={'-','r','w','x','r','w','x','r','w','x'};#defineLENGTH_OF_FILE_TYPEsizeof(cFileType)#defineLENGTH_OF_FILE_LENGTH6//999kismaxpossiblefilesize#defineLENGTH_OF_FILE_DATEsizeof(cFileDate)#ifdefINTERNAL_USER_FILES//{13}#defineLENGTH_OF_FILE_NAMEMAX_FILE_NAME_LENGTH#else#defineLENGTH_OF_FILE_NAME7//{13}reducedby1#endif#defineLENGTH_OF_FILE_INFO(sizeof(cFileRights)+LENGTH_OF_FI
STM32上FTP的是实现源代码 来自淘豆网www.taodocs.com转载请标明出处.