第 3 章 - Azure RTOS NetX FTP 服务说明

本章按字母顺序提供所有 Azure RTOS NetX FTP 服务说明(下面列出的)。

在以下 API 说明的“返回值”部分中,以粗体显示的值不受定义用于禁用 API 错误检查的 NX_DISABLE_ERROR_CHECKING 影响,而不以粗体显示的值会被完全禁用。

nx_ftp_client_connect

连接到 FTP 服务器

原型

UINT nx_ftp_client_connect(
    NX_FTP_CLIENT *ftp_client_ptr,
    ULONG server_ip,
    CHAR *username,
    CHAR *password,
    ULONG wait_option);

说明

此服务将以前创建的 FTP 客户端实例连接到所提供 IP 地址的 FTP 服务器。

输入参数

  • ftp_client_ptr:指向 FTP 客户端控制块的指针。
  • server_ip:FTP 服务器的 IP 地址。
  • username:用于身份验证的客户端用户名。
  • password:用于身份验证的客户端密码。
  • wait_option:定义服务等待 FTP 客户端连接的时长。 等待选项的定义如下:
    • * 超时值:(0x00000001 到 0xFFFFFFFE)
    • TX_WAIT_FOREVER:(0xFFFFFFFF) 选择 TX_WAIT_FOREVER 会导致调用线程无限期挂起,直到 FTP 服务器响应请求*。 选择数值 (1-0xFFFFFFFE) 可指定等待 FTP 服务器响应时调用线程保持挂起状态的最大计时器刻度数。

返回值

  • NX_SUCCESS:(0x00) FTP 连接成功。
  • NX_TFTP_EXPECTED_22X_CODE:(0xDB) 未获得 22X(正常)响应
  • NX_FTP_EXPECTED_23X_CODE:(0xDC) 未获得 23X(正常)响应
  • NX_FTP_EXPECTED_33X_CODE:(0xDE) 未获得 33X(正常)响应
  • NX_FTP_NOT_DISCONNECTED:(0xD4) 客户端已连接。
  • NX_PTR_ERROR:(0x07) 指针输入输出无效。
  • NX_CALLER_ERROR:(0x11) 此服务的调用方无效。
  • NX_IP_ADDRESS_ERROR:(0x21) IP 地址无效。

获准方式

线程数

示例

/* Connect the FTP Client instance "my_client" to the FTP Server at
    IP address 1.2.3.4. */
status = nx_ftp_client_connect(&my_client, IP_ADDRESS(1,2,3,4), NULL, NULL, 100);

/* If status is NX_SUCCESS an FTP Client instance was successfully  
connected to the FTP Server. */

nx_ftp_client_create

创建 FTP 客户端实例

原型

UINT nx_ftp_client_create(
    NX_FTP_CLIENT *ftp_client_ptr,
    CHAR *ftp_client_name,
    NX_IP *ip_ptr,
    ULONG window_size,
    NX_PACKET_POOL *pool_ptr);

说明

此服务可创建 FTP 客户端实例。

输入参数

  • ftp_client_ptr:指向 FTP 客户端控制块的指针。
  • ftp_client_name:FTP 客户端的名称。
  • ip_ptr:指向以前所创建 IP 实例的指针。
  • window_size:用于此 FTP 客户端 TCP 套接字的播发窗口大小。
  • pool_ptr:指向此 FTP 客户端默认数据包池的指针。 请注意,最小数据包有效负载必须足够大,以便容纳完整路径和文件名或目录名。

返回值

  • NX_SUCCESS:(0x00) FTP 客户端创建成功。
  • NX_PTR_ERROR:(0x16) FTP、IP 指针或数据包池指针无效。 密码指针。

获准方式

初始化和线程

示例

/* Create the FTP Client instance "my_client." */
status = nx_ftp_client_create(&my_client, "My Client", &client_ip,
                                2000, &client_pool);

/* If status is NX_SUCCESS the FTP Client instance was successfully  
created. */

nx_ftp_client_delete

删除 FTP 客户端实例

原型

UINT nx_ftp_client_delete(NX_FTP_CLIENT *ftp_client_ptr);

说明

此服务可删除 FTP 客户端实例。

输入参数

  • ftp_client_ptr:指向 FTP 客户端控制块的指针。

