从C中的内存中上传FTP文件

时间:2015-05-14 15:39:40

标签: c ftp embedded

我正在编写一个C(不是C ++)的嵌入式软件,它允许我将文件传输到ftp(某些特定硬件所做的读数),但似乎我不知道如何进行传输。这是我的代码:

    ///pasive connection FTP
    sprintf(szBuf, "PASV\r\n");
        FTP_SendCmd(szBuf);

        if(!FTP_RecvResponse())
            return FALSE;

        if(strncmp(szBuf , "227", 3) != 0)
            return FALSE;



        sprintf(szBuf, "STOR m4.html\r\n");//command that allows storage of a file in the FTP
                FTP_SendCmd(szBuf);
                if(!FTP_RecvResponse())
                                return FALSE;

                if(!FTP_RecvResponse())
                    return FALSE;

问题在于STOR使用文件名,但由于它是自定义硬件,我需要一种方法来从SDRAM中的特定地址流式传输字节(例如0x000-0xFFF),所以我想知道是否有人可以给我一些建议创建文件,填写FTP中的信息?

1 个答案:

答案 0 :(得分:2)

FTP协议使用两个不同的连接,即控制连接和数据连接。根据模式,数据连接可以由服务器(活动)或客户端(被动)启动。

PASV命令(表示被动传输)响应包含服务器正在侦听数据连接的IP地址和PORT。

STOR命令向服务器指示必须使用哪个文件名来存储客户端通过数据连接发送的数据。

所以,你在这里缺少的是:

  1. 解析PASV回复
  2. 打开数据连接并通过它发送数据
  3. 客户端和服务器之间还有其他交换,例如协调传输后数据连接的终止。该协议在RFC 959中描述。

    如果不知道您使用的是什么图书馆,很难说它是如何实施的。

    可以找到一步一步的概述here