1、介绍
thin client,顾名思义即瘦客户端,主要是指运行小型嵌入式设备上的程序,类似于传感网的一个节点,像前面文章讲述的arduino due平台就是一个瘦客户端。由官方提供的SDK来看,它不仅可在arduino上跑,也可在windows、linux环境下运行。所以今天来初步学习一下其在windows环境下运行的范例basic。
2、下载源码并编译
在这里可下载瘦客户端ajtcl源码,目前的版本已达14.02.下载成功后,解压缩,从VS命令行进入源码目录,执行下面命令:
scons TARG=win32 VARIANT=debug MSVC_VERSION=11.0 WS=off > scons.txt
之所以将结果导入到scons.txt文件中,是我想知道编译发生了什么,你可不用这么做,直接在终端输出一大堆信息。编译完成后就会有一些重要文件生成像ajtcl.lib以及test、sample目录下的执行文件
3、稍加修改运行
之所以感觉要修改samples/basci程序,是因为发现函数调用AJ_InfoPrintf在终端没有输出,于是把AJ_InfoPrintf全部换成AJ_Printf,再重新执行scons编译。接下来就执行basic/basic_service.exe和basic/basic_client.exe。不过得先启动另一个后台程序:SampleDaemon.exe,其在alljoyn-14.02.00-thin_client-sdk-windows.zip中,当然也可编译SampleDaemon.cc得到。下面是运行情况:
SampleDaemon:
basic_service:
basic_client:
由上可知client端向service发送Hello和World,被返回了Hello World,随后就退出了,连接中断,服务端重新创建
4、三大部分作用简介
Daemon:作用就是给两个瘦客户端连接用的,相当于preinstalled router.这在官方文档中介绍较详细
basic_service:首先调用AJ_Initialize()初使化,接着打印接口的描述信息,以xml形式,同时注册对象。在无限循环中,创建service端,等待客户的消息。一旦消息到来,判断其id,如果是我们自定义的BASIC_SERVICE_CAT,则执行AppHandleCat操作,连接两个字符串,最后将连接后的字符封装成消息发送。
basic_client:刚开始与service一样,在循环中创建客户端,如果连接成功,则将Hello及World封装成消息发送。接着等待服务端的消息,收到后检测其id,打印收到的字符串