返回值

  • NX_SUCCESS:(0x00) FTP 客户端删除成功。
  • NX_FTP_NOT_DISCONNECTED:(0xD4) FTP 客户端删除错误。
  • NX_PTR_ERROR:(0x16) FTP 指针无效。
  • NX_CALLER_ERROR:(0x11) 此服务的调用方无效。

允许来自

线程数

示例

/* Delete the FTP Client instance "my_client." */
status = nx_ftp_client_delete(&my_client);

/* If status is NX_SUCCESS the FTP Client instance was successfully  
    deleted. */

nx_ftp_client_directory_create

在 FTP 服务器上创建目录

原型

UINT nx_ftp_client_directory_create(
    NX_FTP_CLIENT *ftp_client_ptr,
    CHAR *directory_name,
    ULONG wait_option);

说明

此服务可在连接到指定 FTP 客户端的 FTP 服务器上创建指定目录。

输入参数

  • ftp_client_ptr:指向 FTP 客户端控制块的指针。
  • directory_name:要创建目录的名称。
  • wait_option:定义服务等待 FTP 目录创建的时长。 等待选项定义如下:
    • 超时值*:(0x00000001 到 0xFFFFFFFE)
    • TX_WAIT_FOREVER:(0xFFFFFFFF) 选择 TX_WAIT_FOREVER 会导致调用线程无限期挂起,直到 FTP 服务器响应请求。 选择数值 (1-0xFFFFFFFE) 可指定等待 FTP 服务器响应时调用线程保持挂起状态的最大计时器刻度数。

返回值

  • NX_SUCCESS:(0x00) FTP 目录创建成功。
  • NX_FTP_NOT_CONNECTED:(0xD3) FTP 客户端未连接。
  • NX_FTP_EXPECTED_2XX_CODE:(0xDA) 未获得 2XX(正常)响应
  • NX_PTR_ERROR:(0x07) FTP 指针无效。
  • NX_CALLER_ERROR:(0x11) 此服务的调用方无效。

允许来自

线程数

示例

/* Create the directory "my_dir" on the FTP Server connected to
    the FTP Client instance "my_client." */
status = nx_ftp_client_directory_create(&my_client, "my_dir", 200);

/* If status is NX_SUCCESS the directory "my_dir" was successfully  
    created. */

nx_ftp_client_directory_default_set

在 FTP 服务器上设置默认目录

原型

UINT nx_ftp_client_directory_default_set(
    NX_FTP_CLIENT *ftp_client_ptr,
    CHAR *directory_path,
    ULONG wait_option);

说明

此服务可在连接到指定 FTP 客户端的 FTP 服务器上设置默认目录。 此默认目录仅适用于此客户端的连接。

输入参数

  • ftp_client_ptr:指向 FTP 客户端控制块的指针。
  • directory_path:要设置目录路径的名称。
  • wait_option:定义服务等待 FTP 默认目录设置的时长。 等待选项定义如下:
    • 超时值*:(0x00000001 到 0xFFFFFFFE)
    • TX_WAIT_FOREVER*:(0xFFFFFFFF) 选择 TX_WAIT_FOREVER 会导致调用线程无限期挂起,直到 FTP 服务器响应请求。 选择数值 (1-0xFFFFFFFE) 可指定等待 FTP 服务器响应时调用线程保持挂起状态的最大计时器刻度数。

返回值

  • NX_SUCCESS:(0x00) FTP 默认设置成功。
  • NX_FTP_NOT_CONNECTED:(0xD3) FTP 客户端未连接。
  • NX_FTP_EXPECTED_2XX_CODE:(0xDA) 未获得 2XX(正常)响应
  • NX_PTR_ERROR:(0x07) FTP 指针无效。
  • NX_CALLER_ERROR:(0x11) 此服务的调用方无效。

允许来自

线程数

示例

/* Set the default directory to "my_dir" on the FTP Server connected to
    the FTP Client instance "my_client." */
status = nx_ftp_client_directory_default_set(&my_client, "my_dir", 200);

/* If status is NX_SUCCESS the directory "my_dir" is the default directory. */

nx_ftp_client_directory_delete

在 FTP 服务器上删除目录

原型

UINT nx_ftp_client_directory_delete(
    NX_FTP_CLIENT *ftp_client_ptr,
    CHAR *directory_name,
    ULONG wait_option);

