基础(十八):SYSBIOS-NDK(5)
配置HTTP服务
首先要加载网页,这里使用了AddWebFiles函数,NDK是支持EFS文件系统,这个文件系统是存在于RAM中的,而不是板上的NANDFlash中。
在这个函数中,将html文件、图片、cgi程序加入到efs文件系统中,使用的是efs_createfile函数,这些网页文件与图片、程序都要事先进行转换。
转换使用binsrc.exe程序。能将你的文件转成C语言的数据。
HTTP还使用了身份认证,就是你的操作是要输入用户名与密码的。
新建身份认证使用的是CI_ACCT结构体。
Flags确定了访问权限,共有4个标志可以用。这与linux下的用户权限有点像。
另两个成员,也就是用户名与密码了。他们都是字符串。可以通过strcpy函数进行赋值。
使用CfgAddEntry将HTTP的身份认证添加到hCfg中。
- CfgAddEntry(hCfg, CFGTAG_ACCT, CFGITEM_ACCT_REALM, 0, sizeof(CI_ACCT), (UINT8 *)&CA, 0);
配置HTTP的回调函数为ServiceReport。
这里的配置方法与之前的配置方法相同,使用结构体CI_SERVICE_HTTP先赋值,再使用CfgAddEntry添加到hCfg中。这里不现赘述,直接看下配置程序。
以上都是对服务的配置,最后要对接收、发送数据的的Buffer进行设置,主要就是设置Buffer的大小。
- rc = 8192;
- CfgAddEntry(hCfg, CFGTAG_IP, CFGITEM_IP_SOCKTCPTXBUF, CFG_ADDMODE_UNIQUE, sizeof(uint), (UINT8 *)&rc, 0);
- // TCP 接收 buffer 大小(copy 模式)
- rc = 8192;
- CfgAddEntry(hCfg, CFGTAG_IP, CFGITEM_IP_SOCKTCPRXBUF, CFG_ADDMODE_UNIQUE, sizeof(uint), (UINT8 *)&rc, 0);
- // TCP 接收限制大小(non-copy 模式)
- rc = 8192;
- CfgAddEntry(hCfg, CFGTAG_IP, CFGITEM_IP_SOCKTCPRXLIMIT, CFG_ADDMODE_UNIQUE, sizeof(uint), (UINT8 *)&rc, 0);
- // UDP 接收限制大小
- rc = 8192;
- CfgAddEntry(hCfg, CFGTAG_IP, CFGITEM_IP_SOCKUDPRXLIMIT, CFG_ADDMODE_UNIQUE, sizeof(uint), (UINT8 *)&rc, 0);
可以看到也是使用的CfgAddEntry函数,那么最后再来看一下CfgAddEntry函数。
共有七个参数,分别:
CfgAddEntry函数的功能就是将配置信息添加到配置句柄中。而我们在程序中使用的句柄就是在开始时新建的一个句柄。
HANDLE hCfg;
在每一次CfgAddEntry函数的调用时,都是将配置信息添加到了hCfg中。
由于接下来的几篇都是NDK的讲解与使用方法的说明,在NDK的最后一篇将把所有的源码与二进制文件上传。