阿里云IOT C-SDK 源码分析系列(7): IOT_Linkkit_Close 源码分析

   该函数的功能是 关闭网络连接,并且释放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,创建自定义 事件线程, 子设备添加 等等。
发布了256 篇原创文章 · 获赞 262 · 访问量 63万+

猜你喜欢

转载自blog.csdn.net/u012351051/article/details/104228075