说明

此服务可在连接到指定 FTP 客户端的 FTP 服务器上删除指定目录。

输入参数

  • ftp_client_ptr:指向 FTP 客户端控制块的指针。
  • directory_name:要删除目录的名称。
  • wait_option:定义服务等待 FTP 目录删除的时长。 等待选项定义如下:
    • timeout value:(0x00000001 至 0xFFFFFFFE)
    • TX_WAIT_FOREVER:(0xFFFFFFFF) 选择 TX_WAIT_FOREVER 会导致调用线程无限期挂起,直到 FTP 服务器响应请求。 选择数值 (1-0xFFFFFFFE) 可指定等待 FTP 服务器响应时调用线程保持挂起状态的最大计时器刻度数。

返回值

  • NX_SUCCESS:(0x00) FTP 目录删除成功。
  • NX_FTP_NOT_CONNECTED:(0xD3) FTP 客户端未连接。
  • NX_FTP_EXPECTED_2XX_CODE:(0xDA) 未获得 2XX(正常)响应
  • NX_PTR_ERROR:(0x07) FTP 指针无效。
  • NX_CALLER_ERROR:(0x11) 此服务的调用方无效。

允许来自

线程数

示例

/* Delete directory "my_dir" on the FTP Server connected to
    the FTP Client instance "my_client." */
status = nx_ftp_client_directory_delete(&my_client, "my_dir", 200);

/* If status is NX_SUCCESS the directory "my_dir" is deleted. */

nx_ftp_client_directory_listing_get

从 FTP 服务器获取目录列表

原型

UINT nx_ftp_client_directory_listing_get(
    NX_FTP_CLIENT *ftp_client_ptr,
    CHAR *directory_name,
    NX_PACKET **packet_ptr,
    ULONG wait_option);

说明

此服务可在连接到指定 FTP 客户端的 FTP 服务器上获取指定目录的内容。 提供的数据包指针将包含一个或多个目录项。 各目录项用 <cr/lf\combination 进行分隔。 应当调用 nx_ftp_client_directory_listing_continue 来完成目录获取操作。

输入参数

  • ftp_client_ptr:指向 FTP 客户端控制块的指针。
  • directory_name:要获取其内容的目录的名称。
  • packet_ptr:指向目标数据包指针的指针。 如果成功,数据包有效负载将包含一个或多个目录项。
  • wait_option:定义服务等待 FTP 目录列出的时长。 等待选项定义如下:
    • 超时值*:(0x00000001 到 0xFFFFFFFE)
    • TX_WAIT_FOREVER*:(0xFFFFFFFF) 选择 TX_WAIT_FOREVER 会导致调用线程无限期挂起,直到 FTP 服务器响应请求。 选择数值 (1-0xFFFFFFFE) 可指定等待 FTP 服务器响应时调用线程保持挂起状态的最大计时器刻度数。

返回值

  • NX_SUCCESS:(0x00) FTP 目录列出成功。
  • NX_FTP_NOT_CONNECTED:(0xD3) FTP 客户端未连接。
  • NX_NOT_ENABLED:(0x14) 服务 (IPv6) 未启用
  • NX_FTP_EXPECTED_1XX_CODE:(0xD9) 未获得 1XX(正常)响应
  • NX_FTP_EXPECTED_2XX_CODE:(0xDA) 未获得 2XX(正常)响应
  • NX_PTR_ERROR:(0x07) FTP 指针无效。
  • NX_CALLER_ERROR:(0x11) 此服务的调用方无效。

允许来自

线程数

示例

/* Get the contents of directory "my_dir" on the FTP Server connected to
    the FTP Client instance "my_client." */
status = nx_ftp_client_directory_listing_get(&my_client, "my_dir", &my_packet,
                                            200);

/* If status is NX_SUCCESS, one or more entries of the directory "my_dir"
    can be found in "my_packet". */

nx_ftp_client_directory_listing_continue

从 FTP 服务器继续获取目录列表

原型

UINT nx_ftp_client_directory_listing_continue(NX_FTP_CLIENT
                    *ftp_client_ptr, NX_PACKET **packet_ptr,
                    ULONG wait_option);

说明

