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

引用自: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指令,文本,HTTPPPP等)

舉例:
// 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>
            亚洲特色特黄| 久久久www成人免费毛片麻豆| 老司机午夜精品视频在线观看| 欧美亚洲日本国产| 国内成人自拍视频| 欧美va天堂va视频va在线| 女女同性女同一区二区三区91| 亚洲国产精品久久91精品| 欧美激情精品久久久久久黑人| 欧美精品九九99久久| 亚洲少妇在线| 欧美一区亚洲| 亚洲精品一区二区三区婷婷月 | 99国产精品国产精品久久| 亚洲精品免费看| 国产精品扒开腿做爽爽爽视频 | 久久精品一区二区三区四区| 久久蜜桃av一区精品变态类天堂| 亚洲高清不卡一区| 一区二区三区毛片| 好吊成人免视频| 亚洲人被黑人高潮完整版| 国产精品v欧美精品∨日韩| 久久国产免费看| 免费在线欧美黄色| 欧美一区视频在线| 欧美va亚洲va日韩∨a综合色| 亚洲在线免费视频| 久久婷婷麻豆| 亚洲女人天堂成人av在线| 久久久av毛片精品| 亚洲欧美国产三级| 猛干欧美女孩| 久久精品夜色噜噜亚洲a∨| 欧美肥婆在线| 久久久一区二区| 国产精品av免费在线观看| 欧美成人精品影院| 国产日韩欧美不卡| 日韩亚洲欧美成人| 狠狠做深爱婷婷久久综合一区 | 欧美成人黑人xx视频免费观看| 欧美日韩三级| 欧美mv日韩mv国产网站| 国产偷国产偷亚洲高清97cao| 亚洲欧洲免费视频| 亚洲二区视频在线| 欧美影院在线| 午夜视频一区在线观看| 欧美日韩四区| 亚洲国产精品一区二区尤物区| 国产综合欧美| 亚洲欧美日产图| 亚洲女ⅴideoshd黑人| 欧美日韩国产在线| 亚洲啪啪91| 亚洲激情电影在线| 久热爱精品视频线路一| 久久久久久久久伊人| 国产精品视频精品视频| 一区二区三区视频在线| 亚洲午夜免费视频| 欧美日韩三区| 99国内精品久久| 一区二区三区精品在线| 欧美日韩高清在线| 日韩视频在线免费| 亚洲午夜久久久久久久久电影网| 欧美精品乱码久久久久久按摩| 亚洲第一在线视频| 亚洲精品美女在线| 欧美国产先锋| 日韩视频在线一区二区| 一区二区三区波多野结衣在线观看| 欧美国产在线观看| 亚洲毛片一区二区| 亚洲自拍偷拍一区| 国产欧美一区二区三区在线看蜜臀| 亚洲男人的天堂在线| 久久se精品一区精品二区| 国产专区欧美精品| 久久久国产精品亚洲一区| 欧美成人午夜影院| 一区二区三区.www| 国产日韩欧美一区| 久久久久免费视频| 亚洲黄色免费电影| 亚洲一区二区精品在线观看| 国产精品一区二区视频| 久久国产精品第一页| 欧美国产日韩一区二区在线观看 | 国模一区二区三区| 模特精品裸拍一区| 国产精品99久久久久久人| 欧美在线视频不卡| 亚洲区免费影片| 国产精品成人一区| 久久蜜桃精品| aa级大片欧美三级| 久久一综合视频| 这里是久久伊人| 红桃视频成人| 欧美日韩999| 久久精品视频播放| 一本色道婷婷久久欧美| 麻豆精品视频在线观看视频| 一区二区三区四区五区精品| 国产亚洲欧洲997久久综合| 美玉足脚交一区二区三区图片| 亚洲丝袜av一区| 欧美激情中文不卡| 久久久7777| 亚洲一区激情| 91久久精品日日躁夜夜躁欧美| 国产精品久久久一本精品| 欧美成在线观看| 欧美在线视频一区二区三区| 99国产精品一区| 亚洲福利在线观看| 久久午夜激情| 香蕉久久国产| 宅男噜噜噜66一区二区| 亚洲国产婷婷香蕉久久久久久99| 国产欧美日本一区二区三区| 欧美日韩精品系列| 女同一区二区| 久久亚洲精品欧美| 欧美一区二区在线免费播放| 亚洲无毛电影| 一区二区三区日韩精品| 亚洲精品之草原avav久久| 女人色偷偷aa久久天堂| 久久久久五月天| 久久gogo国模裸体人体| 亚洲欧美在线免费观看| 99精品99久久久久久宅男| 亚洲高清视频在线| 精品动漫av| 韩国一区二区三区在线观看| 国产日韩精品一区二区三区在线| 国产精品极品美女粉嫩高清在线| 欧美男人的天堂| 欧美激情一区二区三区蜜桃视频| 美女在线一区二区| 蜜臀av性久久久久蜜臀aⅴ四虎| 久久久精品一区| 狂野欧美一区| 欧美1区3d| 欧美人成在线| 国产精品hd| 国产精品一区二区久久久| 国产女主播在线一区二区| 国产精品网曝门| 国产亚洲精品久久久久婷婷瑜伽| 国产日韩欧美亚洲一区| 黑人操亚洲美女惩罚| 亚洲第一区在线观看| 亚洲欧洲一二三| a91a精品视频在线观看| 亚洲综合精品| 久久成人精品无人区| 久久三级视频| 欧美激情视频在线播放 | 亚洲综合色自拍一区| 午夜免费电影一区在线观看| 欧美在线观看视频| 久久国产精品亚洲va麻豆| 免费在线欧美黄色| 亚洲国产专区校园欧美| 一区二区国产精品| 欧美一区二区三区在线观看| 久久在线免费观看视频| 欧美喷潮久久久xxxxx| 国产欧美日韩视频一区二区三区| 极品av少妇一区二区| 一本久久a久久精品亚洲| 亚洲欧美日韩久久精品| 快播亚洲色图| 宅男在线国产精品| 久久在线精品| 国产精品久久久久影院色老大| 狠狠综合久久av一区二区老牛| 亚洲精品久久久蜜桃| 午夜欧美理论片| 欧美高清视频一区| 亚洲在线电影| 嫩草成人www欧美| 国产伦精品一区二区三区免费| 亚洲经典三级| 久久精品国产精品亚洲综合 | 欧美在线精品一区| 亚洲国产精品视频一区| 亚洲欧美日韩精品久久亚洲区| 蜜桃av一区二区| 国产婷婷色一区二区三区在线| 9国产精品视频| 久久综合一区| 亚洲女爱视频在线| 欧美日韩一区二区三区在线| 亚洲国产日本|