精华内容
下载资源
问答
  • 小米(绿米)网关局域网通信协议,描述了第三方如何与小米网关对接,控制小米的设备
  • 绿米网关局域网通讯协议V108.doc绿米网关局域网通讯协议V1.0.8网关设备发现(设备发现不加密)设备发现用来在局域网中发现网关,使用组播(ip: 0, peer_port: 4321)。所有网关收到Whois命令都要应答、回复自己的IP 组播...

    绿米网关局域网通讯协议V108.doc

    绿米网关局域网通讯协议V1.0.8

    网关设备发现(设备发现不加密)

    设备发现用来在局域网中发现网关,使用组播(ip: 0, peer_port: 4321)。

    所有网关收到Whois命令都要应答、回复自己的IP 组播方式方式key加密方式的

    查询子设备id列表

    命令以单播方式发送网关udp 9898端口,网关以单播方式回复网关返回子设备id)网关did4.子设备状态上报 以组播方式发送0, port: 9898)。网关->PC:{"cmd":"report","model":"magnet","sid":,"short_id":4343,"data":"{\"status\":\"open\"}" }

    5. 读设备

    命令以单播方式发送网关udp 9898端口。的全部属性信息单播方式read_ack","model":"ctrl_neutral2","sid":"158d0000123456","short_id":4343,"data":"{\"channel_0\":\"on\",\"channel_1\":\"off\"}"}

    读取网关的状态:

    {"cmd":"read","sid":"1022780"}

    网关以单播方式read_ack","model":"gateway","sid":"1022780","short_id":0,"data":"{\"rgb\":0,\"illumination\":350,\"proto_version\":\"1.0.6\"}"}, 其中,rgb是网关夜灯的颜色值,illumination是光照度,proto_version是网关所用的本通信协议的版本号。

    6. 写设备

    命令以单播方式发送网关udp 9898端口。设备ctrl_neutral1","sid":"158d0000123456","short_id":4343,"data":"{\"channel_0\":\"on\",\"key\":\"3EB43E37C20AFF4C5872CC0D04D81314\"}" }

    网关以单播方式write_ack","model":"ctrl_neutral2","sid":"158d0000123456","short_id":4343,"data":"{\"channel_0\":\"on\",\"channel_1\":\"off\"}"} ,该write_ack只是代表网关收到了write命令,data的当前的最新状态,不是write之后的最终设备状态。设备状态靠report进行上报。配置字符长度的“0987654321qwerty“, ”token”为”1234567890abcdef”,加密后密文是:0x3E,0xB4,0x3E,0x37,0xC2,0x0A,0xFF,0x4C,0x58,0x72,0xCC,0x0D,0x04,0xD8,0x13,0x14。那么,”key”为:”3EB43E37C20AFF4C5872CC0D04D81314”。

    7.网关心跳网关心跳组播方式发送0, port: 9898)。8.子设备心跳

    子设备心跳以组播方式发送0, port: 9898),格式:

    {"cmd":"heartbeat","model":"magnet","sid":"158d000065a271","short_id":25719,"data":"{\"status\":\"open\"}"}。子设备通过心跳告诉PC:子设备正常工作(心跳上报频率,一般睡眠设备是一个钟头一次,插电设备是每10分钟一次)。子设备心跳中可能包含子设备的状态。注意这个状态值得处理要看具体的使用场景。例如:开窗关空调场景时

    可以使用这个心跳(有可能正常的report状态报文丢失,心跳报文可以补救)。例如:关窗开空调场景这个就不能使用心跳。有可能人走了,走时把空调关了。 心跳报文又让空调打开会浪费电。总之,心跳报文的使用根据场景需要用户自己决定是否用心跳做触发。

    添加子设备,删除子设备,修改子设备的名字等操作目前不提供,如果开发者需要可以提供。

    设备上报和控制报文格式

    Json报文格式:

    {

    "cmd" : "write", //命令类型

    "model" : "ctrl_neutral1", //设备类型

    "sid" : "112316", //设备的id

    "short_id" : 4343, //zigbee设备的短id

    "data" : "{\" channel_0\":\"on\"}" //设备状态等信息,再次解开

    展开全文
  • 网关局域网通信协议V2.0

    千次阅读 2018-12-21 13:41:00
    概述 绿米智能网关支持局域网通讯功能,通过开放局域网通信API,允许开发者通过局域网通信对网关下各ZigBee子设备(传感器、控制器等)进行管理。 相比HTTP通讯,局域网通讯的...

    http://docs.opencloud.aqara.cn/development/gateway-LAN-communication/

    https://github.com/aqara/opencloud-docs/

    概述

    绿米智能网关支持局域网通讯功能,通过开放局域网通信API,允许开发者通过局域网通信对网关下各ZigBee子设备(传感器、控制器等)进行管理。

    相比HTTP通讯,局域网通讯的速度更快,控制延迟更低。但是,局域网对接方式的开发成本更高,需要一台支持开发的第三方网关,并且开发者有嵌入式开发经验。

    目前主要开放的API功能有:

    • 发现与查询设备
    • 设备状态上报
    • 对设备进行读写操作
    • 设备心跳上报

    注意:如需使用多功能网关,请参考网关局域网通信协议V1.0

    修订记录

    介绍网关局域网通信协议各版本的主要变更内容。

    更新时间文档版本更新日志
    2018.07.16V2.0.2新增:空调伴侣空调状态上报和控制功能,空调伴侣继电器控制功能;新增:RGB控制器和空调温控器
    2018.05.18V2.0.1新增:魔方传感器 (sensor_cube.aqgl01)、墙壁插座(ctrl_86plug.aq1)、墙壁开关(ctrl_ln1.aq1)
    2017.10.09V2.0.1修改:水浸传感器的属性上报
    2017.09.20V2.0.0修改:基本的JSON格式变更;部分设备的model值和属性名称变更;对于属性的取值类型,模拟量统一取值为数值型。

    加密机制

    局域网通信采用key加密方式,需在APP上获取随机生成的网关KEY,该KEY使用AES-CBC 128加密,为16个字节长度的字符串。开启局域网通信协议并拥有该网关的KEY后,才能与该网关进行局域网通信。

    注意:AES-CBC 128初始向量定义为:unsigned char const AES_KEY_IV[16] = {0x17, 0x99, 0x6d, 0x09, 0x3d, 0x28, 0xdd, 0xb3, 0xba, 0x69, 0x5a, 0x2e, 0x6f, 0x58, 0x56, 0x2e}。

    获取网关KEY的具体操作如下:

    1、打开Aqara APP,选择需要进行局域网通信的网关设备;

    注意:当前仅“升级版空调伴侣”支持局域网通信协议功能。

    2、默认情况下,此页面不显示“局域网协议”,需连续点击"设备类型"10次才可显示。

    3、开启“局域网协议”,获取随机KEY,单击“确定”。

    设备发现与查询

    发现网关设备

    设备发现采用不加密方式,使用组播(IP:224.0.0.50,Port:4321,Protocal:UDP),在局域网中发现网关设备。

    以组播方式发送“whois”命令:

    {
       "cmd":"whois"
    }
    

    所有网关收到“whois”命令都要应答且回复自己的IP信息,以单播的形式回复:

    {
       "cmd":"iam",
       "ip":"192.168.0.42",   //网关IP地址
       "protocal":"UDP",
       "port":"9898",
       "model":"gateway.aq1",  //网关设备类型
       ......
    }
    

    查询子设备列表

    命令以单播方式发送给网关的UDP 9898端口,用来获取网关中有哪些子设备。

    以单播方式向网关发送“discovery”命令:

    {
       "cmd":"discovery"
    }
    

    网关以单播方式回复,返回子设备的设备id和model值:

    {
       "cmd":"discovery_rsp",
       "sid":"158d323123c9d9",     //sid为网关did
       "token":"TahkC7dalbIhXG22",    //网关生成的随机字符串
       "dev_list":[{"sid":"xxxxxxxx","model":"plug"},  
                   {"sid":"xxxxxxxx","model":"sensor_switch.aq2"}]  //sid为子设备did
    }
    

    注意:“token”为网关生成的随机字符串,每10s刷新一次,在未收到设备心跳上报的token前,用户可用此token来生成写设备时的“key”。

    设备状态上报

    当设备状态发生变化时,使用“report”命令以组播方式发送给(IP:224.0.0.50,Port:9898)上报属性状态,如门窗传感器的打开或关闭信息。利用上报的属性状态,用户可以实现智能联动操作,如关闭窗户即开启空调。

    例如:

    门窗传感器上报窗户的开关状态,格式如下:

    {
       "cmd":"report",
       "model":"sensor_magnet.aq2",
       "sid":"xxxxxxxx",
       "params":[{"window_status":"open"}] 
    }
    

    设备心跳上报

    网关心跳

    网关心跳以组播方式发送给(IP:224.0.0.50,Port:9898)。网关每10秒钟发送一次心跳报文,用来告诉PC网关正常工作。若间隔65s以上未收到心跳包即表示网关处于离线状态。网关设备心跳格式如下:

    {
        "cmd":"heartbeat",
        "model":"gateway.v3",
        "sid":"xxxxxxxx",
        "token":"1234567890abcdef",   //网关生成的随机字符串
        "params":[{"ip":"172.22.4.130"}]  //网关IP地址
     }
    

    注意:“token”为网关生成的随机字符串,每10s刷新一次,可用此token来生成写设备时的“key”。

    子设备心跳

    子设备心跳以组播方式发送给(IP:224.0.0.50,Port:9898)。子设备通过心跳告诉PC:子设备正常工作(心跳上报频率:睡眠设备是每60分钟一次,插电设备是每10分钟一次)。子设备心跳格式如下:

    {
       "cmd":"heartbeat",
       "model":"sensor_magnet.aq2",
       "sid":"xxxxxxxx",
       "params":[{"window_status":"open"}]
    }
    

    子设备心跳中可能包含子设备的属性状态,如格式中的"window_status":"open"。在设置心跳的时候,需看此属性状态的具体使用场景。

    例如:开窗关空调场景,可以使用上面的心跳(有可能正常的report报文丢失,心跳报文可以补救)。但关窗开空调场景,就不能使用上面的心跳。因为有可能人离开的时候把空调关了,但心跳报文又让空调打开,很浪费电。

    因此,针对心跳报文的使用,用户可根据使用需要自行决定是否用心跳做触发。

    设备的读写操作

    读设备

    使用“read”命令以单播方式发送给网关的UDP 9898端口。用户可以用主动读取各设备的属性状态,网关返回该设备的全部属性信息。

    例如:

    读取墙壁开关的状态:

    {
       "cmd":"read",
       "sid":"xxxxxxxx"   //墙壁开关did
    }
    

    网关以单播方式回复,格式如下:

    {
       "cmd":"read_rsp",
       "model":"ctrl_neutral2",
       "sid":"xxxxxxxx",
       "params":[{"channel_0":"on"},{"channel_1":"off"}]  
    }
    

    写设备

    使用“write”命令以单播方式发送给网关的UDP 9898端口。当用户需要控制各设备时,可使用“write”命令。

    例如:

    将墙壁开关(单火单键)的状态改为关闭:

    {
        "cmd":"write",
        "model":"ctrl_neutral1",
        "sid":"xxxxxxxx",
        "key":"3EB43E37C20AFF4C5872CC0D04D81314",
        "params":[{"channel_0":"off"}]
     }
    

    网关以单播方式回复格式:

    {
       "cmd":"write_rsp",
       "model":"ctrl_neutral1",
       "sid":"xxxxxxxx",
       "params":[{"channel_0":"on"}]  
    }
    

    该“write_rsp”只代表网关收到了write命令,params里的属性状态为当前的设备最新状态,不是write之后的最终设备状态。最终的设备状态靠report报文进行上报。

    注意:“key”为32个字节长度的字符串。当网关启用了加密模式时,会对该key进行解密并校验,以验证写命令的合法性。该“key”的生成规则是:用户收到心跳“heartbeat”里的16个字节的“token”字符串之后,使用网关的KEY(在APP里获取的随机KEY)对该字符串进行AES-CBC 128加密,生成16个字节的密文后,再转换为32个字节的ASCII码字符串。

    例如:米家智能家庭APP中16个字符长度的随机KEY为“0987654321qwerty“,”token”为”1234567890abcdef”,加密后的密文是:0x3E,0xB4,0x3E,0x37,0xC2,0x0A,0xFF,0x4C,0x58,0x72,0xCC,0x0D,0x04,0xD8,0x13,0x14。那么,”key”为:”3EB43E37C20AFF4C5872CC0D04D81314”。

    设备上报和控制报文格式

    JSON报文的基本格式:

    {
       "cmd":"write",     //命令类型,支持write/read/write_rsp/read_rsp/report/heartbeat
       "model":"ctrl_neutral2",   //设备类型
       "sid":"xxxxxxxx",    //设备的did
       "params":[{"channel_0":"on"},{"channel_1":"off"}]  //params里可以包含同一个设备的多个属性 
    }
    

    设备属性列表

    介绍Aqara产品的设备类型、属性和使用示例。

    空调伴侣

    (设备类型model:acpartner.v3)

    属性说明
    illumination空调伴侣的光照度,取值范围一般为0~1300;支持report/read。
    proto_version采用的通信协议版本号,如”2.0.1”。
    mid表示music id,即音乐铃声的id。支持write。取值有:08,1013,20~29(上述为系统自带铃声),10000(表示停止播放铃声),>10001(表示用户自定义的铃声)。
    join_permission取值“yes”/”no”,表示是否允许添加子设备。
    remove_device取值为子设备的did(did的16进制形式的字符串),用于删除某个子设备。
    on_off_cfg空调开关状态,取值为off、on、toggle、invalid
    mode_cfg空调模式,取值为heat、cool、auto、dry、wind、circle、invalid
    ws_cfg空调风速,取值为low、middle、high、auto、circle、invalid
    swing_cfg空调扫风,取值为unswing、swing、invalid
    temp_cfg空调温度,值为整形,取值为当前温度,17~30
    relay_status空调继电器控制,取值为off、on、toggle

    例如:

    属性上报:

    {
       "cmd":"report",
       "model":"acpartner.v3",
       "sid":"xxxxxxxx",
       "params":["illumination:500,"proto_version":"2.0.0"}]
       //光照度为500,通信协议版本为2.0.0。
    }
    

    控制:

    播放mid为10005的自定义铃声:

    {
       "cmd":"write",
       "model":"acpartner.v3",
       "sid":"xxxxxxxx",
       "params":[{"mid":10005}]
    }
    

    停止播放铃声:

    {
       "cmd":"write",
       "model":"acpartner.v3",
       "sid":"xxxxxxxx",
       "params":[{"mid":10000}]
    }
    

    允许添加子设备:

    {
       "cmd":"write",
       "model":"acpartner.v3",
       "sid":"xxxxxxxx",
       "params":[{"join_permission":"yes"}]
    }
    

    注意:添加子设备须在30s内进行操作:长按子设备重置键3~5秒直到蓝色指示灯连续闪烁后松开,网关提示设备添加成功,即入网成功。不同子设备长按重置键,指示灯可能不一样,请根据实际情况操作。

    删除空调伴侣下的某个子设备:

    {
       "cmd":"write",
       "model":"acpartner.v3",
       "sid":"xxxxxxxx",
       "params":[{"remove_device":"158d0000f12345"}]
    }
    

    空调配置:

    {
        "cmd":"write",
        "model":"acpartner.v3",
        "sid":"xxxxxxxx",
        "params":[{"on_off_cfg":"on"}]
    }
    

    智能插座

    (设备类型model:plug)

    属性说明
    channel_0on/off(开/关)
    load_power负载功率,单位是瓦(W)
    energy_consumed从产品开始被使用以来累计的负载消耗电量,单位是瓦时(Wh)

    例如:

    属性上报:

    {
       "cmd":"report",
       "model":"plug",
       "sid":"xxxxxxxx",
       "params":[{"channel_0":"on"}] //智能插座状态为“开”
    }
    

    控制:

    {
       "cmd":"write",
       "model":"plug",
       "sid":"xxxxxxxx",
       "params":[{"channel_0":"off"}]  //将智能插座状态改为“关”
    }
    

    心跳上报(~10分钟每次):

    {
       "cmd":"heartbeat",
       "model":"plug",
       "sid":"xxxxxxxx",
       "params":[{"load_power":9.57},{”energy_consumed":57}] 
       //负载功率为9.57W,负载消耗电量为57Wh。
    }
    

    墙壁插座

    (设备类型model:ctrl_86plug 和 ctrl_86plug.aq1 )

    属性说明
    channel_0on/off/unknown(开/关/未知)
    load_power负载功率,单位是瓦(W)
    energy_consumed从产品开始被使用以来累计的负载消耗电量,单位是瓦时(Wh)

    例如:(以model:ctrl_86plug为例)

    属性上报:

    {
       "cmd":"report",
       "model":"ctrl_86plug",
       "sid":"xxxxxxxx",
       "params":[{"channel_0":"on"}]  //墙壁插座状态为“开”
    }
    

    控制:

    {
       "cmd":"write",
       "model":"ctrl_86plug",
       "sid":"xxxxxxxx",
       "params":[{“channel_0”:”off”}]  //将墙壁插座状态改为“关”
    }
    

    心跳上报(~10分钟每次):

    {
       "cmd":"heartbeat",
       "model":"ctrl_86plug",
       "sid":"xxxxxxxx",
       "params":[{"load_power":9.57},{"energy_consumed":57}]
       //负载功率为9.57W,负载消耗电量为57Wh。
    }
    

    墙壁开关(零火单键)

    (设备类型model:ctrl_ln1 和 ctrl_ln1.aq1)

    属性说明
    channel_0on/off/unknown(开/关/未知)

    例如:(以model:ctrl_ln1为例)

    属性上报:

    {
       "cmd":"report",
       "model":"ctrl_ln1",
       "sid":"xxxxxxxx",
       "params":[{"channel_0":"on"}]  //墙壁开关状态为“开”
    }
    

    控制:

    {
       "cmd":"write",
       "model":"ctrl_ln1",
       "sid":"xxxxxxxx",
       "params":[{"channel_0":"off"}]   //将墙壁开关状态改为“关”
    }
    

    墙壁开关(零火双键)

    (设备类型model:ctrl_ln2)

    属性说明
    channel_0on/off/unknown(开/关/未知)
    channel_1on/off/unknown(开/关/未知)

    例如:

    属性上报:

    {
       "cmd":"report",
       "model":"ctrl_ln2",
       "sid":"xxxxxxxx",
       "params":[{"channel_1":"on"}]  //墙壁开关2状态为“开”
    }
    

    控制:

    {
       "cmd":"write",
       "model":"ctrl_ln2",
       "sid":"xxxxxxxx",
       "params":[{"channel_1":"off"}]  //将墙壁开关2状态改为“关”
    }
    

    墙壁开关(单火单键)

    (设备类型model:ctrl_neutral1)

    属性说明
    channel_0on/off(开/关)

    例如:

    属性上报:

    {
       "cmd":"report",
       "model":"ctrl_neutral1",
       "sid":"xxxxxxxx",
       "params":[{"channel_0":"on"}]  //墙壁开关状态为“开”
    }
    

    控制:

    {
       "cmd":"write",
       "model":"ctrl_neutral1",
       "sid":"xxxxxxxx",
       "params":[{" channel_0":"off"}]  //将墙壁开关状态改为“关”
    }
    

    墙壁开关(单火双键)

    (设备类型model:ctrl_neutral2)

    属性说明
    channel_0on/off(开/关)
    channel_1on/off(开/关)

    例如:

    属性上报:

    {
       "cmd":"report",
       "model":"ctrl_neutral2",
       "sid":"xxxxxxxx",
       "params":[{"channel_0":"on"}]  //墙壁开关1状态为“开”
    }
    {
       "cmd":"report",
       "model":"ctrl_neutral2",
       "sid":"xxxxxxxx",
       "params":[{"channel_1":"on"}]  //墙壁开关2状态为“开”
    }
    

    控制:

    {
       "cmd":"write",
       "model":"ctrl_neutral2",
       "sid":"xxxxxxxx",
       "params":[{"channel_0":"on"}]  //将墙壁开关1改为“开”
    }
    {
       "cmd":"write",
       "model":"ctrl_neutral2",
       "sid":"xxxxxxxx",
       "params":[{"channel_1":"off"}]  //将墙壁开关2改为“关”
    }
    

    窗帘电机

    (设备类型model:curtain)

    属性说明
    curtain_statusopen/close/stop/auto (开窗帘/关窗帘/停止工作/自动工作)。支持“write”(write之后设备会上报curtain_level),不支持“report”。
    curtain_level取值:0-100表示打开窗帘的百分比;-1或255表示位置未知。支持“write”和“report”。

    例如:

    属性上报:

    {
       "cmd":"report",
       "model":"curtain",
       "sid":"xxxxxxxx",
       "params":[{"curtain_level":50}]  //窗帘打开50%
    }
    

    控制:

    {
       "cmd":"write",
       "model":"curtain",
       "sid":"xxxxxxxx",
       "params":[{"curtain_status":"open"}]  //开窗帘
    }
    {
       "cmd":"write",
       "model":"curtain",
       "sid":"xxxxxxxx",
       "params":[{"curtain_level":25}]  //窗帘打开25%
    }
    

    上报窗帘打开状态:

    {
       "cmd":"report",
       "model":"curtain",
       "sid":"xxxxxxxx",
       "params":[{"curtain_level":25}]  //上报窗帘已打开25%
    }
    

    双路控制器

    (设备类型model:lumi.ctrl_dualchn)

    属性说明
    channel_0on/off/toggle(开/关)
    channel_1on/off/toggle(开/关)

    例如:

    属性上报:

    {
       "cmd":"report",
       "model":"lumi.ctrl_dualchn",
       "sid":"xxxxxxxx",
       "params":[{"channel_0":"on"}] 
    }
    

    RGB调光控制器

    (设备类型model:dimmer.rgbegl01)

    属性说明
    power_statuson/off/unknown (开/关/未知)
    light_rgb取值范围为0-0x64FFFFFF,最高字节表示亮度(0 ~ 0x64),其余3个字节表示颜色值RGB
    light_level取值范围为0~100,表示亮度为1% ~ 100%

    例如:

    属性上报:

    {
        "cmd":"report",
        "model":"dimmer.rgbegl01",
        "sid":"xxxxxxxx",
        "params":[{"power_status":"on"}]
    }
    

    控制:

    {
        "cmd":"write",
        "model":"dimmer.rgbegl01",
        "sid":"xxxxxxxx",
        "params":[{"light_rgb":845905783}]
    }
    

    空调温控器

    (设备类型model:ctrl_hvac.aq1/airrtc.tcpecn01)

    属性说明
    on_off_cfg“on”/”off”/“toggle”/”circle”/”invalid” (开/关/切换/循环/未定义值)
    mode_cfg“heat”/”cool”/”auto”/”dry”/”wind”/”circle”/”invalid” (制热/制冷/自动/干燥/送风/循环/未定义)
    ws_cfg“low”/”middle”/”high”/”auto”/”circle”/”invalid” (低速/中速/高速/自动/循环/未定义)
    temp_cfg值为整形,用户设定的、想达到的环境温度,单位℃
    env_temp空调环境温度,单位℃
    on_off_statuson/off (开/关),只读

    例如:

    属性上报:

    {
        "cmd":"report",
        "model":"airrtc.tcpecn01",
        "sid":"xxxxxxxx",
        "params":[{"on_off_status":"on"}]
    }
    

    控制:

    {
        "cmd":"write",
        "model":"airrtc.tcpecn01",
        "sid":"xxxxxxxx",
        "params":[{"temp_cfg":20}]
    }
    

    门窗传感器

    (设备类型model:sensor_magnet.aq2)

    门窗传感器感知窗户或门的打开/关闭状态,每动作一次发送一次report。

    属性说明
    window_statusopen/close/unknown(开/关/未知)
    battery_voltage纽扣式电池电压值,单位mv,范围0~3300mv。一般情况下,小于2800mv时表示低电量。

    例如:

    属性上报:

    {
       "cmd":"report",
       "model":"sensor_magnet.aq2",
       "sid":"xxxxxxxx",
       "params":[{"window_status":"open"}]  //窗户被打开
    }
    

    心跳上报(~60分钟每次):

    {
       "cmd":"report",
       "model":"sensor_magnet.aq2",
       "sid":"xxxxxxxx",
       "params":[{"battery_voltage":3000}]
    }
    

    人体传感器

    (设备类型model:sensor_motion.aq2)

    人体传感器探测到有人移动时会立即report信息,同时上报光照度值”lux”和“illumination”。在一直有人移动的情况下,为了省电,人体传感器最快一分钟发送一次report。人体传感器在每个心跳时,也会上报当前的光照度值”lux”。其他情况下,人体传感器不上报光照度值。

    属性说明
    battery_voltage纽扣式电池电压值,单位mv,范围0~3300mv。一般情况下,小于2800mv时表示低电量。
    motion_status取值:motion表示探测到有人;unknown表示未知
    lux光照度值,取值范围 0 ~ 1200。在检测到有人移动时采集光照度并上报;或者在传感器心跳时上报。
    illumination光照度值,取值范围 0 ~ 1200,只在检测到有人移动时采集光照度并上报。

    例如:

    属性上报:

    {
       "cmd":"report",
       "model":"sensor_motion.aq2",
       "sid":"xxxxxxxx",
       "params":[{"motion_status":"motion"}]  //检测到有人移动
    }
    

    同时上报光照度值:

    {
       "cmd":"report",
       "model":"sensor_motion.aq2",
       "sid":"xxxxxxxx",
       "params":[{"lux":100},{"illumination":100}]  
    }
    

    心跳上报(~60分钟每次):

    {
       "cmd":"report",
       "model":"sensor_motion.aq2",
       "sid":"xxxxxxxx",
       "params":[{"battery_voltage":3000},{"lux":50}]
    }
    

    温湿度传感器

    (设备类型model:weather)

    温湿度传感器检测到温度变化达到0.5度或者湿度变化达到6%时,发送一次report上报,温度或湿度上报时,同时会上报气压值。温湿度传感器在每次心跳时,也会上报当前温度、湿度和气压值。

    属性说明
    temperature温度,数值型,默认的invalid值为10000。
    humidity湿度,数值型,默认的invalid值为0。
    pressure大气气压值,数值型,单位帕Pa,取值范围30000~110000。默认的invalid值为0。
    battery_voltage纽扣式电池电压值,单位mv,范围0~3300mv。一般情况下,小于2800mv时表示低电量。

    例如:

    属性上报:

    {
       "cmd":"report",
       "model":"weather",
       "sid":"xxxxxxxx",
       "params":[{"temperature":2333}]  //温度是23.33度
    }
    

    心跳上报(~60分钟每次):

    {
       "cmd":"heartbeat",
       "model":"weather",
       "sid":"xxxxxxxx",
       "params":[{"battery_voltage":3000}, {"temperature":2333},{"humidity":6678},{"pressure":99900}]
       //温度为23.33度,湿度为66.78%,大气气压为99.9KPa。
    }
    

    水浸传感器

    (设备类型model:sensor_wleak.aq1)

    属性说明
    wleak_status取值:normal表示没有报警或者已解除报警;leak表示发生浸水报警。
    battery_voltage纽扣式电池电压值,单位mv,范围0~3300mv。一般情况下,小于2800mv时表示低电量。

    例如:

    属性上报:

    {
       "cmd":"report",
       "model":"sensor_wleak.aq1",
       "sid":"xxxxxxxx",
       "params":[{"wleak_status":"leak"}]  //检测到发生浸水报警
    }
    

    心跳上报(~60分钟每次):

    {
       "cmd":"heartbeat",
       "model":"sensor_wleak.aq1",
       "sid":"xxxxxxxx",
       "params":[{"battery_voltage":3000}]
    }
    

    无线开关

    (设备类型model:sensor_switch.aq2)

    无线开关每按一次按键上报一个报文,400ms内按两次上报的报文是双击。

    属性说明
    button_0click/double_click(单击/双击)
    battery_voltage纽扣式电池电压值,单位mv,范围0~3300mv。一般情况下,小于2800mv时表示低电量。

    例如:

    属性上报:

    {
       "cmd":"report",
       "model":"sensor_switch.aq2",
       "sid":"xxxxxxxx",
       "params":[{"button_0":"click"}]  
    }
    

    心跳上报(~60分钟每次):

    {
       "cmd":"heartbeat",
       "model":"sensor_switch.aq2",
       "sid":"xxxxxxxx",
       "params":[{"battery_voltage":3000}]
    }
    

    无线开关(升级版)

    (设备类型model:sensor_switch.aq3)

    无线开关每按一次按键上报一个报文,400ms内按两次上报的报文是双击。

    属性说明
    button_0click/double_click/shake(单击/双击/摇一摇)
    battery_voltage纽扣式电池电压值,单位mv,范围0~3300mv。一般情况下,小于2800mv时表示低电量。

    例如:

    属性上报:

    {
       "cmd":"report",
       "model":"sensor_switch.aq3",
       "sid":"xxxxxxxx",
       "params":[{"button_0":"click"}]  //单击无线开关
    }
    

    心跳上报(~60分钟每次):

    {
       "cmd":"heartbeat",
       "model":"sensor_switch.aq3",
       "sid":"xxxxxxxx",
       "params":[{"battery_voltage":3000}]
    }
    

    86无线开关单键

    (设备类型model:sensor_86sw1.aq1)

    属性说明
    button_0click/double_click(单击/双击)
    battery_voltage纽扣式电池电压值,单位mv,范围0~3300mv。一般情况下,小于2800mv时表示低电量。

    例如:

    属性上报:

    {
       "cmd":"report",
       "model":"sensor_86sw1.aq1",
       "sid":"xxxxxxxx",
       "params":[{"button_0":"double_click"}]
    }
    

    86无线开关双键

    (设备类型model:sensor_86sw2.aq1)

    属性说明
    button_0click(左键单击);double_click(左键双击)
    button_1click(右键单击);double_click(右键双击)
    dual_channelboth_click(左右键同时按)

    例如:

    属性上报:

    {
       "cmd":"report",
       "model":"sensor_86sw2.aq1",
       "sid":"xxxxxxxx",
       "params":[{"button_1":"double_click"}]
    }
    

    魔方传感器

    (设备类型model:sensor_cube.aqgl01)

    属性说明
    cube_statusflip90/flip180/move/tap_twice/shake_air/swing/alert/free_fall/rotate(翻转90度/翻转180度/平移/双击/摇一摇/用力甩/静止一段时间后被触动/自由下落)
    rotate_degree旋转的角度,单位是度(°) ,取值为正数,表示是顺时针转,负数为逆时针转。
    detect_time旋转采样的时间长度,单位毫秒(ms)
    battery_voltage纽扣式电池电压值,单位mv,范围0~3300mv,一般情况下,小于2800mv时表示低电量。

    例如:

    属性上报:

    旋转上报:花了500毫秒逆时针旋转了90度

    {
       "cmd":"report",
       "model":"sensor_cube.aqgl01",
       "sid":"xxxxxxxx",
       "params":[{“cube_status”:”rotate”},{"rotate_degree":-90},{"detect_time ":500}]
    }
    

    其他动作上报:

    {
        "cmd":"report",
        "model":"sensor_cube.aqgl01",
        "sid":"xxxxxxxx",
        "params":[{"cube_status":"flip90"}]
    }
    展开全文
  • 局域网通信协议有哪些

    千次阅读 2012-04-05 15:52:57
    网络通信协议(Protocol)是网络中的计算机实现通信的必备条件,两台连接到局域网中的计算机要想实现通信,则必须使用相同的通信协议。在组建局域网的过程当中经常会遇到选择和安装通信协议的问题,如果选择和安装了...

    网络通信协议(Protocol)是网络中的计算机实现通信的必备条件,两台连接到局域网中的计算机要想实现通信,则必须使用相同的通信协议。在组建局域网的过程当中经常会遇到选择和安装通信协议的问题,如果选择和安装了不合适的通信协议,往往会引发网络不通、网速太慢或网络不稳定等故障。可见,了解不同通信协议所适用的网络环境和操作系统非常重要。不过对于普通用户而言,太深奥的通信协议底层理论也许并不重要,而只需了解几种常用通信协议的通信原理和适用范围即可。局域网中常用的通信协议主要包括TCP/IPNETBEUIIPX/SPX三种协议,每种协议都有其适用的应用环境。

    1. TCP/IP

    TCP/IPTransport Control Protocol/Internet Protocol,传输控制协议/Internet协议)的历史应当追溯到Internet的前身ARPAnet时代。为了实现不同网络之间的互连,美国国防部于1977年到1979年间制定了TCP/IP体系结构和协议。TCP/IP是由一组具有专业用途的多个子协议组合而成的,这些子协议包括TCPIPUDPARPICMP等。TCP/IP凭借其实现成本低、在多平台间通信安全可靠以及可路由性等优势迅速发展,并成为Internet中的标准协议。目前,TCP/IP已经成为局域网中的首选协议,在最新的操作系统(如Windows XPWindows Server 2003等)中已经将TCP/IP作为其默认安装的通信协议。

    2. NetBEUI协议

    NetBEUINetBIOS增强用户接口)协议由NetBIOS(网络基本输入输出系统)发展完善而来,该协议只需进行简单的配置和较少的网络资源消耗,并且可以提供非常好的纠错功能,是一种快速有效的协议。不过由于其有限的网络节点支持(最多支持254个节点)和非路由性,使其仅适用于基于Windows操作系统的小型局域网中。

    3. IPX/SPX及其兼容协议

    IPX/SPX(网际包交换/序列包交换)协议主要应用于基于NetWare操作系统的Novell局域网中,基于其他操作系统的局域网(如Windows Server 2003)能够通过IPX/SPX协议与Novell网进行通信。在Windows 2000/XP/2003系统中,IPX/SPX协议和NetBEUI协议被统称为NWLink

    小提示:一台计算机中安装多个协议甚至安装系统所支持的所有协议的做法并不可取,因为安装的协议越多计算机的资源消耗就越大。这样做不仅影响计算机的运行速度,同时也不利于网络的管理工作。一般情况下,安装一种通信协议即可满足网络通信的需要。

     

    http://www.msserver.com.cn/Admin/115.html

    展开全文
  • 根据逻辑链路控制协议LLC-IEEE802.2编写一套用于嵌入式局域网通讯协议栈,与TCP/IP相比,协议封装更简化,效率更高。并且统一了以太网与串口的的用户API,并提供了可信机制评估和进程内存使用限制功能。 包括源...
  • 无论是广域网还是局域网,在其进行各种网络通讯,完成网络功能时都依赖于各种网络通信协议的支持。从现况看,不同的网络协议都有其存在的必要性,每一种协议都有它所主要依赖的操作系统和工作环境。在一个网络上运行得很


    [摘要]:本文基于局域网环境,介绍和分析了常用通信协议的特点、性能和必要的配置方法, 以便组建局域网时做出合理的选择。

    [关键词]:局域网 协议 通信协议 TCP/IP

    1、 前言

    无论是广域网还是局域网,在其进行各种网络通讯,完成网络功能时都依赖于各种网络通信协议的支持。从现况看,不同的网络协议都有其存在的必要性,每一种协议都有它所主要依赖的操作系统和工作环境。在一个网络上运行得很好的通信协议,在另一个看起来很相似的网络上可能完全不适合。因此,组建网络时通信协议的选择尤为重要。下面析一下各个协议的特点和性能,借以说明配置协议的理论、原则及配置方法。

    2、 原理

    一、通信协议

    组建网络时,必须选择一种网络通信协议,使得用户之间能够相互进行“交流”。协议是网络设备用来通信的一套规则,这套规则可以理解为一种彼此能听得懂的公用语言。国际标准化组织为网络通信制定了一个标准模式,称为OSI/RM体系结构。该结构分为七层,从低到高分别是物理层,数据链路层,网络层,传输层,会话层,表示层和应用层。其中,任何一个网络设备的上下层之间的有其特定的协议形式,同时两个设备的同层之间也有其使用的协议约定。在这里我们将这种上下层之间和同层之间的协议全部定义为“内部协议”。

    内部协议在组网中一般很少涉及到,它主要提供给网络开发人员使用。如果你只是为了组建一个网络,可不用理会内部协议。外部协议即我们组网时所必须选择的协议。由于它直接负责计算机之间的相互通讯,所以通常称为网络通信协议。

    自从网络问世以来,有许多公司投入到了通信协议的开发中,如IBM,Microsoft等。每家公司开发的协议,最初一般是为了满足自己的网络通信,但随着网络应用的普及,不同网络之间进行互连的要求越来越迫切,因此通信协议就成为解决网络之间互连的关键技术。就像使用不同母语的人与人之间需要一种通用语言才能交谈一样,网络之间的通信也需要一种同用语言,这种通用语言就是通信协议。

    目前,局域网中常用的通信协议主要有NetBEUI,IPX/SPX以及起兼容协议和TCP/IP三类。我们在选择通讯协议时一般应遵循以下的原则:

    第一,所选协议要与网络结构和功能相一致。如你的网络存在多个网断或要通过路由器相连时,就不能使用不具备路由和跨网段操作功能的NetBEUI协议而必须选择IPX/SPX,TCP/IP等协议。另外,如果你的网络规模较小,同时只是为了简单的文件和设备的共享,这时你最关心的就是网络速度,所以在选择网络协议时应选择占用内存小和带宽利用率高的协议。当你的网络规模较大,且网络结构复杂时,应选择网络可管理性和可扩充性较好的协议。现实中许多人的做法是很不可取的。因为每个协议都要占用计算机的内存,选择的协议越多,占用计算机的内存资源就越多。

    第二,注意协议的版本。出现了不同的版本,每个版本的协议都有它最为合适的网络环境。从整体来看,高版本协议的功能和性能要比低版本好。所以在选择时,在满足网络功能要求前提下,应尽量选择高版本的通信协议。

    第三,协议的一致性。如果要让两台实现互连的计算机间进行对话,它们两者使用的通信协议必须相同。

    二、局域网中常用的三种通信协议

    1、NetBEUI协议:

    NetBEUI通信协议的特点。NetBEU(NetBIOS Extended User Interface,用户扩展接口)由IBM于1985年开发完成,它是一种体积小、效率高、速度快的通信协议。NetBEUI也是微软最钟受的一种通信协议,所以它被称为微软所有产品中通信协议的“母语”。在微软如今的主流产品,如Windows 95/98和Windows Nt/2000中,Net-BEUI已成为其固有的缺省协议。有人将Windows NT/2000定位为低端网络服务器操作系统,这与微软的产品对于依赖Net-BEU有直接的关系。NetBEU是专门为几台到百余台PC所组成的单网段部门级小型局域网而设计的,它不具有跨网段工作的功能,即NetBEUI不具备路由功能。虽然NetBEUI存在许多不尽人意的地方,但它也具有其他协议所不具备的优点。在三种通信协议中,NetBEUI占用内存最少,在网络中基本不需要任何配置。尤其在微软产品几乎独占PC操作系统的今天,它很适合于广大的网络初学者使用。

    2、IPX/SPX协议:

    IPX/SPX是Novell公司的通信协议集。与NetBEUI的明显区别是,IPX/SPX显得比较庞大,在复杂环境下具有较强的适应性。因为,IPX/SPX在设计一开始就考虑了多网段的问题,具有强大的路由功能,适合于大型网络使用。当用户端接入NetWare服务器时,IPX/SPX及其兼容协议是最好的选择。但在非Novell网络环境中,一般不使用IPX/SPX。尤其在WINDOWS NT网络和由WINDOWS 95/98组成的对等网中,无法直接使用IPX/SPX通信协议。SPX协议的工作方式。IPX/SPX及其兼容协议不需要任何配置,它可通过网络地址来识别自己的身份。Novell网络中的网络地址由两部分组成:标成物理网段的网络ID和标明特殊设备的“节点ID”。其中网络ID集中在NetWare服务器或路由器中,节点ID即为每个网卡的ID号。所有的网络ID和节点ID都是一个独一无二的内部IPX地址。正是由于网络地址的唯一性,才使用IPX/SPX具有较强的路由功能。在IPX/SPX协议中, IPX是NetWare最低层的协议,他只负责数据在网络中的移动,并不保证数据是否传输成功,也不提供纠错服务。IPX在负责数据传送时,如果接收节点在同一网段内,就直接按节点的ID将数据传给它;如果接收节点是远程的,数据将交给NetWare服务器或路由器中的网络ID,继续数据的下一步传输。SPX在整个协议中负责对所传输的数据进行无差别处理,所以我们将IPX。SPX也叫做“Novell的协议集”。

    3、TCP/IP协议:

    TCP/IP协议是目前最常用到的一种通信协议,它是计算机世界里的一个通用协议。在局域网中,TCP/IP最早出现在Unix系统中,现在几乎所有厂商和操作系统都开始支持它。同时,TCP/IP也是Internet的基础协议。TCP/IP通信协议特点:具有很高的灵活性,支持任意规模的网络,几乎可连接所有的服务器和工作站。但其灵活性也带来了许多不便,在使用NetBEUI和IPX. /SPX及其兼容协议时都不需要进行配置,而TCP/IP协议在使用时首先要进行复杂的设置。每个节点至少需要一个IP地址,一个子网掩码,一个默认网关和一个主机名。如此复杂的设置,对于一些初网络的用户来说的确带来了不便。不过,在WINDOWSNT中提供了一个称为动态主机配置协议的工具,它可自动为客户机分配连入网络时所需要的信息,减轻了联网工作上的负担,并避免了出错。当然,DHCP所拥有的功能必须要有DHCP服务器才能实现。同IPX/SPX及其兼容协议一样,TCP/IP的地址是分级的,这使得它很容易确定并找到网上的用户,同时也提高了网络带宽的利用率。当需要时,运行TCP/IP协议的服务器还可以被配置成TCP/IP路由器。与TCP/IP不同的是,IPX/SPX协议中的IPX使用的是一种广播协议,它经常出现广播包堵塞,所以无法获得最佳的网络带宽。WINDOWS95/98中的TCP/IP协议。WINDOWS 95/98的用户不但可以使用TCP/IP组建对等网,而可以方便地接入其它的服务器。

    3、 分析

    1、NetBEUI协议的特点: NetBEUI(NetBIOS Extended User In-terface,用户扩展接口)由IBM于1985年开发完成,是微软最钟爱的一种通信协议。其优点在于占用内存少,效率高、速度快,在网络中不需要任何配置,适合网络初学者使用。

    缺点主要是:①只能用于几台到几百台计算机组成的单网段小型局域网(一般桥接网络很少超过100台主机),不具备跨网段工作功能,即不具备路由功能。

    ②如果在一个服务器上安装了多块网卡,或要采用路由器等设备进行两个局域网的互联时,不能使用NetBEUI通信协议。否则,与不同网卡(每一块网卡连接一个网段)相连的设备之间以及不同的局域网之间将无法进行通信。

    ③NetBEUI通信协议只能标识网卡地址,而不能标识网络标识。

    2、IPX/SPX及其兼容协议通信协议的特点:IPX/SPX(Internetwork Packet eX-change/Sequences Packet eXchange,网际包交换/顺序包交换)是由Novell公司开发完成的通信协议集。此外在Windows NT中提供了两个IPX/SPX的兼容协议 “NWLink SPX/SPX兼容协议”和“NWLinkNetBIOS”,两者统称为“NWLink通信协议”。NWLink协议是Novell公司IPX/SPX协议在微软网络中的实现,它在继承IPX/SPX协议优点的同时,更加适应微软的操作系统和网络环境。Windows NT网络和Windows 95/98的用户可以利用NWLink协议获得NetWare服务器的服务。而 “NWLink NetBIOS”协议不但可在Net-Ware服务器与Windows NT之间传递信息,而且能够用于Windows NT、Windows95/98相互之间任意通信。

    其优点在于:

    ①在复杂环境下有很强的适应性。

    ②具有强大的路由功能,它包括32位网络地址,能实现多网段间的跨段通信,适合于大型网络使用。

    ③IPX/SPX及其兼容协议不需要任何配置,它可通过“网络地址”来识别自己的身份。④NWLink通信协议可以实现网络从Novell环境转向微软平台,或两种平台共存。

    其缺点在于:

    ①与NetBEUI相比,IPX/SPX显得比较庞大。

    ②在非Novell网络环境中,一般不使用IPX/SPX。尤其在WindowsNT网络和由Windows 95/98组成的对等网中,无法直接使用IPX/SPX通信协议。4.2.2 IPX/SPX及其兼容通信协议的适用范围IPX/SPX及其兼容通信协议的适用范围包括Novell公司操作系统和网络环境、NetWare用户等、微软的操作系统和网络环境、Windows NT网络和Windows 95/98的用户。

    3、TCP/IP通信协议的特点:TCP/IP(Transmission Control Protocol/Internet Protocol,传输控制协议/网际协议)是目前最常用的一种通信协议,是In-ternet的基础,也是Unix系统互联的一种标准。它是计算机里的一个通用协议,可以使不同厂家生产的计算机能够在各种网络环境中运行。TCP/IP最初在20世纪60年代由麻省理工学院和一些商业组织为美国国防部开发。其目的是即使遭到核攻击大部分网络被破坏,TCP/IP仍然能够维持有效的通信。

    其优点在于:

    ①具有很强的适应性,支持任意规模的网络,几乎可连接所有的计算机和工作站。

    ②可支持所有厂商的操作系统。

    ③它是一种可选择路由的协议。缺点在于NetBEUI、IPX/SPX及其兼容协议在使用时无需配置,而TCP/IP协议在使用时首先要进行复杂的设置。

    4、 结论

    在组建局域网时,如何科学合理选择网络通信协议,关键取决于网络规模、网络间的兼容性和网络管理几个方面。如果组建一个小型的单网段的网络,并且对外没有连接的需要,最好选择NetBEUI通信协议。如果实现从NetWare迁移到Win-dows NT或两种平台共存,应选择IPX/SPX及其兼容协议。如果组建一个高效率、可互联、可扩展并且可连接Internet的网络,TCP/IP则是最佳的选择。


    展开全文
  • 局域网发现协议

    千次阅读 2018-08-10 14:58:53
    局域网发现设备是通信的第一步,通信需要先知道对方的ip地址,因为一般使用 DHCP 动态分配 ip 地址的局域网内,各个主机的 IP 地址是由 DHCP 服务器来帮你分配 IP 地址的。所以在很多情况下,你要知道对方的 IP 地址...
  • //创建一个Socket类,内网,流传输,tcp协议 Socket tcpServer = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); //创建ip IPAddress ip = new IPAddress(new byte[] { 192, ....
  • 发送端 import java.net.DatagramPacket;... * UDP 通讯协议 局域网通信发送消息 简单实现 发送端 * * @author silence */ public class SendDemo { public static void main(String[] args) thr
  • 局域网通信协议配置研究论文.doc
  • 如何配置局域网中的通信协议如何配置局域网中的通信协议
  • (92007年第3期 窦 验 室 科 学 2007年6月出版计算机局域网中的通信协议及配置方法李振宇(首都师范大学数学系北京100037)摘要:本文介绍了计算机局域网通信协议所依赖的标准模型,深入分析了几种常用的通信协议的特点...
  • VS2008下开发的基于Socket、TCP协议局域网通信 MFC界面
  • 局域网协议

    2017-04-29 12:34:00
    如在安装Windows 2000或Windows 95/98时,系统会自动安装NetBEUI通信协议。在安装NetWare时,系统会自动安装IPX/SPX通信协议。其中三种协议中,NetBEUI和IPX/SPX在安装后不需要进行设置就可以直接使用,但TCP/IP要...
  • VC实现MyQQ局域网通信工具,基于UDP协议的网络通信工具,可以传输消息、文件
  • 本文基于局域网环境,以Windows 2000为主,同时兼顾Windows 95/98等操作系统,介绍和分析了常用通信协议的特点、性能和必要的配置方法。不同的网络协议都有其存在的必要,每一种协议都有它所主要依赖的操作系统和...
  • 可以实现同一网络下的通信,类似于QQ,是通往labview网络的第一步
  • 基于TCP协议的企业局域网通信软件超详细内容,可以拿来做毕业设计的参考,包含了完整代码,论文,以及答辩ppt,最终定稿版
  • 局域网中的通信协议及选择。

    千次阅读 2019-06-16 13:16:59
    局域网中一般使用NetBEUI、IPX/SPX和TCP/IP这3种协议。 NetBEUI协议 NetBEUI(NetBIOSExtendedUserInterface,用户扩展接口)由...议,所以它被称为微软所有产品中通信协议的“母语”。微软在其早期产品如DOS、 L...
  • 计算机网络:局域网协议

    千次阅读 2020-05-24 14:43:12
    根据计算机网络的拓扑结构,可将网络分为总线型、树型、...局域网中传输数据的基本单元为“帧”,当采用不同的局域网通信协议时,其中具体的数据帧格式也会不同,目前常见的数据帧格式包括PPP帧和MAC帧。所有的局域网
  • 就像不同国家的人之间进行交流时需要使用一种彼此都理解的语言,网络中的计算机要...目前,局域网(校园网)中常用的通信协议主要有NetBEUI、IPX/SPX和TCP/IP三种。 NetBEUI协议 NetBEUI(NetBIOS Extended User Interf
  • 小米局域网通讯|控制小米|通讯协议|绿米|加密机制||读设备,写设备|心跳包 等等
  • 推荐!局域网通信源码 C++飞鸽传书服务器客户端源码及传输协议 服务器源码 客户端源码 传输协议源码 C++写的 可以参考学习 CLeopard 2012/01/07
  • VB写的局域网通信例子,Socket编程,UDP协议 VS2008开发
  • Qt中使用Tcp构建通信聊天信息发送连接1....TCP通信协议是面向对象,可靠的连接服务,正因为这是它最大的特点,因此在诸多领域应用广泛,在使用Qt进行面向对象的设计的时候,也常常用到TCP通信,而在Qt
  • 本文基于局域网环境,以Windows NT为主,同时兼顾NetWare、Windows 95/98等操作系统,介绍和分析 了常用通信协议的特点、性能和必要的配置方法。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 107,353
精华内容 42,941
关键字:

局域网通讯协议