此服务可在连接到指定 FTP 客户端的 FTP 服务器上继续获取指定目录的内容。 此服务应紧跟在 nx_ftp_client_directory_listing_get 调用之后。 如果成功,提供的数据包指针将包含一个或多个目录项。 用户应在收到 NX_FTP_END_OF_LISTING 状态之前,调用此例程。

输入参数

  • ftp_client_ptr:指向 FTP 客户端控制块的指针。
  • packet_ptr:指向目标数据包指针的指针。 如果成功,数据包有效负载将包含一个或多个用 <cr/lf> 分隔的目录项。
  • wait_option:定义服务等待 FTP 目录列出的时长。 等待选项定义如下:
    • 超时值*:(0x00000001 到 0xFFFFFFFE)
    • TX_WAIT_FOREVER*:(0xFFFFFFFF) 选择 TX_WAIT_FOREVER 会导致调用线程无限期挂起,直到 FTP 服务器响应请求。 选择数值 (1-0xFFFFFFFE) 可指定等待 FTP 服务器响应时调用线程保持挂起状态的最大计时器刻度数。

返回值

  • NX_SUCCESS:(0x00) FTP 目录列出成功。
  • NX_FTP_END_OF_LISTING:(0xD8) 此目录中没有更多条目。
  • NX_FTP_NOT_CONNECTED:(0xD3) FTP 客户端未连接。
  • NX_FTP_EXPECTED_2XX_CODE:(0xDA) 未获得 2XX(正常)响应
  • NX_PTR_ERROR:(0x07) FTP 指针无效。
  • NX_CALLER_ERROR:(0x11) 此服务的调用方无效。

允许来自

线程数

示例

/* Continue getting the contents of directory "my_dir" on the FTP Server
    connected to the FTP Client instance "my_client." */
status = nx_ftp_client_directory_listing_continue(&my_client, &my_packet,
                                                200);

/* If status is NX_SUCCESS, one or more entries of the directory "my_dir"
    can be found in "my_packet". */

nx_ftp_client_disconnect

断开与 FTP 服务器的连接

原型

UINT nx_ftp_client_disconnect(
    NX_FTP_CLIENT *ftp_client_ptr,
    ULONG wait_option);

说明

此服务可断开以前建立的 FTP 服务器与指定 FTP 客户端的连接。

输入参数

  • ftp_client_ptr:指向 FTP 客户端控制块的指针。
  • wait_option:定义服务等待 FTP 客户端断开连接的时长。 等待选项定义如下:
    • 超时值*:(0x00000001 到 0xFFFFFFFE)
    • TX_WAIT_FOREVER*:(0xFFFFFFFF) 选择 TX_WAIT_FOREVER 会导致调用线程无限期挂起,直到 FTP 服务器响应请求。 选择数值 (1-0xFFFFFFFE) 可指定等待 FTP 服务器响应时调用线程保持挂起状态的最大计时器刻度数。

返回值

  • NX_SUCCESS:(0x00) FTP 断开连接成功。
  • NX_FTP_NOT_CONNECTED:(0xD3) FTP 客户端未连接。
  • NX_FTP_EXPECTED_2XX_CODE:(0xDA) 未获得 2XX(正常)响应
  • NX_PTR_ERROR:(0x07) FTP 指针无效。
  • NX_CALLER_ERROR:(0x11) 此服务的调用方无效。

允许来自

线程数

示例

/* Disconnect "my_client" from the FTP Server. */
status = nx_ftp_client_disconnect(&my_client, 200);

/* If status is NX_SUCCESS, "my_client" has been disconnected. */

nx_ftp_client_file_close

关闭客户端文件

原型

UINT nx_ftp_client_file_close(
    NX_FTP_CLIENT *ftp_client_ptr,
    ULONG wait_option);

说明

此服务可关闭以前在 FTP 服务器上打开的文件。

输入参数

  • ftp_client_ptr:指向 FTP 客户端控制块的指针。
  • wait_option:定义服务等待 FTP 客户端关闭文件的时长。 等待选项定义如下:
    • 超时值*:(0x00000001 到 0xFFFFFFFE)
    • TX_WAIT_FOREVER:(0xFFFFFFFF) 选择 TX_WAIT_FOREVER 会导致调用线程无限期挂起,直到 FTP 服务器响应请求。 选择数值 (1-0xFFFFFFFE) 可指定等待 FTP 服务器响应时调用线程保持挂起状态的最大计时器刻度数。

