示例性實(shí)施例示出的一種第一接收模塊的框圖;
[0075] 圖4-5根據(jù)一示例性實(shí)施例示出的另一種發(fā)送模塊的框圖;
[0076] 圖5是根據(jù)一示例性實(shí)施例示出的又一種服務(wù)響應(yīng)裝置的框圖。
[0077] 此處的附圖被并入說明書中并構(gòu)成本說明書的一部分,示出了符合本公開的實(shí)施 例,并與說明書一起用于解釋本公開的原理。
【具體實(shí)施方式】
[0078] 為了使本公開的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合附圖對(duì)本公開作進(jìn) 一步地詳細(xì)描述,顯然,所描述的實(shí)施例僅僅是本公開一部份實(shí)施例,而不是全部的實(shí)施 例?;诒竟_中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)前提下所獲得的 所有其它實(shí)施例,都屬于本公開保護(hù)的范圍。
[0079] 圖1是根據(jù)相關(guān)技術(shù)示出的一種服務(wù)響應(yīng)方法所涉及的實(shí)施環(huán)境的示意圖。該實(shí) 施環(huán)境可以包括:位于同一局域網(wǎng)絡(luò)中的至少兩個(gè)終端10,例如,如圖1所示,該實(shí)施環(huán)境 可以包括兩個(gè)終端101和102。該至少兩個(gè)終端10可以為智能手機(jī)、電腦、多媒體播放器、 電子閱讀器、可穿戴式設(shè)備等。該至少兩個(gè)終端10之間可以通過有線網(wǎng)絡(luò)或無線網(wǎng)絡(luò)建立 連接。
[0080] 其中,若終端101中安裝有支持簡單服務(wù)發(fā)現(xiàn)協(xié)議(英文:Simple Service Discovery Protocol ;簡稱:SSDP)的客戶端,終端102中安裝有支持SSDP的服務(wù)端,則該 終端102中的服務(wù)端可以占用SSDP端口,并在該SSDP端口接收終端101中的客戶端發(fā)送 的服務(wù)發(fā)現(xiàn)請(qǐng)求。
[0081] 但是,如果終端102中安裝有多個(gè)支持SSDP的服務(wù)端,則該多個(gè)服務(wù)端都需要占 用該SSDP端口來接收客戶端發(fā)送的服務(wù)發(fā)現(xiàn)請(qǐng)求,因此會(huì)導(dǎo)致端口沖突。
[0082] 圖2是根據(jù)一示例性實(shí)施例示出的一種服務(wù)響應(yīng)方法的流程圖,如圖2所示,該方 法包括:
[0083] 在步驟201中,通過SSDP端口接收客戶端發(fā)送的服務(wù)發(fā)現(xiàn)請(qǐng)求,該服務(wù)發(fā)現(xiàn)請(qǐng)求 中包括請(qǐng)求的服務(wù)類型,該SSDP端口被預(yù)設(shè)的SSDP服務(wù)端占用。
[0084] 在步驟202中,根據(jù)預(yù)設(shè)的服務(wù)類型和服務(wù)端的地址信息的對(duì)應(yīng)關(guān)系,獲取該請(qǐng) 求的服務(wù)類型對(duì)應(yīng)的目標(biāo)地址信息,該對(duì)應(yīng)關(guān)系中記錄的服務(wù)端為該SSDP服務(wù)端所在終 端中安裝的支持SSDP的服務(wù)端。
[0085] 在步驟203中,向該客戶端發(fā)送服務(wù)響應(yīng)消息,該服務(wù)響應(yīng)消息包括該目標(biāo)地址 信息和目標(biāo)版本信息,以使得該客戶端根據(jù)該服務(wù)響應(yīng)消息,向該目標(biāo)地址信息對(duì)應(yīng)的服 務(wù)端發(fā)送服務(wù)請(qǐng)求消息。
[0086] 綜上所述,本公開實(shí)施例提供的一種服務(wù)響應(yīng)方法,終端通過SSDP端口接收客戶 端發(fā)送的服務(wù)發(fā)現(xiàn)請(qǐng)求后,可以根據(jù)預(yù)設(shè)的服務(wù)類型和服務(wù)端的地址信息的對(duì)應(yīng)關(guān)系,獲 取該服務(wù)發(fā)現(xiàn)請(qǐng)求所請(qǐng)求的服務(wù)類型對(duì)應(yīng)的目標(biāo)地址信息,并向該客戶端發(fā)送服務(wù)響應(yīng)消 息,因此當(dāng)終端安裝有多個(gè)支持SSDP的服務(wù)端時(shí),該多個(gè)服務(wù)端除占用SSDP端口的服務(wù)端 (即SSDP服務(wù)端)之外的其他服務(wù)端也能響應(yīng)客戶端發(fā)送的服務(wù)發(fā)現(xiàn)請(qǐng)求,解決了終端中 端口沖突的問題。
[0087] 可選的,該方法還包括:
[0088] 確定該SSDP服務(wù)端所在終端安裝的多個(gè)服務(wù)端中支持SSDP的服務(wù)端;
[0089] 獲取每個(gè)該支持SSDP的服務(wù)端的配置信息,該配置信息中包括該服務(wù)類型和服 務(wù)端的地址信息;
[0090] 根據(jù)每個(gè)該支持SSDP的服務(wù)端的配置信息建立該對(duì)應(yīng)關(guān)系。
[0091] 可選的,該方法還包括:
[0092] 接收配置在該SSDP服務(wù)端的該對(duì)應(yīng)關(guān)系。
[0093] 可選的,該服務(wù)發(fā)現(xiàn)請(qǐng)求還包括最長等待時(shí)長,該最長等待時(shí)長用于指示該客戶 端發(fā)送服務(wù)發(fā)現(xiàn)請(qǐng)求后,允許接收服務(wù)響應(yīng)消息的時(shí)長,該方法還包括:
[0094] 檢測(cè)預(yù)設(shè)時(shí)間段內(nèi),通過該SSDP端口接收的服務(wù)發(fā)現(xiàn)請(qǐng)求的個(gè)數(shù);
[0095] 該向該客戶端發(fā)送服務(wù)響應(yīng)消息,包括:
[0096] 當(dāng)該服務(wù)發(fā)現(xiàn)請(qǐng)求的個(gè)數(shù)等于1時(shí),向該服務(wù)發(fā)現(xiàn)請(qǐng)求對(duì)應(yīng)的客戶端發(fā)送服務(wù)響 應(yīng)消息;
[0097] 當(dāng)該服務(wù)發(fā)現(xiàn)請(qǐng)求的個(gè)數(shù)大于1時(shí),按照該最長等待時(shí)長對(duì)該服務(wù)發(fā)現(xiàn)請(qǐng)求進(jìn)行 升序排序得到響應(yīng)優(yōu)先級(jí)列表;
[0098] 按照該響應(yīng)優(yōu)先級(jí)列表向各個(gè)該服務(wù)發(fā)現(xiàn)請(qǐng)求對(duì)應(yīng)的客戶端發(fā)送服務(wù)響應(yīng)消息。
[0099] 可選的,該通過簡單服務(wù)發(fā)現(xiàn)協(xié)議SSDP端口接收客戶端發(fā)送的服務(wù)發(fā)現(xiàn)請(qǐng)求,包 括:
[0100] 通過該SSDP端口接收客戶端發(fā)送的請(qǐng)求報(bào)文,該請(qǐng)求報(bào)文攜帶有該服務(wù)發(fā)現(xiàn)請(qǐng) 求和該客戶端的地址信息;
[0101] 解析該請(qǐng)求報(bào)文得到該服務(wù)發(fā)現(xiàn)請(qǐng)求和該客戶端的地址信息;
[0102] 該向該客戶端發(fā)送服務(wù)響應(yīng)消息,包括:
[0103] 根據(jù)該客戶端的地址信息,向該客戶端發(fā)送服務(wù)響應(yīng)消息。
[0104] 綜上所述,本公開實(shí)施例提供的一種服務(wù)響應(yīng)方法,終端通過SSDP端口接收客戶 端發(fā)送的服務(wù)發(fā)現(xiàn)請(qǐng)求后,可以根據(jù)預(yù)設(shè)的服務(wù)類型和服務(wù)端的地址信息的對(duì)應(yīng)關(guān)系,獲 取該服務(wù)發(fā)現(xiàn)請(qǐng)求所請(qǐng)求的服務(wù)類型對(duì)應(yīng)的目標(biāo)地址信息,并向該客戶端發(fā)送服務(wù)響應(yīng)消 息,因此當(dāng)終端安裝有多個(gè)支持SSDP的服務(wù)端時(shí),該多個(gè)服務(wù)端除占用SSDP端口的服務(wù)端 (即SSDP服務(wù)端)之外的其他服務(wù)端也能響應(yīng)客戶端發(fā)送的服務(wù)發(fā)現(xiàn)請(qǐng)求,解決了終端中 端口沖突的問題。
[0105] 圖3-1是本公開實(shí)施例示出的一種服務(wù)響應(yīng)方法所涉及的實(shí)施環(huán)境的示意圖,如 圖3-1所示,該實(shí)施環(huán)境包括:位于同一局域網(wǎng)絡(luò)中的終端31和終端32,該終端31和終端 32之間可以通過有線網(wǎng)絡(luò)或無線網(wǎng)絡(luò)建立連接。其中,終端31中可以安裝有支持SSDP的 客戶端,終端32中可以安裝有多個(gè)支持SSDP的服務(wù)端,且該終端32的SSDP端口由預(yù)設(shè)的 SSDP服務(wù)端占用。該安裝有客戶端的終端31可以為手機(jī)、電腦、電子閱讀器和智能電視等, 該安裝有服務(wù)端的終端32可以為智能手機(jī)、電腦和路由器等。示例的,如圖3-1所示,終端 31可以為電視,終端32可以為路由器,該電視中安裝的客戶端可以向路由器中安裝的SSDP 服務(wù)端發(fā)送服務(wù)發(fā)現(xiàn)請(qǐng)求,路由器中的SSDP服務(wù)端可以根據(jù)該客戶端請(qǐng)求的服務(wù)類型,返 回相應(yīng)的目標(biāo)地址信息和目標(biāo)版本信息。
[0106] 圖3-2是根據(jù)一示例性實(shí)施例示出的另一種服務(wù)響應(yīng)方法的流程圖,該方法可以 應(yīng)用于圖3-1所示的實(shí)施環(huán)境中,則如圖3-2所示,該服務(wù)響應(yīng)方法包括:
[0107] 在步驟301中,客戶端向SSDP服務(wù)端發(fā)送請(qǐng)求報(bào)文,該請(qǐng)求報(bào)文攜帶有服務(wù)發(fā)現(xiàn) 請(qǐng)求和該客戶端的地址信息。
[0108] 在本公開實(shí)施例中,該SSDP服務(wù)端為終端32中預(yù)設(shè)的占用該終端32的SSDP端 口的服務(wù)端,該SSDP服務(wù)端可以為終端32中安裝的多個(gè)支持SSDP的服務(wù)端中的一個(gè)服務(wù) 端,也可以為該終端32中設(shè)置的專用于占用該SSDP端口,但無需向客戶端提供服務(wù)的服務(wù) 端。示例的,假設(shè)終端32中安裝的支持SSDP的服務(wù)端包括服務(wù)端A和服務(wù)端B,則該終端 32中的SSDP端口可以由服務(wù)端A和服務(wù)端B中的任一服務(wù)端占用,例如可以由服務(wù)端A占 用;該終端32的SSDP端口還可以由終端32中預(yù)設(shè)的服務(wù)端C占用,該服務(wù)端C為終端中 設(shè)置的專用于占用SSDP端口并接收客戶端發(fā)送的服務(wù)發(fā)現(xiàn)請(qǐng)求的服務(wù)端,該服務(wù)端C可以 不具備向客戶端提供服務(wù)的功能。
[0109] 在步驟302中,SSDP服務(wù)端解析該請(qǐng)求報(bào)文得到該服務(wù)發(fā)現(xiàn)請(qǐng)求和該客戶端的地 址信息,該服務(wù)發(fā)現(xiàn)請(qǐng)求中包括請(qǐng)求的服務(wù)類型。
[0110] 在本公開實(shí)施例中,該客戶端的地址信息可以為該客戶端的互聯(lián)網(wǎng)協(xié)議(英文: Internet Protocol ;簡稱:IP)地址。在SSDP中,客戶端發(fā)送的服務(wù)發(fā)現(xiàn)請(qǐng)求的形式如下 所示:
[0111] HOST :239. 255. 255. 250:1900
[0112] MAN:"ssdp:discover"
[0113] ST:urn:schemas-upnp-〇rg:device:MediaServer: I. 0. 0
[0114] MX: 3
[0115] 在上述代碼中,Host、Man、ST、MX均為超文本傳輸協(xié)議(英文:HyperText Transfer Protocol ;簡稱:HTTP,)中的協(xié)議頭,該各個(gè)協(xié)議頭的含義為:
[0116] HOST :表示SSDP協(xié)議中保留的多播地址和端口,在IPv4中,該多播地址為: 239. 255. 255. 250,該多播端口的端口號(hào)為1900。
[0117] MN:表示協(xié)議查詢的類型,對(duì)于客戶端發(fā)送的服務(wù)發(fā)現(xiàn)請(qǐng)求,該查詢的類型為: ssdp: discover,即服務(wù)發(fā)現(xiàn)請(qǐng)求。
[0118] MX(全稱:Maximum time ;中文:最長等待時(shí)長):表示服務(wù)端響應(yīng)最長等待時(shí)間。
[0119] ST(全稱=Service Type;中文:服務(wù)類型):表示服務(wù)查詢的目標(biāo),即客戶端所查 詢的服務(wù)類型,在SSDP中,ST為下述類型中的任意一個(gè)類型:(l) SSdp:all,表示搜索所有 服務(wù)端和服務(wù);(2)upnp:rootdevice,表示僅搜索網(wǎng)絡(luò)中的服務(wù)端;(3)uuid:device_UUID, 表示查詢通用唯一識(shí)別碼(英文:Universally Unique Identifier ;簡稱:UUID)標(biāo)識(shí)的服 務(wù)端;(4)urn: schemas-upnp-〇rg:device:device_Type: version,表不查詢 device-Type 字段指定的服務(wù)端類型,服務(wù)端類型由通用即插即用(英文=Universal Plug and Play ;簡 稱:UPNP)組織定義;(5)urn: schemas-upnp-〇rg: service:service_Type: version,表不查 詢service-Type字段指定的服務(wù)類型,服務(wù)類型由UPNP組織定義。關(guān)于上述服務(wù)發(fā)現(xiàn)請(qǐng) 求中各協(xié)議頭的詳細(xì)介紹,可以參考相關(guān)技術(shù),本公開實(shí)施例在此不做贅述。
[0120] 在步驟303中,SSDP服務(wù)端根據(jù)預(yù)設(shè)的服務(wù)類型和服務(wù)端的地址信息的對(duì)應(yīng)關(guān) 系,獲取該請(qǐng)求的服務(wù)類型對(duì)應(yīng)的目標(biāo)地址信息。
[0121] 在本公開實(shí)施例中,SSDP服務(wù)端所在的終端中可以存儲(chǔ)有服務(wù)類型和服務(wù)端的地 址信息的對(duì)應(yīng)關(guān)系,該對(duì)應(yīng)關(guān)系中記錄的服務(wù)端為該SSDP服務(wù)端所在終端中安裝的支持 SSDP的服務(wù)端。SSDP服務(wù)端可以從該對(duì)應(yīng)關(guān)系中,獲取客戶端所請(qǐng)求的服務(wù)類型所對(duì)應(yīng)的 目標(biāo)地址信息。進(jìn)一步的,該SSDP服務(wù)端所在的終端中還可以存儲(chǔ)有服務(wù)類型和服務(wù)端的 版本信息的對(duì)應(yīng)關(guān)系,SSDP服務(wù)端還可以從該對(duì)應(yīng)關(guān)系中,獲取客戶端所請(qǐng)求的服務(wù)類型 所對(duì)應(yīng)的目標(biāo)版本信息。因此,當(dāng)終端中安裝有多個(gè)支持SSDP的服務(wù)端時(shí),該多個(gè)服務(wù)端 不需要占用該終端的SSDP端口也能為客戶端提供多種不同類型的SSDP服務(wù)。
[0122] 在本公開實(shí)施例中,SSDP服務(wù)端可以通過兩種方式獲取該服務(wù)類型和服務(wù)端的地 址信息的對(duì)應(yīng)關(guān)系。圖3-3是根據(jù)一示例性實(shí)施例示出的一種SSDP服務(wù)端獲取服務(wù)類型 和服務(wù)端的地址信息的對(duì)應(yīng)關(guān)系的方法流程圖,如圖3-3所示,該方法包括:
[0123] 在步驟3031a中,確定SSDP服務(wù)端所在終端安裝的多個(gè)服務(wù)端中支持SSDP的服 務(wù)端。
[012