自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

對VB.NET OBEX協(xié)議的簡單概括

開發(fā) 后端
這里接受VB.NET OBEX協(xié)議,協(xié)議文檔的第二章 OBEX Object Model是關(guān)鍵部份,實現(xiàn)文件傳輸必須對這章說明仔細研究清楚。以下先就對這章的一些關(guān)鍵點進行講解。

在向大家詳細介紹VB.NET OBEX協(xié)議數(shù)據(jù)對象之前,首先讓大家了解下VB.NET OBEX協(xié)議,然后全面介紹VB.NET OBEX協(xié)議數(shù)據(jù)對象,這里我發(fā)表一下個人理解,和大家討論討論。詳情請看VB.NET專題。

VB.NET OBEX協(xié)議

目前的紅外線傳輸大都遵循OBEX協(xié)議,這是由微軟、蘋果、諾基亞等公司專門為紅外線傳輸而制定的一整套協(xié)議規(guī)則。最新協(xié)議版本是1.3版,在官方網(wǎng)站上下載要 20美元(有錢的可以去下,我反正是玩玩,叫我交錢是不可能的,本文中實現(xiàn)的依據(jù)是在網(wǎng)上找到的OBEX協(xié)議1.2版本的文檔)。協(xié)議文檔的第二章 OBEX Object Model是關(guān)鍵部份,實現(xiàn)文件傳輸必須對這章說明仔細研究清楚。以下先就對這章的一些關(guān)鍵點進行講解。

VB.NET OBEX協(xié)議數(shù)據(jù)對象模型

VB.NET OBEX協(xié)議使用一系列的數(shù)據(jù)包(header)來進行某種對象(通常是文件)的傳輸,其基本格式是這樣的:

  1. <Header ID> 
  2. '數(shù)據(jù)包的標識  
  3. <Header Value>   
  4. '數(shù)據(jù)包內(nèi)的數(shù)據(jù) 

其中

是個單字節(jié)(八位二進制)字符,這個字符的低六位標識數(shù)據(jù)包代表的意義,高兩位表示這個數(shù)據(jù)包的總長度的表達方式,如下表:

高倆位二進制數(shù)據(jù) 意義
00 這個數(shù)據(jù)包的
是一個以空字符結(jié)尾的unicode字符串
01 這個數(shù)據(jù)包的
是一個以空字符結(jié)尾的單字節(jié)組成的字符串,
的前兩個字節(jié)數(shù)據(jù)組成的16位整數(shù)表示整個數(shù)據(jù)包的長度(包括
的總長)
10
的長度只有一個字節(jié)數(shù)據(jù)
11
的長度只有四個字節(jié)數(shù)據(jù),并以網(wǎng)格數(shù)據(jù)格式排列(高位數(shù)據(jù)放在低位字節(jié)中存儲)

注意:在
的16位數(shù)據(jù)(如包的長度、Unicode字符在發(fā)送方均要做高位字放在低位字發(fā)送的處理。由于沒注意這個問題,我曾在開頭的四五天時間里嘔血數(shù)升而一直沒有成功將數(shù)據(jù)發(fā)送成功)

在應(yīng)用中,數(shù)據(jù)包可以嵌套。也就是:Header Value可以包含其它的數(shù)據(jù)包,所以長度標識非常重要,它可以幫助軟件的實現(xiàn)根據(jù)包的長度迅速分離出包內(nèi)的數(shù)據(jù)。

在本文實現(xiàn)中主要用到的數(shù)據(jù)包標識如下(其余的項請參閱詳細官方協(xié)議):

常用數(shù)據(jù)包標識列表

十六進制值 標識名稱 標識含義
0x01 Name 標記對象的名稱(通常是文件的文件名)
0xC3 Length 以字節(jié)為單位計算的對象長度
0x44 Time 時間(以ISO 8601規(guī)范為標準)
0x480x49 BodyEnd of Body 標識一個對象數(shù)據(jù)塊的開始標識這是對象的最后一個數(shù)據(jù)塊


VB.NET OBEX協(xié)議數(shù)據(jù)對象傳輸是按照服務(wù)器端/客戶端的方式進行的,每個操作均提供一個操作碼以明確操作的含義。以下給出部分數(shù)據(jù)發(fā)送所需操作碼列表:

0x80 Connect 標識申請開始一個對象傳輸會話,并可以在這個數(shù)據(jù)包中告知紅外接收方一些必要的兼容性信息。
0x81 Disconnect 標識對象傳輸會話結(jié)束
0x020x82 PutFinal_Put 發(fā)送對象的put動作(當(dāng)標識為0x82時說明這是最后的一個Put動作)
0xA0 Success 說明接收端已成功收到put動作發(fā)送的所有數(shù)據(jù)(一般是在成功收到Final_Put標識的數(shù)據(jù)包后的反饋)
0x90 Continue 說明接收端已收到put動作發(fā)送的數(shù)據(jù),因為Final_Put還沒出現(xiàn),所以要求發(fā)送端繼續(xù)發(fā)送數(shù)據(jù)。


發(fā)送方和接收方是的通信的基本格式如下:

字節(jié)0 字節(jié)1,2 字節(jié)三以后的數(shù)據(jù)
操作碼 整個通信數(shù)據(jù)包的長度 通訊的數(shù)據(jù)

【編輯推薦】

  1. 深入概括VB.NET實現(xiàn)IEnumerator接口
  2. 三分鐘掌握VB.NET操作MySql數(shù)據(jù)庫
  3. 三步了解VB.NET串口通訊如何發(fā)送接收數(shù)據(jù)
  4. 是否了解VB.NET Derived Class
  5. 迅速掌握VB.NET Shared變量技能
責(zé)任編輯:佚名 來源: 博客園
相關(guān)推薦

2009-10-28 10:51:32

VB.NET默認屬性

2009-10-14 13:15:09

VB.NET數(shù)據(jù)綁定

2009-11-02 09:21:04

VB.NET文件系統(tǒng)

2009-10-26 15:57:07

VB.NET使用Ora

2009-10-13 14:50:59

VB.NET Envi

2009-10-14 14:04:29

VB.NET創(chuàng)建Web

2009-10-14 10:19:57

VB.NET Doma

2009-10-15 17:50:48

VB.NET Spli

2009-10-20 10:23:08

VB.NET多線程編程

2009-11-03 10:00:20

VB.NET New方

2009-10-14 15:34:29

VB.NET窗體編程模

2009-10-14 16:46:25

VB.NET OnSt

2009-10-21 10:05:30

VB.NET運行環(huán)境

2009-10-23 14:06:07

VB.NET類對象

2009-10-27 11:32:42

VB.NET Disp

2009-11-03 10:51:33

VB.NET共享

2009-10-16 09:08:35

VB.NET獲取網(wǎng)卡地

2009-10-15 17:33:45

VB.NET日期類型

2009-11-02 17:49:05

VB.NET抽象類

2009-10-29 16:23:42

VB.NET實現(xiàn)IEn
點贊
收藏

51CTO技術(shù)棧公眾號