返回值

  • NX_SUCCESS:(0x00) FTP 文件关闭成功。
  • NX_FTP_NOT_CONNECTED:(0xD3) FTP 客户端未连接。
  • NX_FTP_NOT_OPEN (0xD5) :未打开文件;无法关闭
  • NX_FTP_EXPECTED_2XX_CODE:(0xDA) 未获得 2XX(正常)响应
  • NX_PTR_ERROR:(0x07) FTP 指针无效。
  • NX_CALLER_ERROR:(0x11) 此服务的调用方无效。

允许来自

线程数

示例

/* Close previously opened file of client "my_client" on the FTP Server. */
status = nx_ftp_client_file_close(&my_client, 200);

/* If status is NX_SUCCESS, the file opened previously in the "my_client" FTP
    connection has been closed. */

nx_ftp_client_file_delete

删除 FTP 服务器上的文件

原型

UINT nx_ftp_client_file_delete(
    NX_FTP_CLIENT *ftp_client_ptr,
    CHAR *file_name,
    ULONG wait_option);

说明

此服务可删除 FTP 服务器上的指定文件。

输入参数

  • ftp_client_ptr:指向 FTP 客户端控制块的指针。
  • file_name:要删除文件的名称。
  • wait_option:定义服务等待 FTP 客户端删除文件的时长。 等待选项定义如下:
    • timeout value:(0x00000001 至 0xFFFFFFFE)
    • TX_WAIT_FOREVER:(0xFFFFFFFF) 选择 TX_WAIT_FOREVER 会导致调用线程无限期挂起,直到 FTP 服务器响应请求。 选择数值 (1-0xFFFFFFFE) 可指定等待 FTP 服务器响应时调用线程保持挂起状态的最大计时器刻度数。

返回值

  • NX_SUCCESS:(0x00) FTP 文件删除成功。
  • NX_FTP_NOT_CONNECTED:(0xD3) FTP 客户端未连接。
  • NX_FTP_EXPECTED_2XX_CODE:(0xDA) 未获得 2XX(正常)响应
  • NX_PTR_ERROR:(0x07) FTP 指针无效。
  • NX_CALLER_ERROR:(0x11) 此服务的调用方无效。

允许来自

线程数

示例

/* Delete the file "my_file.txt" on the FTP Server using the previously
    connected client "my_client." */
status = nx_ftp_client_file_delete(&my_client, "my_file.txt", 200);

/* If status is NX_SUCCESS, the file "my_file.txt" on the FTP Server is
    deleted. */

nx_ftp_client_file_open

打开 FTP 服务器上的文件

原型

UINT nx_ftp_client_file_open(
    NX_FTP_CLIENT *ftp_client_ptr,
    CHAR *file_name,
    UINT open_type,
    ULONG wait_option);

说明

此服务可在以前连接到指定客户端实例的 FTP 服务器上打开指定文件,以供读取或写入。

输入参数

  • ftp_client_ptr:指向 FTP 客户端控制块的指针。
  • file_name:要打开文件的名称。
  • open_type:NX_FTP_OPEN_FOR_READ 或 NX_FTP_OPEN_FOR_WRITE。
  • wait_option:定义服务等待 FTP 客户端打开文件的时长。 等待选项定义如下:
    • timeout value:(0x00000001 至 0xFFFFFFFE)
    • TX_WAIT_FOREVER:(0xFFFFFFFF) 选择 TX_WAIT_FOREVER 会导致调用线程无限期挂起,直到 FTP 服务器响应请求。 选择数值 (1-0xFFFFFFFE) 可指定等待 FTP 服务器响应时调用线程保持挂起状态的最大计时器刻度数。

返回值

  • NX_SUCCESS:(0x00) FTP 文件打开成功。
  • NX_OPTION_ERROR:(0x0A) 打开类型无效。
  • NX_FTP_NOT_CONNECTED:(0xD3) FTP 客户端未连接。
  • NX_FTP_NOT_CLOSED:(0xD6) FTP 客户端已打开。
  • NX_NO_FREE_PORTS:(0x45) 无可分配 TCP 端口
  • NX_PTR_ERROR:(0x07) FTP 指针无效。
  • NX_CALLER_ERROR:(0x11) 此服务的调用方无效。

