logo资料库

FTP 下载流程.docx

第1页 / 共4页
第2页 / 共4页
第3页 / 共4页
第4页 / 共4页
资料共4页,全文预览结束
FTP[GW]文件下载流程 步骤一:调用指令 at$mynetcon 设置网络初始化参数,设置 channel ID 和 APN 步骤二:调用指令 at$mynetact 激活步骤一设置的网络 步骤三:调用指令 at$myftpopen,ftp 会创建两条通路,一条是命令通道(control socket),一条是数据通路 (data socket),open 时创建的是命令通道,该 AT 指令 open ftp 时调用函数 app_ftp_connect_server 如下: app_ftp_connect_server apptcpip_soc_create apptcpip_soc_select_event apptcpip_soc_connect socket 连接 OK 后,server 与模块会有信令交互,通过注册的回调函数(apptcpip_soc_callback_func )通知 server 状态,模块通过选择函数 app_ftp_ctrl_soc_notify 做出回应,此过程通过 control_socket 交互, 如下: server Server MO Send code 220 notify MO that server ready ok Send ”user name” Send code 331 notify MO that “user name ”is OK,but need password Send ”password” Send code 230 notify MO that user logged
至此,步骤三 open success。 步骤四:调用指令 at$myftpget 获取文件,模块收到指令后会调用 process_ftp_get 函数发送 TYPE 设置文件 传输类型,其与 server 交互流程,其通知方式和和回应仍然通过回调函数 apptcpip_soc_callback_func 和选 择函数 app_ftp_ctrl_soc_notify,此过程通过 control_socket 交互,如下: server Server MO Send “TYPE” Send code 200 indicate TYPE set okay Send “PASV” Send code 227 notify that enter passsive mode 模块收到代码 227 后调用函数 app_ftp_init_passive_data_con 初始化被动数据连接,该函数与 open 网络 时 app_ftp_connect_server 函数类似,创建 data socket ,注册回调函数 apptcpip_soc_callback_func,注册事 件通知选择函数 app_ftp_socket_cb_fcn,连接 server 的 data 通道,三次握手之后,data socket connect okay。 模块与 server 建立 socket 连接后,server 在 data 通道会下发一个 CONNECT event,模块进入透传模式 并发送”CONNECT”到串口,其与 server 交互如下: server Server MO Send “CONNECT” event by data channel Send ” REST”,set file offset by control channel Send code 350(need more information) by control channel Send ” RETR” and file name by control channel
Send file data by data channel Send close event by data channel Send code 226 indicate file transfer complete 模块收到代码 226 后,退出透传模式,文件下载结束。
分享到:
收藏