【VxWorks 6.x之FTP服务器】

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

在使用风河的VxWorks的时候我们经常需要通过FTP去访问后台的文件,所以今天介绍一下VxWorks 6.x FTP服务器的使用。


一、FTP是什么?

FTP是用来在两台计算机之间传输文件,是Internet中应用非常广泛的服务之一。它可根据实际需要设置各用户的使用权限,同时还具有跨平台的特性,即在UNIX、Linux和Windows等操作系统中都可实现FTP客户端和服务器,相互之间可跨平台进行文件的传输。

二、使用步骤

使用FTP需要添加的组件
INCLUDE_FTP
INCLUDE_IPFTPS
INCLUDE_IPCOM_AUTH_1

Network Components(default)-> Network Applications(default) -> FTP Components

添加FTP组件
在这里插入图片描述
设置FTP访问路径(本文以/ata0a为例)
在这里插入图片描述
添加服务器用户名及密码
要添加用户首先要添加组件,Network Components(default) -> Network Authentication -> IPCOM authentication configurations->Auth configuration #1

账户名:target,密码:pass(账户密码可根据实际情况设置,本次以账户名target ,密码pass为例)在这里插入图片描述
最多可以添加6组登录账户。在这里插入图片描述

此外,还可以通过在VxWorks系统中shell下调用如下函数去添加FTP用户组。


IP_PUBLIC Ip_err ipcom_auth_useradd
    (
    const char *username,	/*用户名*/   
    const char *password,   /*密码*/
    Ip_uid_t   userid       /*序号 0-5*/
    );    

IP_PUBLIC Ip_err ipcom_auth_useradd_hash
    (
    const char *username,   /*用户名*/
    const char *password,   /*密码*/
    Ip_uid_t   userid,      /*序号 0-5*/
    Ip_bool    hash         /*密码是否为哈希值*/
    );  

最后就可以通过FTP软件去访问VxWorks FTP服务器了。

  • 4
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
以下是一个简单的VxWorks 6.x的VxTas示例: ```c #include <vxWorks.h> #include <taskLib.h> #include <stdio.h> #define TASK_PRIORITY 100 #define TASK_STACK_SIZE 4096 SEM_ID mySem; void myTask(void) { printf("myTask: Waiting for semaphore...\n"); semTake(mySem, WAIT_FOREVER); printf("myTask: Semaphore acquired!\n"); semGive(mySem); printf("myTask: Semaphore released!\n"); } void myOtherTask(void) { printf("myOtherTask: Waiting for semaphore...\n"); semTake(mySem, WAIT_FOREVER); printf("myOtherTask: Semaphore acquired!\n"); semGive(mySem); printf("myOtherTask: Semaphore released!\n"); } void myThirdTask(void) { printf("myThirdTask: Attempting to acquire semaphore...\n"); int status = semTake(mySem, NO_WAIT); if (status == OK) { printf("myThirdTask: Semaphore acquired!\n"); semGive(mySem); printf("myThirdTask: Semaphore released!\n"); } else { printf("myThirdTask: Failed to acquire semaphore.\n"); } } int myApp(void) { mySem = semBCreate(SEM_Q_PRIORITY, SEM_EMPTY); taskSpawn("myTask", TASK_PRIORITY, 0, TASK_STACK_SIZE, (FUNCPTR)myTask, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); taskSpawn("myOtherTask", TASK_PRIORITY, 0, TASK_STACK_SIZE, (FUNCPTR)myOtherTask, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); taskSpawn("myThirdTask", TASK_PRIORITY, 0, TASK_STACK_SIZE, (FUNCPTR)myThirdTask, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); return 0; } ``` 在这个示例中,我们创建了一个名为“mySem”的二元信号量,并在三个任务中使用它。 `myTask` 和 `myOtherTask` 都尝试获取信号量,然后释放它。`myThirdTask` 尝试获取信号量,但是由于在之前的任务中已经获取了信号量并且还没有释放它,所以它将不能够获取信号量。 要编译和运行此示例,您需要使用VxWorks开发环境。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值