阿里云IOT C-SDK 源码分析系列(7): IOT_Linkkit_Close 源码分析
该函数的功能是 关闭网络连接,并且释放Linkkit 的所有的占用资源。原型如下:IOT_Linkkit_Close原型int IOT_Linkkit_Close(int devid);接口说明若设备ID为主设备, 则关闭网络连接并释放Linkkit所有占用资源参数说明参数数据类型方向说明devidint输入设备ID返回值说明值说...
·
该函数的功能是 关闭网络连接,并且释放Linkkit 的所有的占用资源。原型如下:
原型
int IOT_Linkkit_Close(int devid);
接口说明
若设备ID为主设备, 则关闭网络连接并释放Linkkit所有占用资源
参数说明
参数 数据类型 方向 说明
devid int 输入 设备ID
返回值说明
值 说明
0 成功
< 0 失败
先看下该接口的代码 逻辑:

从上面的代码也可以看出,IOT_Linkkit_Close 是与 IOT_Linkkit_Open 相对应的,Close直接会断开 TCP连接,而且会 停止 SDK 自身的 守护、 功能调度线程,释放掉全部的资源,也就是 彻底关闭 了 Linkkit。
注意:通过前面的分析可知,
- ITE_DISCONNECTED 事件是 服务器断开 事件,在这个事件中,TCP是被动中止断开的,因为有 守护线程, 会自动的发起TCP 重新连接,连接成功后,也会 自动的 进行 设备 重新登录,可以说是都是自动的, 用户的程序不需要再重复做这些复杂的专业工作,仅仅需要在 断开时,不再与云服务器进行 通信交互即可。
- IOT_Linkkit_Close 则是彻底的关闭 Linkkit,如果我们想要重新启动Linkkit,我们就需要 从头来过,所有的都要从头来过,包括主设备 xxxx_open, xxxx_connect,创建自定义 事件线程, 子设备添加 等等。
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐



所有评论(0)