允许来自

线程数

示例

/* Open the file "my_file.txt" for reading on the FTP Server using the previously
    connected client "my_client." */
status = nx_ftp_client_file_open(&my_client, "my_file.txt", NX_FTP_OPEN_FOR_READ,
                                200);

/* If status is NX_SUCCESS, the file "my_file.txt" on the FTP Server is
    open for reading. */

nx_ftp_client_file_read

从文件中读取

原型

UINT nx_ftp_client_file_read(
    NX_FTP_CLIENT *ftp_client_ptr,
    NX_PACKET **packet_ptr,
    ULONG wait_option);

说明

此服务可从以前打开的文件中读取数据包。 在收到 NX_FTP_END_OF_FILE 状态之前,应重复调用此服务。

请注意,调用方不会为此服务分配数据包。  只需要提供指向数据包指针的指针。 此服务将更新该数据包指针,以指向从套接字接收队列中检索到的数据包。  如果返回“成功”状态,则表示有可用数据包,并且调用方负责在使用后释放数据包。

如果返回非零状态(错误状态或 NX_FTP_END_OF_FILE),调用方无法释放数据包。 否则,在数据包指针为 NULL 时,会生成错误。

输入参数

  • ftp_client_ptr:指向 FTP 客户端控制块的指针。
  • packet_ptr:从队列中检索到的数据包指针所指向目标的指针。 如果成功,数据包数据会包含部分或全部文件。
  • wait_option:定义服务等待 FTP 客户端读取文件的时长。 等待选项定义如下:
    • timeout value:(0x00000001 至 0xFFFFFFFE)
    • TX_WAIT_FOREVER:(0xFFFFFFFF) 选择 TX_WAIT_FOREVER 会导致调用线程无限期挂起,直到 FTP 服务器响应请求。 选择数值 (1-0xFFFFFFFE) 可指定等待 FTP 服务器响应时调用线程保持挂起状态的最大计时器刻度数。

返回值

  • NX_SUCCESS:(0x00) FTP 文件读取成功。
  • NX_FTP_NOT_OPEN:(0xD5) FTP 客户端未打开。
  • NX_FTP_END_OF_FILE:(0xD7) 文件结尾条件。
  • NX_PTR_ERROR:(0x07) FTP 指针无效。
  • NX_CALLER_ERROR:(0x11) 此服务的调用方无效。

允许来自

线程数

示例

       NX_PACKET   *my_packet;

/* Read a packet of data from the file "my_file.txt" that was previously opened
    from the client "my_client." */

status = nx_ftp_client_file_read(&my_client, &my_packet, 200);

        /* Check status.  */
        if (status != NX_SUCCESS)
        {
            error_counter++;
        }
        else
        {
            /* Release packet when done with it. */
            nx_packet_release(my_packet);
        }

/* If status is NX_SUCCESS, the packet pointer, "my_packet" points to the packet
that contains the next bytes from the file. If the file is completely
downloaded, an NX_FTP_END_OF_FILE status is returned (no packet retrieved). */

nx_ftp_client_file_rename

重命名 FTP 服务器上的文件

原型

UINT nx_ftp_client_file_rename(
    NX_FTP_CLIENT *ftp_ptr,
    CHAR *filename,
    CHAR *new_filename,
    ULONG wait_option);

说明

此服务可重命名 FTP 服务器上的文件。

输入参数

  • ftp_client_ptr:指向 FTP 客户端控制块的指针。
  • filename:文件的当前名称。
  • new_filename:文件的新名称。
  • wait_option:定义服务等待 FTP 客户端重命名文件的时长。 等待选项定义如下:
    • timeout value:(0x00000001 至 0xFFFFFFFE)
    • TX_WAIT_FOREVER:(0xFFFFFFFF) 选择 TX_WAIT_FOREVER 会导致调用线程无限期挂起,直到 FTP 服务器响应请求。 选择数值 (1-0xFFFFFFFE) 可指定等待 FTP 服务器响应时调用线程保持挂起状态的最大计时器刻度数。

