青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

引用自:http://www.sf.org.cn/Article/symbiandev/200509/183.html

如何尋找和連接到遠程設備

當一個應用程序連接到遠程設備以便應用其某個服務時,我們需要幾個步驟:首先看看是否有想要與之通信的設備。然后察看所需要的服務是否可用。最后,應用程序需要進行連接,另外可能還需要進行些安全措施

下面幾個主題將依次介紹相關步驟:

選擇遠程設備的方法
如何查詢遠程設備

如何查詢遠程設備上的服務

如何同遠程設備連接和傳輸數據

如何在外連的套接字上應用安全措施

選擇遠程設備的方法

一個應用程序能通過下列方法決定哪個遠程設備是他通信的對象:

·         固定的連接

·         實現存儲的配置

·         由用戶選擇

·         程序自動決定

上面每一個都可能由它合適的情況。前兩個方法中,遠端設備的地址只需要簡單的從存儲出取出。而第三種方法則普遍在藍牙UI中提供。

最后一種程序自動選擇遠程設備中,可能在下列情況中應用:

·         為用戶提供可定制的設備選擇UI

·         在某些特別情況下選擇設備,比如“選擇最空閑的LAN接入點”

如何查詢遠程設備
每個藍牙設備在其硬件中都有唯一的48位地址。一個范圍內基本的設備查詢將返回零或幾個此類地址。

除了這個地址,藍牙設備也還有一個文本名字顯示給用戶。如果你希望顯示可用設備的列表給用戶,你也要獲取這些名字以便顯示。

如果底層硬件支持,地址和名字也可以同時被查詢。否則,地址的查詢必須在名字查詢請求發送前完成

泛化套接字類RhostResolver用來完成地址和設備名的查詢。另外TinquirySockAddr為專門的藍牙套接字地址類,里面封裝了藍牙地址,查詢入口代碼,用來提供相關查詢的服務和設備類。

獲得遠程設備的地址
下面步驟用來查詢遠程設備的地址:

1.    連接到套接字服務器(RSocketServ),然后用RSocketServ::FindProtocol()選擇使用的協議。由于名字和地址的查詢由堆棧的BTLinkManager協議層支持,所以選擇它。

2.    創建并初始化一個RhostResolver對象。

3.    設置TinquirySockAddr參數以便查詢:對于地址查詢, KHostResInquiry標志需要通過TInquirySockAddr::SetAction()設置好。

然后可以通過RHostResolver::GetByAddress()開始查詢。

如何查詢遠程設備的服務
一個遠程設備可以有一個或者多個藍牙服務提供者。服務的廣泛指示器可以從設備的類中讀出。這樣可以用來選擇合適的設備圖標現實給用戶。這個設備的類可以在查詢地址后用TInquirySockAddr::MajorClassOfDevice()獲得。

在特定環境,設備的類提供的粗級別的服務發現并不能滿足對設備的選擇條件。這樣,這樣,服務發現請求可以用來判斷是否為適合的選擇。但只有在必需的時后才應該應用,因為它需要一些額外時間來對每個設備進行SDP請求。SDP請求通過藍牙發現代理API來進行。

如何同遠程設備連接和傳輸數據
一旦設備和服務確定了,你就能夠連接到遠程設備并開始使用了

通過泛化的Symbian OS套接字借口RsocketConnect()函數連接到設備。藍牙套接字可以用L2CAPRFCOMM協議打開。對于一個L2CAP藍牙套接字,端口(port)是用來連接的協議/服務多路復用器 (PSM);對于RFCOMM,端口是服務器頻道。如果這些值不知道,可以通過讀取服務屬性ProtocolDescriptorList來獲得。詳情參見使用藍牙服務發現代理

你能夠通過套接字使用目標服務期望的格式讀寫數據(AT指令,文本,HTTP,PPP等)

舉例:
// Assume have a TInquirySockAddr object, addr, with relevant device info

// Connect an L2CAP socket
RSocket socket;
TRequestStatus status;
User::LeaveIfError(socket.Open(socketServ,KBTAddrFamily,KSockSeqPacket,KL2CAP));
User::LeaveIfError(socket.Connect(addr,status));
User::WaitForRequest(status);

