对VB.NET OBEX协议的简单概括
创始人
2024-06-10 07:20:35
0

在向大家详细介绍VB.NET OBEX协议数据对象之前,首先让大家了解下VB.NET OBEX协议,然后全面介绍VB.NET OBEX协议数据对象,这里我发表一下个人理解,和大家讨论讨论。详情请看VB.NET专题。

VB.NET OBEX协议

目前的红外线传输大都遵循OBEX协议,这是由微软、苹果、诺基亚等公司专门为红外线传输而制定的一整套协议规则。最新协议版本是1.3版,在官方网站上下载要 20美元(有钱的可以去下,我反正是玩玩,叫我交钱是不可能的,本文中实现的依据是在网上找到的OBEX协议1.2版本的文档)。协议文档的第二章 OBEX Object Model是关键部份,实现文件传输必须对这章说明仔细研究清楚。以下先就对这章的一些关键点进行讲解。

VB.NET OBEX协议数据对象模型

VB.NET OBEX协议使用一系列的数据包(header)来进行某种对象(通常是文件)的传输,其基本格式是这样的:

  1.  ID> 
  2. '数据包的标识  
  3.  Value>   
  4. '数据包内的数据 

其中

是个单字节(八位二进制)字符,这个字符的低六位标识数据包代表的意义,高两位表示这个数据包的总长度的表达方式,如下表:

高俩位二进制数据 意义
00 这个数据包的
是一个以空字符结尾的unicode字符串
01 这个数据包的
是一个以空字符结尾的单字节组成的字符串,
的前两个字节数据组成的16位整数表示整个数据包的长度(包括
的总长)
10
的长度只有一个字节数据
11
的长度只有四个字节数据,并以网格数据格式排列(高位数据放在低位字节中存储)

注意:在
的16位数据(如包的长度、Unicode字符在发送方均要做高位字放在低位字发送的处理。由于没注意这个问题,我曾在开头的四五天时间里呕血数升而一直没有成功将数据发送成功)

在应用中,数据包可以嵌套。也就是:Header Value可以包含其它的数据包,所以长度标识非常重要,它可以帮助软件的实现根据包的长度迅速分离出包内的数据。

在本文实现中主要用到的数据包标识如下(其余的项请参阅详细官方协议):

常用数据包标识列表

十六进制值 标识名称 标识含义
0x01 Name 标记对象的名称(通常是文件的文件名)
0xC3 Length 以字节为单位计算的对象长度
0x44 Time 时间(以ISO 8601规范为标准)
0x480x49 BodyEnd of Body 标识一个对象数据块的开始标识这是对象的最后一个数据块


VB.NET OBEX协议数据对象传输是按照服务器端/客户端的方式进行的,每个操作均提供一个操作码以明确操作的含义。以下给出部分数据发送所需操作码列表:

0x80 Connect 标识申请开始一个对象传输会话,并可以在这个数据包中告知红外接收方一些必要的兼容性信息。
0x81 Disconnect 标识对象传输会话结束
0x020x82 PutFinal_Put 发送对象的put动作(当标识为0x82时说明这是最后的一个Put动作)
0xA0 Success 说明接收端已成功收到put动作发送的所有数据(一般是在成功收到Final_Put标识的数据包后的反馈)
0x90 Continue 说明接收端已收到put动作发送的数据,因为Final_Put还没出现,所以要求发送端继续发送数据。


发送方和接收方是的通信的基本格式如下:

字节0 字节1,2 字节三以后的数据
操作码 整个通信数据包的长度 通讯的数据

【编辑推荐】

  1. 深入概括VB.NET实现IEnumerator接口
  2. 三分钟掌握VB.NET操作MySql数据库
  3. 三步了解VB.NET串口通讯如何发送接收数据
  4. 是否了解VB.NET Derived Class
  5. 迅速掌握VB.NET Shared变量技能

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
Windows恶意软件20年“... 在Windows的早期年代,病毒游走于系统之间,偶尔删除文件(但被删除的文件几乎都是可恢复的),并弹...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
规避非法攻击 用好路由器远程管... 单位在市区不同位置设立了科技服务点,每一个服务点的员工都通过宽带路由器进行共享上网,和单位网络保持联...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
着眼MAC地址,解救无法享受D... 在安装了DHCP服务器的局域网环境中,每一台工作站在上网之前,都要先从DHCP服务器那里享受到地址动...