返回值

  • NX_SUCCESS:(0x00) FTP 文件重命名成功。
  • NX_FTP_NOT_CONNECTED:(0xD3) FTP 客户端未连接。
  • NX_FTP_EXPECTED_3XX_CODE:(0XDD) 未获得 3XX(正常)响应
  • NX_FTP_EXPECTED_2XX_CODE:(0xDA) 未获得 2XX(正常)响应
  • NX_PTR_ERROR:(0x07) FTP 指针无效。
  • NX_CALLER_ERROR:(0x11) 此服务的调用方无效。

允许来自

线程数

示例

/* Rename file "my_file.txt" to "new_file.txt" on the previously connected
    Client instance "my_client." */

status = nx_ftp_client_file_rename(&my_client, "my_file.txt", "new_file.txt",
                                    200);

/* If status is NX_SUCCESS, the file has been renamed. */

nx_ftp_client_file_write

写入到文件

原型

UINT nx_ftp_client_file_write(
    NX_FTP_CLIENT *ftp_client_ptr,
    NX_PACKET *packet_ptr,
    ULONG wait_option);

说明

此服务可将数据包的数据写入 FTP 服务器上以前打开的文件。

输入参数

  • ftp_client_ptr:指向 FTP 客户端控制块的指针。
  • packet_ptr:包含要写入数据的数据包指针。
  • wait_option:定义服务等待 FTP 客户端写入文件的时长。 等待选项定义如下:
    • timeout value:(0x00000001 至 0xFFFFFFFE)
    • TX_WAIT_FOREVER:(0xFFFFFFFF) 选择 TX_WAIT_FOREVER 会导致调用线程无限期挂起,直到 FTP 服务器响应请求。 选择数值 (1-0xFFFFFFFE) 可指定等待 FTP 服务器响应时调用线程保持挂起状态的最大计时器刻度数。

返回值

  • NX_SUCCESS:(0x00) FTP 文件写入成功。
  • NX_FTP_NOT_OPEN:(0xD5) FTP 客户端未打开。
  • NX_PTR_ERROR:(0x07) FTP 指针无效。
  • NX_CALLER_ERROR:(0x11) 此服务的调用方无效。

允许来自

线程数

示例

/* Write the data contained in "my_packet" to the previously opened file
    "my_file.txt". */

status = nx_ftp_client_file_write(&my_client, my_packet, 200);

/* If status is NX_SUCCESS, the file has been written to. */

nx_ftp_client_passive_mode_set

启用或禁用被动传输模式

原型

UINT nx_ftp_client_passive_mode_set(
    NX_FTP_CLIENT *ftp_client_ptr,
    UINT passive_mode_enabled);

说明

如果在以前创建的 FTP 客户端实例中 passive_mode_enabled 输入设置为 NX_TRUE,则此服务会启用被动传输模式,以使读取或写入文件(RETR、STOR)或下载目录列表 (NLST) 的后续调用操作均在传输模式下完成。 若要禁用被动传输模式并返回主动传输模式默认行为,请在调用此函数时,将 passive_mode_enabled 输入设置为 NX_FALSE。

输入参数

  • ftp_client_ptr:指向 FTP 客户端控制块的指针。
  • passive_mode_enabled:
    • 如果设置为 NX_TRUE,则启用被动模式。
    • 如果设置为 NX_FALSE,则会禁用被动模式。

返回值

  • NX_SUCCESS:(0x00) 被动模式设置成功。
  • NX_PTR_ERROR:(0x16) FTP 指针无效。
  • NX_INVALID_PARAMETERS:(0x4D) 非指针输入无效

获准方式

线程数

示例

/* Enable the FTP Client to exchange data with the FTP server in passive mode. */

status = nx_ftp_client_passive_mode_set(&my_client, NX_TRUE);

/* If status is NX_SUCCESS, the FTP client is in passive transfer mode. */

nx_ftp_server_create

创建 FTP 服务器

原型

UINT nx_ftp_server_create(
    NX_FTP_SERVER *ftp_server_ptr,
    CHAR *ftp_server_name,
    NX_IP *ip_ptr,
    FX_MEDIA *media_ptr,
    VOID *stack_ptr,
    ULONG stack_size,
    NX_PACKET_POOL *pool_ptr,
    UINT (*ftp_login)(struct NX_FTP_SERVER_STRUCT
                      *ftp_server_ptr, 
                      ULONG client_ip_address,
                      UINT client_port,
                      CHAR *name,
                      CHAR *password,
                      CHAR *extra_info),
    UINT (*ftp_logout)(struct NX_FTP_SERVER_STRUCT
                       *ftp_server_ptr, ULONG client_ip_address,
                       UINT client_port,
                       CHAR *name, CHAR *password,
                       CHAR *extra_info));