if (status == KErrNone)
    {
    // Write some simple data
    _LIT8(KDataToWrite,"01234");
    socket.Write(KDataToWrite,status);
    User::WaitForRequest(status);
    }

// Close socket
socket.Close();

注意:
·         對于RFCOMML2CAP協議,沒有數據可以在Connect() Shutdown() 調用中送出,否則會導致獲得額外數據的錯誤。

·         RFCOMM使用流套接字類型(KSockStream)。

·         L2CAP使用序列包的套接字類型 (KsockSeqPacket)。

如何在外連的套接字上應用安全措施
對于一個外連接(outgoing connection),默認情況下藍牙堆棧不會由具體的安全措施。如果遠程設備需要認證或編碼連接,那堆棧會直接體現到應用程序。

有時候,本地程序也需要保證認證或編碼連接。可以對RSocket用控制操作(ioctls)來認證(ioctl KHCIAuthRequestIoctl) 或者編碼 (KHCIEncryptIoctl) 連接。

舉例
下面的例子就將對認證請求應用了ioctl

// Assume have an opened L2CAP RSocket object, socket
socket.Ioctl(KHCIAuthRequestIoctl, status, NULL, KSolBtHCI);
User::WaitForRequest(status);
if (status==KErrNone)
    {
    \\ Success...

ps: 偶也在學習中,如有錯誤請多指教。

posted on 2006-02-25 05:15 移動開發 閱讀(721) 評論(0)  編輯 收藏 引用

只有注冊用戶登錄后才能發表評論。
網站導航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


 
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲午夜一区二区三区| 一本一本久久| 久久久国产精彩视频美女艺术照福利| 亚洲精品一区二区在线| 欧美大秀在线观看| 在线视频欧美日韩精品| 亚洲精品乱码久久久久| 欧美激情国产日韩| avtt综合网| 一区二区欧美在线| 国产精品不卡在线| 久久成人精品一区二区三区| 欧美一区二区精品| 一区二区三区在线免费播放| 牛牛影视久久网| 农村妇女精品| 亚洲一区自拍| 久久久不卡网国产精品一区| 亚洲成色777777在线观看影院| 欧美成人视屏| 欧美三级在线视频| 久久国产手机看片| 麻豆精品视频在线观看| 亚洲伦理中文字幕| 亚洲欧美日韩视频一区| 在线播放日韩专区| 亚洲人人精品| 国产一区二区精品久久| 亚洲国产成人av| 性欧美在线看片a免费观看| 亚洲欧美日韩直播| 亚洲动漫精品| 亚洲一区二区免费视频| 亚洲高清精品中出| 亚洲视频电影在线| 亚洲福利视频三区| 国产精品99久久久久久白浆小说| 国产主播精品在线| 亚洲精品网站在线播放gif| 国产精品自在在线| 亚洲精品影视| 国产一区二区三区直播精品电影| 亚洲高清在线精品| 国产一区视频在线看| 亚洲精品国产精品乱码不99 | 亚洲国产精品99久久久久久久久| 欧美精品一区视频| 久久综合九色| 国产精品区一区| 亚洲人成亚洲人成在线观看图片| 国产亚洲aⅴaaaaaa毛片| 亚洲精品小视频| 亚洲第一福利视频| 亚洲欧美日韩直播| 午夜精品福利视频| 欧美日韩一卡二卡| 91久久香蕉国产日韩欧美9色| 国产亚洲精品一区二区| 亚洲一区二区少妇| 亚洲欧美日本国产专区一区| 欧美精品乱码久久久久久按摩| 六月婷婷一区| 国产在线视频欧美一区二区三区| 亚洲天堂网在线观看| 亚洲视频二区| 欧美日韩裸体免费视频| 亚洲国产一区二区三区a毛片| 亚洲高清av在线| 久久深夜福利免费观看| 久久精品一二三区| 国产欧美一区二区精品忘忧草| 亚洲午夜黄色| 欧美日韩亚洲91| 欧美激情一区在线观看| 国产亚洲成年网址在线观看| 亚洲欧洲免费视频| 亚洲欧洲在线视频| 另类国产ts人妖高潮视频| 久久精品国产精品亚洲综合| 国产精品v日韩精品v欧美精品网站| 欧美成人小视频| 黄色成人av在线| 欧美一区免费| 久久看片网站| 国产亚洲综合性久久久影院| av成人免费观看| 亚洲在线中文字幕| 国产精品草莓在线免费观看| 日韩视频在线观看国产| 日韩午夜激情av| 欧美sm极限捆绑bd| 亚洲国产精品成人综合色在线婷婷| 一区在线影院| 久久综合网络一区二区| 久久精品国产亚洲aⅴ| 在线精品福利| 另类国产ts人妖高潮视频| 欧美福利网址| 亚洲欧洲在线一区| 欧美日韩国产三级| 日韩一区二区精品| 亚洲在线成人精品| 国产精品视频午夜| 久久精品免费播放| 亚洲韩国一区二区三区| 99热免费精品| 欧美午夜视频网站| 午夜久久久久| 蜜桃精品一区二区三区| 99re热这里只有精品视频| 久久婷婷综合激情| 亚洲激情影视| 午夜国产精品影院在线观看 | 亚洲欧洲免费视频| 欧美一区二区三区在线免费观看 | 亚洲国产成人午夜在线一区| 在线精品高清中文字幕| 欧美伦理91i| 亚洲午夜激情免费视频| 久久久久女教师免费一区| 亚洲高清影视| 欧美日韩一区二区国产| 午夜精品福利在线| 亚洲福利国产| 欧美亚洲一级| 国产日韩精品入口| 欧美人成在线| 欧美中文在线免费| 91久久午夜| 久久精品亚洲一区二区三区浴池| 亚洲国产日韩欧美综合久久| 欧美视频一区二区三区…| 欧美在线免费一级片| 玖玖玖国产精品| 欧美中文在线视频| 亚洲精品国产视频| 国产日韩视频一区二区三区| 久久精品在线| 亚洲国产精品成人| 久久一本综合频道| 欧美一区二区三区久久精品茉莉花| 亚洲国产婷婷香蕉久久久久久| 国产精品视频一| 欧美激情精品久久久久久变态 | 99riav国产精品| 国产精品素人视频| 欧美高清视频在线观看| 久久久国产一区二区| 亚洲小说区图片区| 亚洲电影在线| 蜜桃久久精品乱码一区二区| 午夜久久电影网| 在线综合亚洲欧美在线视频| 在线成人激情黄色| 国产亚洲人成a一在线v站| 国产日韩精品一区二区三区在线| 欧美理论在线| 欧美激情bt| 欧美国产一区视频在线观看| 久久成人免费视频| 性做久久久久久久免费看| 亚洲国产精品视频一区| 久久天天综合| 久久―日本道色综合久久| 午夜精品久久久久久| 亚洲一区二区免费视频| 亚洲视频福利| 亚洲女人天堂成人av在线| 亚洲精品四区| 亚洲午夜精品久久久久久app| 亚洲免费成人av电影| 亚洲国内在线| 亚洲欧洲在线视频| 亚洲每日在线| 亚洲视频中文字幕| 亚洲图色在线| 欧美亚洲自偷自偷| 久久爱另类一区二区小说| 久久精品亚洲一区二区三区浴池| 欧美一区在线直播| 久久久久久夜| 亚洲激情国产| 一区二区高清| 亚洲欧美视频在线观看视频| 欧美一区二区三区精品电影| 久久本道综合色狠狠五月| 久久电影一区| 久久午夜电影网| 欧美午夜www高清视频| 国产精品视频福利| 国内精品视频666| 亚洲六月丁香色婷婷综合久久| 99re热这里只有精品视频| 99精品热视频只有精品10| 久久久成人网| 亚洲人被黑人高潮完整版| 中日韩高清电影网| 久久成人国产精品| 欧美精品手机在线| 狠狠色伊人亚洲综合成人|