時長,如果已經(jīng)超過預設的定時時長,執(zhí)行步驟623,如果未超過預設的定時時長,重新執(zhí)行步驟S621。
[0258]在步驟S623中,向超過預設的定時時長對應的客戶端發(fā)送詢問消息,執(zhí)行步驟S624。
[0259]在步驟S624中,確定是否接收到客戶端根據(jù)詢問消息返回的響應消息,對于接收到響應消息的客戶端,執(zhí)行步驟S625,對于未接收到響應消息的客戶端,執(zhí)行步驟S626。
[0260]在步驟S625中,更新返回響應消息的客戶端在服務資源列表中的定時時長,重新執(zhí)行步驟S621。
[0261]在步驟S626中,從服務資源列表中刪除未返回響應消息的客戶端的服務資源,并重新執(zhí)行步驟S621。
[0262]在本實施例中,每隔預設的間隔時長可以為15秒,通過間隔時長來主動查詢服務資源列表中已存儲的服務資源對應的存儲時長,從而可以實現(xiàn)對服務資源列表的主動維護。
[0263]本實施例中,通過上述方式維護本公開實施例中的服務資源列表,當服務資源列表中的任意一個客戶端由于設備被移除或者設備毀壞等因素不能再為局域網(wǎng)內(nèi)的其它客戶端提供服務資源列表中所記錄的服務類型時,可以及時將該客戶端在服務資源列表中刪除,從而可以提高服務資源列表記錄服務資源的準確性,減少路由器在接收到詢問報文時由于不能將提供服務類型的客戶端與需要服務的客戶端不能匹配時而向局域網(wǎng)內(nèi)發(fā)送組播請求。
[0264]圖7是根據(jù)一示例性實施例示出的一種在客戶端之間建立通信連接的裝置的框圖,如圖7所示,在客戶端之間建立通信連接的裝置包括:
[0265]接收模塊71,被配置為接收來自第一客戶端的詢問報文,詢問報文中攜帶有第一客戶端需要的服務類型;
[0266]第一確定模塊72,被配置為從服務資源列表中確定是否存在能夠提供接收模塊71接收到的詢問報文中攜帶的服務類型的第二客戶端;
[0267]第一發(fā)送模塊73,被配置為如果第一確定模72塊確定存在能夠提供服務類型的第二客戶端,向第一客戶端單播發(fā)送第一響應報文,第一響應報文攜帶有第二客戶端的第一網(wǎng)絡地址,以供第一客戶端通過第一網(wǎng)絡地址建立與第二客戶端的通信連接。
[0268]圖8是根據(jù)一示例性實施例示出的另一種在客戶端之間建立通信連接的裝置的框圖,在上述圖7所示實施例的基礎上,裝置還可包括:
[0269]第二確定模塊81,被配置為在接收模塊61接收來自第一客戶端的詢問報文之后,確定服務類型是否符合為第一客戶端設置的訪問權限;
[0270]如果第二確定模塊81確定符合訪問權限,第一確定模塊62執(zhí)行根據(jù)服務類型從服務資源列表中確定是否有能夠提供服務類型的第二客戶端的步驟;
[0271]第一丟棄模塊82,被配置為如果第二確定模塊81不符合訪問權限,丟棄詢問報文。
[0272]圖9是根據(jù)一示例性實施例示出的又一種在客戶端之間建立通信連接的裝置的框圖,在上述圖7所示實施例的基礎上,裝置還可包括:
[0273]查詢模塊91,被配置為在接收模塊71接收來自第一客戶端的詢問報文之后,從詢問會話表中查詢是否存在與詢問報文相匹配的會話表項;
[0274]更新模塊92,被配置為如果查詢模塊91查詢到存在會話表項,更新與會話表項相對應的定時器,第一確定模塊72執(zhí)行根據(jù)服務類型從服務資源列表中確定是否有能夠提供服務類型的第二客戶端;
[0275]第一創(chuàng)建模塊93,被配置為如果查詢模塊91查詢到不存在會話表項,創(chuàng)建與詢問報文相匹配的會話表項,啟動與會話表項相對應的定時器。
[0276]圖10是根據(jù)一示例性實施例示出的再一種在客戶端之間建立通信連接的裝置的框圖,在上述實施例的基礎上,如圖9所示,裝置還可包括:
[0277]第三確定模塊21,被配置為在接收模塊71接收來自第一客戶端的詢問報文之后,確定詢問報文中的問題字段是否為空;
[0278]第二丟棄模塊22,被配置為如果第三確定模塊21確定詢問報文中的問題字段為空,丟棄詢冋報文;
[0279]第一解析模塊23,被配置為如果第三確定模塊21確定詢問報文中的問題字段不為空,從詢問報文中解析第一客戶端的服務類型,第一確定模塊72執(zhí)行根據(jù)服務類型從服務資源列表中確定是否有能夠提供服務類型的第二客戶端的步驟。
[0280]在一實施例中,裝置還可包括:
[0281]第四確定模塊24,被配置為接收模塊接71收來自第一客戶端的詢問報文之后,確定詢問報文中的應答字段是否為空;
[0282]第二解析模塊25,被配置為如果第四確定模塊24確定詢問報文中的應答字段為空,從詢問報文中解析第一客戶端的服務資源,第一確定模塊71執(zhí)行根據(jù)服務類型從服務資源列表中確定是否有能夠提供服務類型的第二客戶端的步驟;
[0283]第三解析模塊26,被配置為如果第四確定模塊24確定詢問報文中的應答字段不為空,從應答字段中解析第一客戶端能夠提供的服務資源;
[0284]第一更新模塊27,被配置為根據(jù)第三解析模塊26解析出的第一客戶端能夠提供的服務資源更新服務資源列表。
[0285]在一實施例中,第一更新模塊27可包括:
[0286]確定子模塊271,被配置為確定服務資源列表中是否已記錄第三解析模塊26解析出的第一客戶端能夠提供的服務資源;
[0287]更新子模塊272,被配置為如果確定子模塊271確定已記錄第一客戶端能夠提供的服務資源,更新第一客戶端能夠提供的服務資源的生存時長;
[0288]創(chuàng)建子模塊273,被配置為如果確定子模塊271確定未記錄第一客戶端能夠提供的服務資源,在服務資源列表中為第一客戶端能夠提供的服務資源創(chuàng)建相對應的資源記錄。
[0289]圖11是根據(jù)一示例性實施例示出的還一種在客戶端之間建立通信連接的裝置的框圖,在上述實施例的基礎上,如圖11所示,裝置還可包括:
[0290]第二發(fā)送模塊31,被配置為如果第一確定模塊72確定服務資源列表中不存在能夠提供服務類型的第二客戶端,向路由器所在的局域網(wǎng)內(nèi)組播發(fā)送詢問報文;
[0291]第二接收模塊32,被配置為接收來自局域網(wǎng)內(nèi)的第三客戶端根據(jù)第二發(fā)送模塊31發(fā)送的詢問報文返回的第二響應報文;
[0292]第三發(fā)送模塊33,被配置為如果從第二接收模塊32接收到的第二響應報文中解析出符合第一客戶端需要的服務類型,向第一客戶端單播發(fā)送第二響應報文,第二響應報文攜帶第三客戶端的第二網(wǎng)絡地址,以供第一客戶端通過第二網(wǎng)絡地址建立與第三客戶端的通信連接。
[0293]在一實施例中,裝置還可包括:
[0294]第五確定模塊34,被配置為第二接收模塊32接收到來自局域網(wǎng)內(nèi)的第三客戶端根據(jù)詢問報文返回的第二響應報文之后,確定第二響應報文中的應答字段是否為空;
[0295]第三丟棄模塊35,被配置為如果第五確定模塊34確定第二響應報文中的應答字段為空,丟棄第二響應報文;
[0296]第四解析模塊36,被配置為如果第五確定模塊34確定第二響應報文中的應答字段不為空,從第二響應報文的應答字段中解析出第三客戶端所提供的服務資源。
[0297]在一實施例中,裝置還可包括:
[0298]第六確定模塊37,被配置為確定服務資源列表中是否已記錄第三客戶端能夠提供的服務資源;
[0299]第二更新模塊38,被配置為如果第六確定模塊36確定已記錄第三客戶端能夠提供的服務資源,更新第三客戶端能夠提供的服務資源的生存時長;
[0300]第二創(chuàng)建模塊39,被配置為如果第六確定模塊36確定未記錄第三客戶端能夠提供的服務資源,在服務資源列表中為第三客戶端能夠提供的服務資源創(chuàng)建相對應的資源記錄。
[0301]圖12是根據(jù)一示例性實施例示出的還另一種在客戶端之間建立通信連接的裝置的框圖,在上述實施例的基礎上,如圖12所示,裝置還可包括:
[0302]第七確定模塊41,被配置為確定服務資源列表中所記錄的各個客戶端的服務資源對應的生存時長;
[0303]第八確定模塊42,被配置為根據(jù)第七確定模塊41確定的生存時長和定時器所記錄的在服務資源列表中的已過時長確定是否需要向各個客戶端發(fā)送詢問請求,以確定各個客戶端是否仍能夠提供服務資源列表中所記錄的服務類型。
[0304]在一實施例中,裝置還可包括:
[0305]第三更新模塊43,被配置為對于根據(jù)詢問消息返回響應消息的客戶端,在服務資源列表中更新返回響應消息的客戶端對應的生命時長;
[0306]刪除模塊44,被配置為對于根據(jù)詢問消息未返回響應消息的客戶端,將未返回響應消息的客戶端在服務資源列表中所記錄的資源信息刪除。
[0307]關于上述實施例中的裝置,其中各個模塊執(zhí)行操作的具體方式已經(jīng)在有關該方法的實施例中進行了詳細描述,此處將不做詳細闡述說明。
[0308]圖13是根據(jù)一示例性實施例示出的一種適用于控制安裝在智能設備上的指示燈的裝置的框圖。例如,裝置1300可以被提供為一智能手機或者平板電腦。參照圖13,裝置1300包括處理組件1322,其進一步包括一個或多個處理器,以及由存儲器1332所代表的存儲器資源,用于存儲可由處理部件1322的執(zhí)行的指令,例如應用程序。存儲器1332中存儲的應用程序可以包括一個或一個以上的每一個對應于一組指令的模塊。此外,處理組件1322被配置為執(zhí)行指令,以執(zhí)行上述在客戶端之間建立通信連接的方法。
[0309]裝置1300還可以包括一個電源組件1326被配置為執(zhí)行裝置1300的電源管理,一個有線或無線網(wǎng)絡接口 1350被配置為將裝置1300連接到網(wǎng)絡,和一個輸入輸出(I/O)接口 1358。裝置1300可以操作基于存儲在存儲器1332的操作系統(tǒng),例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,F(xiàn)reeBSDTM 或類似。
[0310]本領域技術人員在考慮說明書及實踐這里公開的公開后,將容易想到本公開的其它實施方案。本申請旨在涵蓋本公開的任何變型、用途或者適應性變化,這些變型、用途或者適應性變化遵循本公開的一般性原理并包括本公開未公開的本技術領域中的公知常識或慣用技術手段。說明書和實施例僅被視為示例性的,本公開的真正范圍和精神由下面的權利要求指出。
[0311]應當理解的是,本公開并不局限于上面已經(jīng)描述并在附圖中示出的精確結構,并且可以在不脫離其范圍進行各種修改和改變。本公開的范圍僅由所附的權利要求來限制。
【主權項】
1.一種在客戶端之間建立通信連接方法,應用在路由器上,其特征在于,所述方法包括: 接收來自第一客戶端的詢問報文,所述詢問報文中攜帶有所述第一客戶端需要的服務類型; 從服務資源列表中確定是否存在能夠提供所述服務類型的第二客戶端; 如果存在能夠提供所述服務類型的所述第二客戶端,向所述第一客戶端單播發(fā)送第一響應報文,所述第一響應報文攜帶有所述第二客戶端的第一網(wǎng)絡地址,以供所述第一客戶端通過所述第一網(wǎng)絡地址建立與所述第二客戶端的通信連接。
2.根據(jù)權利要求1所述的方法,其特征在于,所述接收來自第一客戶端的詢問報文之后,所述方法還包括: 確定所述服務類型是否符合為所述第一客戶端設置的訪問權限; 如果確定符合所述訪問權限,執(zhí)行所述根據(jù)所述服務類型從服務資源列表中確定是否有能夠提供所述服務類型的第二客戶端的步驟; 如果不符合,丟棄所述詢問報文。
3.根據(jù)權利要求1所述的方法,其特征在于,所述接收來自第一客戶端的詢問報文之后,所述方法還包括: 從詢問會話表中查詢是否存在與所述詢問報文相匹配的會話表項; 如果存在所述會話表項,更新與所述會話表項相對應的定時器,并執(zhí)行所述根據(jù)所述服務類型從服務資源列表中確定是否