说明

此服务可在以前创建的指定 NetX IP 实例中创建 FTP 服务器实例。 请注意,FTP 服务器需要先通过调用 nx_ftp_server_start 启动,然后才能开始运行。

输入参数

  • ftp_server_ptr:指向 FTP 服务器控制块的指针。
  • ftp_server_name:FTP 服务器的名称。
  • ip_ptr:指向关联 NetX IP 实例的指针。 请注意,IP 实例只能有一个 FTP 服务器。
  • media_ptr:指向关联 FileX 媒体实例的指针。
  • stack_ptr:指向内部 FTP 服务器线程堆栈区域内存的指针。
  • stack_size:stack_ptr 所指定堆栈区域的大小。
  • pool_ptr:指向默认 NetX 数据包池的指针。 请注意,池中数据包的有效负载必须足够大,以便容纳最长文件名/路径。
  • ftp_login:指向应用程序登录函数的函数指针。 此函数用于获取请求连接的客户端的用户名和密码。 如果此数据有效,应用程序登录函数应返回 NX_SUCCESS。
  • ftp_logout:指向应用程序注销函数的函数指针。 此函数用于获取请求断开连接的客户端的用户名和密码。 如果此数据有效,应用程序登录函数应返回 NX_SUCCESS。

返回值

  • NX_SUCCESS:(0x00) FTP 服务器创建成功。
  • NX_PTR_ERROR:(0x16) FTP 指针无效。

获准方式

初始化和线程

示例

/* Create the FTP Server "my_server" on the IP instance "ip_0" using the
    "ram_disk" media. */

status = nx_ftp_server_create(&my_server, "My Server Name", &ip_0, &ram_disk,
                                stack_ptr, stack_size, &pool_0,
                                my_login, my_logout);

/* If status is NX_SUCCESS, the FTP Server has been created. */

nx_ftp_server_delete

删除 FTP 服务器

原型

UINT nx_ftp_server_delete(NX_FTP_SERVER *ftp_server_ptr);

说明

此服务可删除以前创建的 FTP 服务器实例。

输入参数

  • ftp_server_ptr:指向 FTP 服务器控制块的指针。

返回值

  • NX_SUCCESS:(0x00) FTP 服务器删除成功。
  • NX_PTR_ERROR:(0x16) FTP 指针无效。
  • NX_CALLER_ERROR:(0x11) 此服务的调用方无效。

允许来自

线程数

示例

/* Delete the FTP Server "my_server". */

status = nx_ftp_server_delete(&my_server);

/* If status is NX_SUCCESS, the FTP Server has been deleted. */

nx_ftp_server_start

启动 FTP 服务器

原型

UINT nx_ftp_server_start(NX_FTP_SERVER *ftp_server_ptr);

说明

此服务可启动以前创建的 FTP 服务器实例。

输入参数

  • ftp_server_ptr:指向 FTP 服务器控制块的指针。

返回值

  • NX_SUCCESS:(0x00) FTP 服务器启动成功。
  • NX_PTR_ERROR:(0x16) FTP 指针无效。

获准方式

初始化和线程

示例

/* Start the FTP Server "my_server". */

status = nx_ftp_server_start(&my_server);

/* If status is NX_SUCCESS, the FTP Server has been started. */

nx_ftp_server_stop

停止 FTP 服务器

原型

UINT nx_ftp_server_stop(NX_FTP_SERVER *ftp_server_ptr);

说明

此服务可停止以前创建和启动的 FTP 服务器实例。

输入参数

  • ftp_server_ptr:指向 FTP 服务器控制块的指针。

返回值

  • NX_SUCCESS:(0x00) FTP 服务器停止成功。
  • NX_PTR_ERROR:(0x16) FTP 指针无效。
  • NX_CALLER_ERROR:(0x11) 此服务的调用方无效。

允许来自

线程数

示例

/* Stop the FTP Server "my_server". */

status = nx_ftp_server_stop(&my_server);

/* If status is NX_SUCCESS, the FTP Server has been stopped. */