偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

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

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

在向大家詳細(xì)介紹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)文件傳輸必須對這章說明仔細(xì)研究清楚。以下先就對這章的一些關(guān)鍵點進(jìn)行講解。

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

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

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

其中

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

高倆位二進(jìn)制數(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ù)包,所以長度標(biāo)識非常重要,它可以幫助軟件的實現(xiàn)根據(jù)包的長度迅速分離出包內(nèi)的數(shù)據(jù)。

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

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

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


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

0x80 Connect 標(biāo)識申請開始一個對象傳輸會話,并可以在這個數(shù)據(jù)包中告知紅外接收方一些必要的兼容性信息。
0x81 Disconnect 標(biāo)識對象傳輸會話結(jié)束
0x020x82 PutFinal_Put 發(fā)送對象的put動作(當(dāng)標(biāo)識為0x82時說明這是最后的一個Put動作)
0xA0 Success 說明接收端已成功收到put動作發(fā)送的所有數(shù)據(jù)(一般是在成功收到Final_Put標(biāo)識的數(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-14 13:15:09

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

2009-10-28 10:51:32

VB.NET默認(rèn)屬性

2009-11-02 09:21:04

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

2009-10-14 10:19:57

VB.NET Doma

2009-10-15 17:50:48

VB.NET Spli

2009-10-13 14:50:59

VB.NET Envi

2009-10-26 15:57:07

VB.NET使用Ora

2009-10-14 14:04:29

VB.NET創(chuàng)建Web

2009-10-20 10:23:08

VB.NET多線程編程

2009-10-23 14:06:07

VB.NET類對象

2009-11-03 10:51:33

VB.NET共享

2009-10-27 11:32:42

VB.NET Disp

2009-10-21 10:05:30

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

2009-10-14 16:46:25

VB.NET OnSt

2009-11-03 10:00:20

VB.NET New方

2009-10-14 15:34:29

VB.NET窗體編程模

2009-10-15 17:33:45

VB.NET日期類型

2009-10-28 14:44:43

VB.NET Name

2009-10-29 16:23:42

VB.NET實現(xiàn)IEn

2009-11-02 17:49:05

VB.NET抽象類
點贊
收藏

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