Bonjour服務(wù)的裝置的結(jié)構(gòu)示意圖;以及
[0046]圖8為本發(fā)明又一實(shí)施例中提供Bonjour服務(wù)的裝置的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0047]以下結(jié)合附圖對(duì)本發(fā)明的優(yōu)選實(shí)施例進(jìn)行說明,應(yīng)當(dāng)理解,此處所描述的優(yōu)選實(shí)施例僅用于說明和解釋本發(fā)明,并不用于限定本發(fā)明。
[0048]圖1所示為本發(fā)明一實(shí)施例中在應(yīng)用程序中集成Bonjour服務(wù)的方法的流程圖,該方法包括以下步驟SI1-S14:
[0049]步驟SI I,獲取Bonjour服務(wù)的源代碼。
[0050]步驟S12,從獲取的源代碼中封裝出啟動(dòng)Bonjour服務(wù)的啟動(dòng)接口以及停止Bonjour服務(wù)的停止接口,得到封裝后的源代碼。
[0051]步驟S13,將封裝后的源代碼編譯成Bonjour服務(wù)動(dòng)態(tài)鏈接庫。
[0052]步驟S14,在應(yīng)用程序中加載Bonjour服務(wù)動(dòng)態(tài)鏈接庫,以在應(yīng)用程序中集成Bonjour 服務(wù)。
[0053]本發(fā)明實(shí)施例中,當(dāng)獲取到Bonjour服務(wù)的源代碼時(shí),從該源代碼中封裝出啟動(dòng)Bonjour服務(wù)的啟動(dòng)接口以及停止Bonjour服務(wù)的停止接口,得到封裝后的源代碼,進(jìn)而將封裝后的源代碼編譯成Bonjour服務(wù)動(dòng)態(tài)鏈接庫,從而在應(yīng)用程序中加載Bonjour服務(wù)動(dòng)態(tài)鏈接庫,以實(shí)現(xiàn)在應(yīng)用程序中集成Bonjour服務(wù)。由此,本發(fā)明實(shí)現(xiàn)將Bonjour服務(wù)集成到應(yīng)用程序,使得應(yīng)用程序能夠獨(dú)立使用Bonjour服務(wù),而不會(huì)受到用戶機(jī)器或終端是否安裝或啟用Bonjour服務(wù)的限制。并且,集成于應(yīng)用程序的Bonjour服務(wù)的功能更新可以由該應(yīng)用程序控制,而不是由Bonjour服務(wù)自身隨意更新。進(jìn)一步,由于Bonjour服務(wù)動(dòng)態(tài)鏈接庫中包含啟動(dòng)Bonjour服務(wù)的啟動(dòng)接口以及停止Bonjour服務(wù)的停止接口,因而可以靈活、快速地調(diào)用相應(yīng)的接口進(jìn)行啟動(dòng)或停止Bonjour服務(wù)。另外,Bonjour服務(wù)動(dòng)態(tài)鏈接庫是與程序或線程分開存儲(chǔ)的代碼和數(shù)據(jù)的庫,因而可以滿足多個(gè)程序或線程同時(shí)調(diào)用,有助于數(shù)據(jù)資源的共享。
[0054]上文步驟S12提及的啟動(dòng)接口由程序或線程的調(diào)用,在程序或線程調(diào)用該啟動(dòng)接口后啟動(dòng)Bonjour服務(wù),例如該啟動(dòng)接口為ServiceRun O,或者還可以為其它函數(shù)。此外,停止接口也可以由程序或線程的調(diào)用,在程序或線程調(diào)用該停止接口后停止Bonjour服務(wù),例如該停止接口為ServiceStop O,或者還可以為其它函數(shù)。
[0055]在應(yīng)用程序中集成Bonjour服務(wù)后,應(yīng)用程序便可以獨(dú)立地使用該Bonjour服務(wù),從而不會(huì)受到用戶機(jī)器或終端是否安裝或啟用Bonjour服務(wù)的限制。如圖2所示為本發(fā)明一實(shí)施例中提供Bonjour服務(wù)的方法的流程圖,該方法包括以下步驟S21-S22:
[0056]步驟S21,當(dāng)接收到集成有Bonjour服務(wù)的應(yīng)用程序調(diào)用Bonjour服務(wù)的指令時(shí),檢測應(yīng)用程序所在終端是否存在開啟的Bonjour服務(wù)。
[0057]在該步驟中,可以調(diào)用接口 DNSServiceGetProperty,進(jìn)而檢測應(yīng)用程序所在終端是否存在開啟的Bonjour服務(wù)。
[0058]步驟S22,若檢測到應(yīng)用程序所在終端不存在開啟的Bonjour服務(wù),則創(chuàng)建線程調(diào)用集成于應(yīng)用程序的Bonjour服務(wù)的啟動(dòng)接口,以啟動(dòng)集成于應(yīng)用程序的Bonjour服務(wù)。
[0059]在該實(shí)施例中,應(yīng)用程序能夠獨(dú)立使用Bonjour服務(wù),從而不會(huì)受到用戶機(jī)器或終端是否安裝或啟用Bonjour服務(wù)的限制。并且,集成于應(yīng)用程序的Bonjour服務(wù)的功能更新可以由該應(yīng)用程序控制,而不是由Bonjour服務(wù)自身隨意更新。進(jìn)一步,由于Bonjour服務(wù)動(dòng)態(tài)鏈接庫中包含啟動(dòng)Bonjour服務(wù)的啟動(dòng)接口以及停止Bonjour服務(wù)的停止接口,因而可以靈活、快速地調(diào)用相應(yīng)的接口進(jìn)行啟動(dòng)或停止Bonjour服務(wù)。
[0060]如圖3所示為本發(fā)明另一實(shí)施例中提供Bonjour服務(wù)的方法的流程圖,該方法包括以下步驟S31-S34:
[0061]步驟S31,當(dāng)接收到集成有Bonjour服務(wù)的應(yīng)用程序調(diào)用Bonjour服務(wù)的指令時(shí),檢測應(yīng)用程序所在終端是否存在開啟的Bonjour服務(wù),若是,則繼續(xù)執(zhí)行步驟S32 ;若否,則繼續(xù)執(zhí)行步驟S33。
[0062]步驟S32,不啟動(dòng)集成于應(yīng)用程序的Bonjour服務(wù),并使用開啟的Bonjour服務(wù)。
[0063]步驟S33,創(chuàng)建線程調(diào)用集成于應(yīng)用程序的Bonjour服務(wù)的啟動(dòng)接口,以啟動(dòng)集成于應(yīng)用程序的Bonjour服務(wù),繼續(xù)執(zhí)行步驟S34。
[0064]步驟S34,當(dāng)接收到關(guān)閉集成于應(yīng)用程序的Bonjour服務(wù)時(shí),調(diào)用集成于應(yīng)用程序的Bonjour服務(wù)的停止接口,以停止集成于應(yīng)用程序的Bonjour服務(wù)。
[0065]在該實(shí)施例中,若檢測應(yīng)用程序所在終端存在開啟的Bonjour服務(wù),則不啟動(dòng)集成于應(yīng)用程序的Bonjour服務(wù),可以直接使用開啟的Bonjour服務(wù),從而可以節(jié)約資源。并且,在調(diào)用Bonjour服務(wù)時(shí),可以靈活、快速地調(diào)用相應(yīng)的接口進(jìn)行啟動(dòng)或停止Bonjour服務(wù)。
[0066]對(duì)應(yīng)于上述實(shí)施例中的在應(yīng)用程序中集成Bonjour服務(wù)的方法,本發(fā)明還提供一種在應(yīng)用程序中集成Bonjour服務(wù)的裝置。如圖4所示為本發(fā)明一實(shí)施例中在應(yīng)用程序中集成Bonjour服務(wù)的裝置的結(jié)構(gòu)示意圖,包括:
[0067]獲取模塊41,用于獲取零配置聯(lián)網(wǎng)Bonjour服務(wù)的源代碼;
[0068]封裝模塊42,用于從源代碼中封裝出啟動(dòng)Bonjour服務(wù)的啟動(dòng)接口以及停止Bonjour服務(wù)的停止接口,得到封裝后的源代碼;
[0069]編譯模塊43,用于將封裝后的源代碼編譯成Bonjour服務(wù)動(dòng)態(tài)鏈接庫;
[0070]加載模塊44,用于在應(yīng)用程序中加載Bonjour服務(wù)動(dòng)態(tài)鏈接庫,以實(shí)現(xiàn)在應(yīng)用程序中集成Bonjour服務(wù)。
[0071]本發(fā)明實(shí)施例的上述裝置:當(dāng)獲取到Bonjour服務(wù)的源代碼時(shí),從該源代碼中封裝出啟動(dòng)Bonjour服務(wù)的啟動(dòng)接口以及停止Bonjour服務(wù)的停止接口,得到封裝后的源代碼,進(jìn)而將封裝后的源代碼編譯成Bonjour服務(wù)動(dòng)態(tài)鏈接庫,從而在應(yīng)用程序中加載Bonjour服務(wù)動(dòng)態(tài)鏈接庫,以實(shí)現(xiàn)在應(yīng)用程序中集成Bonjour服務(wù)。由此,本發(fā)明實(shí)現(xiàn)將Bonjour服務(wù)集成到應(yīng)用程序,使得應(yīng)用程序能夠獨(dú)立使用Bonjour服務(wù),而不會(huì)受到用戶機(jī)器或終端是否安裝或啟用Bonjour服務(wù)的限制。并且,集成于應(yīng)用程序的Bonjour服務(wù)的功能更新可以由該應(yīng)用程序控制,而不是由Bonjour服務(wù)自身隨意更新。進(jìn)一步,由于Bonjour服務(wù)動(dòng)態(tài)鏈接庫中包含啟動(dòng)Bonjour服務(wù)的啟動(dòng)接口以及停止Bonjour服務(wù)的停止接口,因而可以靈活、快速地調(diào)用相應(yīng)的接口進(jìn)行啟動(dòng)或停止Bonjour服務(wù)。另外,Bonjour服務(wù)動(dòng)態(tài)鏈接庫是與程序或線程分開存儲(chǔ)的代碼和數(shù)據(jù)的庫,因而可以滿足多個(gè)程序或線程同時(shí)調(diào)用,有助于數(shù)據(jù)資源的共享。
[0072]對(duì)應(yīng)于上述實(shí)施例中的提供Bonjour服務(wù)的方法,本發(fā)明還提供一種提供Bonjour服務(wù)的裝置。如圖5所示為本發(fā)明一實(shí)施例中提供Bonjour服務(wù)的裝置的結(jié)構(gòu)示意圖,包括:
[0073]檢測模塊51,用于當(dāng)接收到集成有Bonjour服務(wù)的應(yīng)用程序調(diào)用Bonjour服務(wù)的指令時(shí),檢測應(yīng)用程序所在終端是否存在開啟的Bonjour服務(wù);
[0074]啟動(dòng)模塊52,用于若檢測模塊檢測到應(yīng)用程序所在終端不存在開啟的Bonjour服務(wù),則創(chuàng)建線程調(diào)用集成于應(yīng)用程序的Bonjour服務(wù)的啟動(dòng)接口,以啟動(dòng)集成于應(yīng)用程序的Bonjour服務(wù)。
[0075]在本發(fā)明一實(shí)施例中,如圖6所示,上述檢測模塊51還可以包括:
[0076]檢測