首先,需要特別感謝藍斯老師的資料,我這里有很大一部分是參考藍斯老師的,附上傳送門:http://blog.csdn.net/lancees/article/details/9178385

一、DLNA相關設備說明

  DMS:Digital Media Server的縮寫,把本設備內的多媒體文件(自己控制需要共享哪些文件)到DLNA服務端;

  DMP:Digital Media Player的縮寫,可以搜索局域網內,所有DMS提供的多媒體內容,并在本設備播放;

  DMC:Digital MediaController的縮寫,作為控制DMP搜索播放DMS的內容,與DMP不同,DMC可以控制局域網內的其他設備的DMS和DMP之間的交互,比如,pad作為DMS,機頂盒做DMP,手機用做DMC,三個設備在同一局域網內,手機可以直接控制讓機頂盒播放pad里面共享出來的多媒體;

  DMR:Digital Render的縮寫,作用:DMP+DMR。

 

  一般來說,播放器中的DLNA功能具有DMS+DMC功能,如PPTV等,也就是說播放器能夠找到該局域網下的DMP服務端,同時能把自己的多媒體文件推送到DMP上

  而作為服務端一般會實現DMR功能,即可以播放DMS上的多媒體文件。

  DLNA技術是采用upnp協議進行通信傳輸。

 

二、UPnP設備工作過程

  UPnP定義了設備之間、設備和控制點、控制點之間通訊的協議。完整的UPnP由設備尋址、設備發(fā)現、設備描述、設備控制、事件通知和基于Html的描述界面幾部分構成。

iOS培訓,Swift培訓,蘋果開發(fā)培訓,移動開發(fā)培訓

 

  1.設備尋址

    uPnP網絡的基礎就是TCP/IP協議族,UPnP設備能在TCP/IP協議下工作的關鍵就是正確的設備尋址。一個UPnP設備尋址的一般過程是:首先向 DHCP服務器發(fā)送DHCPDISCOVER消息,如果在指定的時間內,設備沒有收到DHCPOFFERS回應消息,設備必須使用 Auto-IP完成IP地址的設置。使用Auto-IP時,設備在地址范圍169.254/169.16范圍中查找空閑的地址。在選中一個地址之后,設備測試此地址是否在使用。如果此地址被占用,則重復查找過程直到找到一個未被占用的地址,此過程的執(zhí)行需要底層操作系統的支持,地址的選擇過程應該是隨機的以避免多個設備選擇地址時發(fā)生多次沖突。為了測試選擇的地址是否未被占用,設備必須使用地址分辨協議(ARP)。一個ARP查詢請求設置發(fā)送者的硬件地址為設備的硬件地址,發(fā)送者的IP地址為全0。設備應該偵聽ARP查詢響應,或者是否存在具有相同IP地址的ARP查詢請求。如果發(fā)現,設備必須嘗試新的地址。

  2.設備發(fā)現

    一旦設備連接到網上并且分配了地址,就要進行發(fā)現的操作了。設備發(fā)現是UPnP網絡實現的第一步。設備發(fā)現是由簡單發(fā)現協議SSDP(Simple Service Discovery Protocol)來定義的。在設備發(fā)現操作之后,控制點可以發(fā)現感興趣的設備,并使得控制點獲得設備能力的描述,同時控制點也可以向設備發(fā)送命令,偵聽設備狀態(tài)的改變,并將設備展示給用戶。

  3.設備描述

    uPnP網絡結構的第二步是設備描述。在控制點發(fā)現了一個設備之后,控制點仍然對設備知之甚少,控制點可能僅僅知道設備或服務的uPnP類型,設備的UUID和設備描述的URL地址。為了讓控制點更多的了解設備和它的功能或者與設備交互,控制點必須從發(fā)現消息中得到設備描述的URL,通過URL取回設備描述。

  4.設備控制

    設備控制是uPnP網絡的第三步。在接收設備和服務描述之后,控制點可以向這些服務發(fā)出動作,同時控制點也可以輪詢服務的狀態(tài)變量值。發(fā)出動作實質上是一種遠程過程調用,控制點將動作送到設備服務,在動作完成之后,服務返回相應的結果。

  5.事件通知

    設備事件是uPnP網絡的第四步。一個服務的UPnP描述包括服務響應的動作列表和運行時模擬服務狀態(tài)的變量列表。當這些變量改變時,服務就會發(fā)布更新,則控制點就會收到設備事件。

  6.展示

    只要得到了設備的ULR,就可以取得該設備表達頁面的ULR,然后可以將此表達納入用戶的本地瀏覽器上。這部分還包括與用戶對話的界面,以及與用戶進行會話的處理。

 

三、開發(fā)步驟 

  1.下載PlatinumKit開源庫

    

網友評論