http client demo启用安全连接问题
以下代码都怎么嵌入到程序呢?
SlDateTime_t dt;
struct HTTPCli_SecureParams sparams; // 这两个是函数声明?
/* Set current Date to validate certificate */
dt.sl_tm_day = DATE;
dt.sl_tm_mon = MONTH;
dt.sl_tm_year = YEAR;
dt.sl_tm_hour = HOUR;
dt.sl_tm_min = MINUTE;
dt.sl_tm_sec = SECOND;
sl_DevSet(SL_DEVICE_GENERAL_CONFIGURATION,
SL_DEVICE_GENERAL_CONFIGURATION_DATE_TIME,
sizeof(SlDateTime_t), (unsigned char *)(&dt));
/* Security parameters */
sparams.method.secureMethod = SL_SO_SEC_METHOD_TLSV1_2;
sparams.mask.secureMask = SL_SEC_MASK_TLS_RSA_WITH_AES_256_CBC_SHA;
strncpy(sparams.cafile, SL_SSL_CA_CERT, sizeof(SL_SSL_CA_CERT));
sparams.privkey[0] = 0;
sparams.cert[0] = 0;
sparams.dhkey[0] = 0;
HTTPCli_setSecureParams(&sparams);
struct是结构体,这两个不是函数声明,你查一下,这个结构体初始定义在哪里,然后找一下,推荐你看一下http://blog.csdn.net/snlying/article/details/2887778
看一下c语言课本 typedef 和 struct 的使用就可以了,移植起来非常简单
C 原则是 先定义 再使用
这个是关于时钟的变量的定义,具体怎么移植需要看你程序中用的函数
根据C语言的函数语法规则使用
SlDateTime_t dt; /*是表示记录时间的数据结构,包括年、月、日、时、分、秒以及占用的存储空间大小等!可以在软件中查找SlDateTime_t数据的详细定义!*/
dt.sl_tm_day = DATE;
dt.sl_tm_mon = MONTH;
dt.sl_tm_year = YEAR;
dt.sl_tm_hour = HOUR;
dt.sl_tm_min = MINUTE;
dt.sl_tm_sec = SECOND;
struct HTTPCli_SecureParams sparams; ///是个明显的结构体变量参数定义
谢谢各位
,换成这个传输通道后 SL_SSL_CA_CERT没有定义? 怎么写 谢谢
建议下载官方的完整软件库然后安装在默认路径的目录下。
SlDateTime_t dt;
struct HTTPCli_SecureParams sparams; //
以上两句是定义dt 和sparams分别为SlDateTime_t 、HTTPCli_SecureParams 这样的结构体变量。这两个结构体变量在下面的函数中使用了。前者是时间日期的变量,后者是HTTP的相关参数变量。比如下文程序中 dt.*** 和sparams。****
/* Set current Date to validate certificate */
dt.sl_tm_day = DATE;
dt.sl_tm_mon = MONTH;
dt.sl_tm_year = YEAR;
dt.sl_tm_hour = HOUR;
dt.sl_tm_min = MINUTE;
dt.sl_tm_sec = SECOND;
sl_DevSet(SL_DEVICE_GENERAL_CONFIGURATION,
SL_DEVICE_GENERAL_CONFIGURATION_DATE_TIME,
sizeof(SlDateTime_t), (unsigned char *)(&dt));
/* Security parameters */
sparams.method.secureMethod = SL_SO_SEC_METHOD_TLSV1_2;
sparams.mask.secureMask = SL_SEC_MASK_TLS_RSA_WITH_AES_256_CBC_SHA;
strncpy(sparams.cafile, SL_SSL_CA_CERT, sizeof(SL_SSL_CA_CERT));
sparams.privkey[0] = 0;
sparams.cert[0] = 0;
sparams.dhkey[0] = 0;
HTTPCli_setSecureParams(&sparams);
建议楼主还是下载对应版本的Lwip协议例程。这样看懂怎么接受和发送数据即可。不必细究每个函数体,因为这个协议比较复杂 的
struct 属于结构体类名,相当于是将一整个数据打包,这样方便操作啊,typdef是对数据类型的重命名,楼主百度一下,这些用法都是有的!
第一个应该是typedef struct定义过的类型,从头文件里找,肯定有它的定义,,看名字是时间格式结构体类型。第一句在这儿是一个结构体类型变量定义,放在需要的地方就好啊,,就相当于一个普通的电量定义。
第二个同理只不过没有用typedef定义过,在头文件中。
我使用的是官方的SDK和官方给的安全通道代码,为什么会显示没定义的呢?
建议还是先搞明白关于结构体和函数的定义与声明,函数声明定义了,就可以在你的程序里面调用了
调用子程序要在主程序前面先定义
应该是结构体定义,或者说结构体进行实例化吧。 要嵌入到程序里面的话,前面的可以放在头文件。后面的可以使用一个化函数进行调用。如下,然后你就在你的程序里面调用这个init函数就可以了
SlDateTime_t dt;
struct HTTPCli_SecureParams sparams; // 这两个是函数声明?
/* Set current Date to validate certificate */
void init(void)
{
dt.sl_tm_day = DATE;
dt.sl_tm_mon = MONTH;
dt.sl_tm_year = YEAR;
dt.sl_tm_hour = HOUR;
dt.sl_tm_min = MINUTE;
dt.sl_tm_sec = SECOND;
sl_DevSet(SL_DEVICE_GENERAL_CONFIGURATION,
SL_DEVICE_GENERAL_CONFIGURATION_DATE_TIME,
sizeof(SlDateTime_t), (unsigned char *)(&dt));
/* Security parameters */
sparams.method.secureMethod = SL_SO_SEC_METHOD_TLSV1_2;
sparams.mask.secureMask = SL_SEC_MASK_TLS_RSA_WITH_AES_256_CBC_SHA;
strncpy(sparams.cafile, SL_SSL_CA_CERT, sizeof(SL_SSL_CA_CERT));
sparams.privkey[0] = 0;
sparams.cert[0] = 0;
sparams.dhkey[0] = 0;
HTTPCli_setSecureParams(&sparams);
}
struct是C中的结构体,这里这个函数是包括了“年,月,日,时,分秒,星期”,要想调用,得先声明,定义。可以把这两段加在包含文件中。
先定义,再使用!
c中的使用规则无论变量或函数都是先定义再使用。
一般在.h文件中定义相关构造类型,如结构体。共用体等类型
在.c文件中定义相关的变量或功能函数。
若1.c文件中定义的变量或函数需要在2.c文件中使用的话,那么在1.h中声明相对应的变量和函数,
然后在2.c中使用#include “1.h”即可。