FTP C 中从内存上传文件
FTP File upload from Memory in C
我正在用 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?
中的信息
FTP 协议使用两个不同的连接,控制连接和数据连接。根据模式,数据连接可能由服务器(主动)或客户端(被动)发起。
PASV
命令(表示被动传输)的响应包含服务器正在侦听数据连接的 IP 地址和端口。
STOR
命令指示服务器必须使用哪个文件名来存储客户端通过数据连接发送的数据。
所以,你在这里缺少的是:
- 正在解析
PASV
响应
- 打开数据连接并通过它发送数据
客户端和服务器之间还有其他的交流,例如协调传输后数据连接的终止。 RFC 959.
中描述了该协议
不知道你使用的是什么库,很难说它是如何实现的。
可以找到逐步概述 here
我正在用 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?
FTP 协议使用两个不同的连接,控制连接和数据连接。根据模式,数据连接可能由服务器(主动)或客户端(被动)发起。
PASV
命令(表示被动传输)的响应包含服务器正在侦听数据连接的 IP 地址和端口。
STOR
命令指示服务器必须使用哪个文件名来存储客户端通过数据连接发送的数据。
所以,你在这里缺少的是:
- 正在解析
PASV
响应 - 打开数据连接并通过它发送数据
客户端和服务器之间还有其他的交流,例如协调传输后数据连接的终止。 RFC 959.
中描述了该协议不知道你使用的是什么库,很难说它是如何实现的。
可以找到逐步概述 here