欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種支持多種套接字連接模式的通信方法及服務(wù)器的制作方法

文檔序號(hào):6423007閱讀:243來(lái)源:國(guó)知局
專(zhuān)利名稱(chēng):一種支持多種套接字連接模式的通信方法及服務(wù)器的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及通信技術(shù)領(lǐng)域,特別的涉及一種支持多種套接字連接模式的通信方法及服務(wù)器。
背景技術(shù)
在RFID(Radio Frequency Identification,射頻識(shí)別)應(yīng)用系統(tǒng)中,運(yùn)行上層應(yīng)用程序的服務(wù)器和閱讀器之間需要進(jìn)行通訊,其通訊的消息格式有類(lèi)似于LLRP (Low LevelReader Protocol,底層讀寫(xiě)器協(xié)議)等通用的技術(shù)標(biāo)準(zhǔn),但是上層應(yīng)用程序和閱讀器程序的通訊模式(即建立連接、維護(hù)連接和數(shù)據(jù)交互的方式)并沒(méi)有統(tǒng)一的技術(shù)標(biāo)準(zhǔn)。在實(shí)際應(yīng)用時(shí),可能是閱讀器程序作為套接字socket服務(wù)端,由上層應(yīng)用程序作為socket客戶(hù)端發(fā)起連接;也可能是上層應(yīng)用程序作為socket服務(wù)端,由閱讀器程序作為socket客戶(hù)端發(fā)起連接。不同的廠(chǎng)家有不同的實(shí)現(xiàn)方式,在實(shí)際應(yīng)用中可能會(huì)出現(xiàn)上層應(yīng)用程序與閱讀器 程序之間通訊方式不匹配的問(wèn)題。另外,由于通訊方式不匹配,在集成項(xiàng)目的初期,軟件開(kāi)發(fā)工程師會(huì)根據(jù)不同廠(chǎng)家的設(shè)備開(kāi)發(fā)對(duì)應(yīng)方式的通訊模塊,然而在開(kāi)局測(cè)試期以及正式交付后,上層應(yīng)用程序與閱讀器程序通訊方式都可能會(huì)改變,此時(shí)前期編寫(xiě)的程序?qū)o(wú)法于變化后的閱讀器程序通訊,需要重新編寫(xiě)對(duì)應(yīng)通訊方式的程序。可見(jiàn)現(xiàn)有技術(shù)中只有針對(duì)閱讀器程序?yàn)閱我惶捉幼诌B接模式的通訊方式,顯然功能上有所缺陷。

發(fā)明內(nèi)容
本發(fā)明的目的是針對(duì)現(xiàn)有技術(shù)中只有針對(duì)閱讀器程序?yàn)閱我惶捉幼诌B接模式的通訊方式,顯然功能上有所缺陷的問(wèn)題,提供一種支持多種套接字連接模式的通信方法及運(yùn)行上層應(yīng)用程序的服務(wù)器,該方法包括運(yùn)行上層應(yīng)用程序的服務(wù)器檢測(cè)上層應(yīng)用程序與閱讀器程序之間的套接字連接,所使用鏈接的鏈接狀態(tài),套接字連接包括,作為套接字服務(wù)器端的閱讀器程序與作為套接字客戶(hù)端的上層應(yīng)用程序之間的第一類(lèi)套接字連接,和作為套接字客戶(hù)端的閱讀器程序與作為套接字服務(wù)器端的上層應(yīng)用程序之間的第二類(lèi)套接字連接;運(yùn)行上層應(yīng)用程序的服務(wù)器根據(jù)鏈接狀態(tài)為正常,確定上層應(yīng)用程序與閱讀器程序之間存在套接字連接進(jìn)行數(shù)據(jù)交互,根據(jù)鏈接狀態(tài)為斷鏈,確定上層應(yīng)用程序與閱讀器程序之間不存在套接字連接停止數(shù)據(jù)交互。進(jìn)一步,運(yùn)行上層應(yīng)用程序的服務(wù)器檢測(cè)上層應(yīng)用程序與閱讀器程序之間的套接字連接,所使用鏈接的鏈接狀態(tài)之前還包括運(yùn)行上層應(yīng)用程序的服務(wù)器為待建立的鏈接分配鏈接標(biāo)識(shí),并建立上層應(yīng)用程序與閱讀器程序之間的套接字連接所使用的鏈接,鏈接標(biāo)識(shí)包括閱讀器的設(shè)備標(biāo)識(shí);運(yùn)行上層應(yīng)用程序的服務(wù)器獲取所建鏈接的狀態(tài)信息;運(yùn)行上層應(yīng)用程序的服務(wù)器將所建鏈接的鏈接標(biāo)識(shí)及該鏈接的狀態(tài)信息綁定作為鏈接信息存儲(chǔ)在鏈接池中;運(yùn)行上層應(yīng)用程序的服務(wù)器檢測(cè)上層應(yīng)用程序與閱讀器程序之間的套接字連接,所使用鏈接的鏈接狀態(tài)具體為運(yùn)行上層應(yīng)用程序的服務(wù)器依次從鏈接池中獲取各鏈接的狀態(tài)信息,檢測(cè)鏈接狀態(tài)。進(jìn)一步,運(yùn)行上層應(yīng)用程序的服務(wù)器建立上層應(yīng)用程序與閱讀器程序之間的套接字連接所使用的鏈接具體為查找鏈接池中的鏈接信息,當(dāng)沒(méi)有找到與為待建鏈接分配的鏈接標(biāo)識(shí)相同的鏈接標(biāo)識(shí)時(shí),進(jìn)行鏈接建立。進(jìn)一步,還包括
運(yùn)行上層應(yīng)用程序的服務(wù)器建立上層應(yīng)用程序與閱讀器程序之間的類(lèi)套接字連接后,等待閱讀器上報(bào)的LLRP消息,若預(yù)訂時(shí)間內(nèi)沒(méi)有收到LLRP消息,則關(guān)閉建立的鏈接,并從鏈接池中刪除該鏈接的鏈接信息。進(jìn)一步,運(yùn)行上層應(yīng)用程序的服務(wù)器將所建鏈接的鏈接標(biāo)識(shí)及該鏈接的狀態(tài)信息綁定作為鏈接信息存儲(chǔ)在鏈接池中具體為運(yùn)行上層應(yīng)用程序的服務(wù)器將第一類(lèi)套接字連接所使用鏈接的鏈接信息,和第二類(lèi)套接字連接所使用鏈接的鏈接信息分別存儲(chǔ)在不同的鏈接池中。進(jìn)一步,還包括運(yùn)行上層應(yīng)用程序的服務(wù)器建立上層應(yīng)用程序與閱讀器程序之間的第一類(lèi)套接字連接后,等待閱讀器上報(bào)的LLRP消息,從LLRP消息提取該閱讀器的設(shè)備標(biāo)識(shí),當(dāng)與分配的鏈接標(biāo)識(shí)中的閱讀器設(shè)備標(biāo)識(shí)不相同時(shí),則關(guān)閉建立的鏈接,并從鏈接池中刪除該鏈接的鏈接信息。進(jìn)一步,還包括運(yùn)行上層應(yīng)用程序的服務(wù)器建立上層應(yīng)用程序與閱讀器程序之間的第二類(lèi)套接字連接后,等待閱讀器上報(bào)的LLRP消息,從LLRP消息提取該閱讀器的設(shè)備標(biāo)識(shí),更新鏈接池中該鏈接的鏈接信息中的設(shè)備標(biāo)識(shí)。進(jìn)一步,鏈接標(biāo)識(shí)還包括鏈接序號(hào)。進(jìn)一步,運(yùn)行上層應(yīng)用程序的服務(wù)器采用定時(shí)任務(wù)的方式進(jìn)行鏈接狀態(tài)檢測(cè)。進(jìn)一步,還包括運(yùn)行上層應(yīng)用程序的服務(wù)器獲取鏈接狀態(tài)為正常的鏈接狀態(tài)信息后,若檢測(cè)獲取鏈接狀態(tài)信息的時(shí)間和上次收到心跳消息的時(shí)間的間隔超時(shí),則斷開(kāi)使用該鏈接建立的套接字連接,并將鏈接的狀態(tài)信息修改為斷鏈。本發(fā)明實(shí)施例還提供一種支持多種套接字連接模式的運(yùn)行上層應(yīng)用程序的服務(wù)器,包括檢測(cè)模塊,用于檢測(cè)上層應(yīng)用程序與閱讀器程序之間的套接字連接,所使用鏈接的鏈接狀態(tài),套接字連接包括,作為套接字服務(wù)器端的閱讀器程序與作為套接字客戶(hù)端的上層應(yīng)用程序之間的第一類(lèi)套接字連接,和作為套接字客戶(hù)端的閱讀器程序與作為套接字服務(wù)器端的上層應(yīng)用程序之間的第二類(lèi)套接字連接;確定模塊,用于運(yùn)行上層應(yīng)用程序的服務(wù)器根據(jù)鏈接狀態(tài)為正常,確定上層應(yīng)用程序與閱讀器程序之間存在套接字連接進(jìn)行數(shù)據(jù)交互,根據(jù)鏈接狀態(tài)為斷鏈,確定上層應(yīng)用程序與閱讀器程序之間不存在套接字連接停止數(shù)據(jù)交互。進(jìn)一步,還包括建立模塊,用于為待建立的鏈接分配鏈接標(biāo)識(shí),并建立上層應(yīng)用程序與閱讀器程序之間的套接字連接所使用的鏈接,鏈接標(biāo)識(shí)包括閱讀器的設(shè)備標(biāo)識(shí),獲取所建鏈接的狀態(tài)信息,將所建鏈接的鏈接標(biāo)識(shí)及該鏈接的狀態(tài)信息綁定作為鏈接信息存儲(chǔ)在鏈接池中;檢測(cè)模塊,具體用于依次從鏈接池中獲取各鏈接的狀態(tài)信息,檢測(cè)鏈接狀態(tài)。進(jìn)一步,建立模塊,具體用于查找鏈接池中的鏈接信息,當(dāng)沒(méi)有找到與為待建鏈接 分配的鏈接標(biāo)識(shí)相同的鏈接標(biāo)識(shí)時(shí),進(jìn)行鏈接建立。進(jìn)一步,建立模塊,具體用于建立上層應(yīng)用程序與閱讀器程序之間的套接字連接后,等待閱讀器上報(bào)的LLRP消息,若預(yù)訂時(shí)間內(nèi)沒(méi)有收到LLRP消息,則關(guān)閉建立的鏈接,并從鏈接池中刪除該鏈接的鏈接信息。進(jìn)一步,建立模塊,具體用于將第一類(lèi)套接字連接所使用鏈接的鏈接信息,和第二類(lèi)套接字連接所使用鏈接的鏈接信息分別存儲(chǔ)在不同的鏈接池中。進(jìn)一步,建立模塊,具體用于建立上層應(yīng)用程序與閱讀器程序之間的第一類(lèi)套接字連接后,等待閱讀器上報(bào)的LLRP消息,從LLRP消息提取該閱讀器的設(shè)備標(biāo)識(shí),當(dāng)與分配的鏈接標(biāo)識(shí)中的閱讀器設(shè)備標(biāo)識(shí)不相同時(shí),則關(guān)閉建立的鏈接,并從鏈接池中刪除該鏈接的鏈接信息。進(jìn)一步,建立模塊,具體用于建立上層應(yīng)用程序與閱讀器程序之間的第二類(lèi)套接字連接后,等待閱讀器上報(bào)的LLRP消息,從LLRP消息提取該閱讀器的設(shè)備標(biāo)識(shí),更新鏈接池中該鏈接的鏈接信息中的設(shè)備標(biāo)識(shí)。進(jìn)一步,檢測(cè)模塊,具體用于采用定時(shí)任務(wù)的方式進(jìn)行鏈接狀態(tài)檢測(cè)。進(jìn)一步,檢測(cè)模塊,具體用于獲取鏈接狀態(tài)為正常的鏈接狀態(tài)信息后,若檢測(cè)獲取鏈接狀態(tài)信息的時(shí)間和上次收到心跳消息的時(shí)間的間隔超時(shí),則斷開(kāi)使用該鏈接建立的套接字連接,并將鏈接的狀態(tài)信息修改為斷鏈。由于通過(guò)對(duì)不同通訊類(lèi)型的套接字連接,使用的鏈接狀態(tài)進(jìn)行檢測(cè),得到套接字連接的情況進(jìn)而完成通訊,克服了只支持單一通訊方式的缺陷。


圖I表示本發(fā)明提供的第一實(shí)施例系統(tǒng)結(jié)構(gòu)圖;圖2表示本發(fā)明提供的第一實(shí)施例方法流程圖;圖3表示本發(fā)明提供的第一實(shí)施例客戶(hù)端模式的Socket連接使用的鏈接注冊(cè)方法流程圖;圖4表示本發(fā)明提供的第一實(shí)施例服務(wù)器端模式的Socket連接使用的鏈接注冊(cè)方法流程圖;圖5表示本發(fā)明提供的第一實(shí)施例斷鏈檢測(cè)方法流程圖;圖6表示本發(fā)明提供的第一實(shí)施例斷鏈檢測(cè)方法子流程圖;圖7表示本發(fā)明提供的第二實(shí)施例服務(wù)器結(jié)構(gòu)圖。
具體實(shí)施例方式下面結(jié)合說(shuō)明書(shū)附圖對(duì)本發(fā)明優(yōu)選實(shí)施例進(jìn)行說(shuō)明,本發(fā)明第一實(shí)施例是一種支持多種套接字連接模式的通信方法,以圖I的RFID應(yīng)用系統(tǒng)為例,本是實(shí)施例的RFID應(yīng)用系統(tǒng)包括一個(gè)應(yīng)用于運(yùn)行上層應(yīng)用程序的服務(wù)器I和若干個(gè)閱讀器2,服務(wù)器和各閱讀器通過(guò)網(wǎng)絡(luò)3連接,本實(shí)施例的方法應(yīng)用于RFID應(yīng)用系統(tǒng),下面以上層應(yīng)用程序和閱讀器0010(設(shè)備標(biāo)識(shí)Device ID)的程序a為例進(jìn)行說(shuō)明,如圖2所示,包括步驟11、服務(wù)器檢測(cè)上層應(yīng)用程序與閱讀器0010的程序a之間的套接字連接,所使用鏈接0010&80(80為L(zhǎng)inkID即鏈接序號(hào))的鏈接狀態(tài)。
步驟12、服務(wù)器判斷鏈接狀態(tài)是否正常,若鏈接狀態(tài)為正常,執(zhí)行步驟13,否則鏈接狀態(tài)為斷鏈,執(zhí)行步驟14。步驟13、服務(wù)器確定上層應(yīng)用程序與閱讀器0010的程序a之間存在套接字連接進(jìn)行數(shù)據(jù)交互。步驟14、服務(wù)器確定上層應(yīng)用程序與閱讀器0010的程序a之間不存在套接字連接停止數(shù)據(jù)交互。其中,套接字連接包括第一類(lèi)套接字連接和第二類(lèi)套接字連接,第一類(lèi)套接字連接為,作為套接字服務(wù)器端的閱讀器程序與作為套接字客戶(hù)端的上層應(yīng)用程序之間的套接字連接。第二類(lèi)套接字連接為,作為套接字客戶(hù)端的閱讀器程序與作為套接字服務(wù)器端的上層應(yīng)用程序之間的套接字連接。例如,上層應(yīng)用程序與閱讀器0010的程序a采用第一類(lèi)套接字連接,上層應(yīng)用程序與閱讀器0001的程序b采用第二類(lèi)套接字連接,即本實(shí)施例的RFID應(yīng)用系統(tǒng)包括多種套接字連接模式。當(dāng)然在執(zhí)行上述的步驟之前,服務(wù)器還要為待建立的鏈接分配鏈接標(biāo)識(shí)0010&80,并建立上層應(yīng)用程序與閱讀器0010的程序a之間的套接字連接所使用的鏈接,本實(shí)施例中的鏈接標(biāo)識(shí)0010&80包括閱讀器的Device ID 0010和LinkID 80。在鏈接0010&80建立后,服務(wù)器獲取所建鏈接0010&80的狀態(tài)信息,鏈接的鏈接標(biāo)識(shí)0010&80及該鏈接的狀態(tài)信息(如正?;驍噫?綁定,作為鏈接信息,如鏈接信息表示為0010&80-1即鏈接標(biāo)識(shí)0010&80的鏈接的鏈接狀態(tài)為正常,或鏈接信息表示為0010&80-2即鏈接標(biāo)識(shí)0010&80的鏈接的鏈接狀態(tài)為斷鏈,將鏈接信息存儲(chǔ)在鏈接池中。這樣服務(wù)器通過(guò)從鏈接池中獲取鏈接0010&80的狀態(tài)信息,檢測(cè)鏈接0010&80的鏈接狀態(tài)。對(duì)于閱讀器0010的其它程序或其它閱讀器的程序類(lèi)似,服務(wù)器依次從鏈接池中獲取各鏈接的狀態(tài)信息,檢測(cè)鏈接狀態(tài)。通過(guò)鏈接池的方式實(shí)現(xiàn)鏈接檢測(cè),實(shí)施時(shí)簡(jiǎn)單方便。服務(wù)器建立鏈接0010&80時(shí),先要查找鏈接池中的鏈接信息,當(dāng)沒(méi)有找到與為待建鏈接分配的鏈接標(biāo)識(shí)0010&80相同的鏈接標(biāo)識(shí)時(shí),進(jìn)行鏈接建立,因?yàn)檫@樣可以保證不
會(huì)重復(fù)建鏈。服務(wù)器可以將第一類(lèi)套接字連接所使用鏈接的鏈接信息存儲(chǔ)在服務(wù)端模式鏈接池,將第二類(lèi)套接字連接所使用鏈接的鏈接信息存儲(chǔ)在端模式鏈接池,此處所說(shuō)的服務(wù)端模式和客戶(hù)端模式是指上層應(yīng)用程序的套接字連接采用的通信模式,將第一類(lèi)套接字連接和第二類(lèi)套接字連接分別存儲(chǔ)在不同的鏈接池中,是為了后續(xù)操作更方便的調(diào)用,如需要調(diào)用第二類(lèi)套接字連接只需要去服務(wù)端模式鏈接池進(jìn)行查找。服務(wù)器建立上層應(yīng)用程序與閱讀器0010的程序a之間的第一類(lèi)套接字連接后,會(huì)等待閱讀器OOlO的程序a上報(bào)的LLRP消息,從LLRP消息提取該閱讀器0010的程序a的設(shè)備標(biāo)識(shí)(可能是0010也可能是1100),當(dāng)與分配的鏈接標(biāo)識(shí)0010&80中的閱讀器設(shè)備標(biāo)識(shí)0010不相同時(shí),則關(guān)閉建立的鏈接,并從鏈接池中刪除該鏈接的鏈接信息。例如利用某個(gè)IP建立鏈接時(shí),該IP之前所對(duì)應(yīng)的閱讀器被更換,這樣避免服務(wù)器預(yù)分配可能出現(xiàn)的設(shè)備標(biāo)識(shí)不準(zhǔn)確造成鏈路異常的問(wèn)題。服務(wù)器建立上層應(yīng)用程序與閱讀器0010的程序a之間的第一類(lèi)套接字連接后,要等待閱讀器上報(bào)的LLRP消息,若預(yù)訂時(shí)間tl內(nèi)沒(méi)有收到LLRP消息,則關(guān)閉建立的鏈接,并從鏈接池中刪除該鏈接的鏈接信息。這樣通過(guò)超時(shí)判斷確定鏈接異常,將其關(guān)閉。對(duì)于閱讀器0001的程序b,服務(wù)器建立上層應(yīng)用程序與閱讀器0001的程序b之間的第二類(lèi)套接字連接后,等待閱讀器0001的程序b上報(bào)的LLRP消息,從LLRP消息提取閱讀器0001的Device ID 0001,更新鏈接池中該鏈接的鏈接信息中的Device ID為0001,由于上層應(yīng)用程序與閱讀器0001的程序b采用第二類(lèi)套接字連接,閱讀器0001可能會(huì)出現(xiàn)斷鏈重連的情況,這樣通過(guò)從LLRP消息提取的Device ID 0001能準(zhǔn)確的確定鏈接的鏈接信息中的DevicelD。 同樣,服務(wù)器建立上層應(yīng)用程序與閱讀器0001的程序b之間的第二類(lèi)套接字連接后,要等待閱讀器上報(bào)的LLRP消息,若預(yù)訂時(shí)間tl內(nèi)沒(méi)有收到LLRP消息,則關(guān)閉建立的鏈接,并從鏈接池中刪除該鏈接的鏈接信息。這樣通過(guò)超時(shí)判斷確定鏈接異常,將其關(guān)閉。本實(shí)施例中服務(wù)器采用定時(shí)任務(wù)的方式進(jìn)行鏈接狀態(tài)檢測(cè),這樣既能節(jié)省資源又能保證檢測(cè)的實(shí)時(shí)性。服務(wù)器獲取鏈接0010&80鏈接狀態(tài)為正常后,若檢測(cè)獲取該鏈接狀態(tài)信息的時(shí)間和上次收到心跳消息的時(shí)間的間隔為T(mén)1,T1大約預(yù)定的基準(zhǔn)間隔TO超時(shí),則斷開(kāi)使用鏈接0010&80建立的套接字連接(上層應(yīng)用程序與閱讀器0010的程序a之間的套接字連接),并將鏈接0010&80的狀態(tài)信息修改為斷鏈,這樣是為了保證鏈接的狀態(tài)準(zhǔn)確實(shí)時(shí)。本實(shí)施例服務(wù)器以,上層應(yīng)用程序在通信模塊(運(yùn)行在服務(wù)器中與閱讀器實(shí)現(xiàn)通信的應(yīng)用程序)中注冊(cè)鏈路并由通信模塊完成鏈路的建立的方式,實(shí)現(xiàn)建鏈。通信模塊還要完成之后的鏈路維護(hù)及管理工作,下面對(duì)注冊(cè)鏈接的流程進(jìn)行說(shuō)明,客戶(hù)端模式的Socket連接使用的鏈接簡(jiǎn)稱(chēng)客戶(hù)端模式鏈接,服務(wù)器端模式的Socket連接使用的鏈接簡(jiǎn)稱(chēng)服務(wù)器端模式鏈接,注冊(cè)流程,如圖3所示,包括步驟SlOl上層應(yīng)用程序注冊(cè)鏈接,流程開(kāi)始。步驟S102判斷DeviceID相同的鏈接是否已經(jīng)存在,是則執(zhí)行步驟103,否則執(zhí)行步驟104。步驟S103返回成功并執(zhí)行步驟105。步驟S104創(chuàng)建客戶(hù)端模式的鏈接。步驟S105流程結(jié)束。服務(wù)器端模式的流程,如圖4所示,包括步驟Slll啟動(dòng)非阻塞的Socket服務(wù)器,監(jiān)聽(tīng)指定端口,流程開(kāi)始。步驟S112創(chuàng)建服務(wù)器端模式的鏈接。步驟S113閱讀器上報(bào)的DeviceID與原有DeviceID相同則將原有鏈路關(guān)閉并移出,保存新的鏈接。
步驟SI 14流程結(jié)束。附圖5描述斷鏈檢測(cè)操作主流程,包括以下步驟步驟S201定時(shí)器任務(wù)啟動(dòng)(斷鏈檢測(cè)采用定時(shí)任務(wù)的方式進(jìn)行調(diào)度,每個(gè)一定時(shí)間,執(zhí)行一次本流程),流程開(kāi)始,;步驟S202依次從服務(wù)端模式的鏈接池中獲取鏈接;步驟S203判斷是否獲取成功,成功的標(biāo)準(zhǔn)是可以獲取掉一個(gè)尚未檢測(cè)的鏈接,返回結(jié)果不是null ;如果獲取成功,轉(zhuǎn)到步驟S204 ;
如果獲取失敗,轉(zhuǎn)到步驟S205步驟S204執(zhí)行斷鏈檢測(cè)子流程,執(zhí)行完成后轉(zhuǎn)到步驟S202步驟S205依次從客戶(hù)端模式的鏈接池中獲取鏈接;步驟S206判斷是否獲取成功,成功的標(biāo)準(zhǔn)是可以獲取掉一個(gè)尚未檢測(cè)的鏈接,返回結(jié)果不是null ;如果獲取成功,轉(zhuǎn)到步驟S207 ;如果獲取失敗,轉(zhuǎn)到步驟S208 ;步驟S207執(zhí)行斷鏈檢測(cè)子流程,執(zhí)行完成后轉(zhuǎn)到步驟S205 ;步驟S208流程結(jié)束。附圖6描述斷鏈檢測(cè)子流程1,包括以下步驟步驟S301斷鏈檢測(cè)主流程調(diào)用子流程1,流程開(kāi)始;步驟S302判斷鏈接狀態(tài)是否為正常,如果狀態(tài)正常,轉(zhuǎn)到步驟S303 ;如果狀態(tài)不正常,轉(zhuǎn)到步驟S308 ;步驟S303獲取上次接收到心跳消息的時(shí)間;步驟S304判斷上次心跳時(shí)間到當(dāng)前時(shí)間的時(shí)間間隔是否超時(shí),如果超時(shí),轉(zhuǎn)入步驟S305 ;如果不超時(shí),轉(zhuǎn)入步驟S308 ;步驟S305斷開(kāi)超時(shí)鏈接內(nèi)部持有的Socket連接,設(shè)置鏈接狀態(tài)為斷鏈;步驟S306判斷是否是服務(wù)端模式的鏈接,如果是,轉(zhuǎn)入步驟S307 ;如果否,轉(zhuǎn)入步驟 S308 ;步驟S308子流程I結(jié)束。本發(fā)明第二實(shí)施例提供一種支持多種套接字連接模式的運(yùn)行上層應(yīng)用程序的服務(wù)器,如圖7所示,包括檢測(cè)模塊401,用于檢測(cè)上層應(yīng)用程序與閱讀器程序之間的套接字連接,所使用鏈接的鏈接狀態(tài),套接字連接包括,作為套接字服務(wù)器端的閱讀器程序與作為套接字客戶(hù)端的上層應(yīng)用程序之間的第一類(lèi)套接字連接,和作為套接字客戶(hù)端的閱讀器程序與作為套接字服務(wù)器端的上層應(yīng)用程序之間的第二類(lèi)套接字連接;確定模塊402,用于運(yùn)行上層應(yīng)用程序的服務(wù)器根據(jù)鏈接狀態(tài)為正常,確定上層應(yīng)用程序與閱讀器程序之間存在套接字連接進(jìn)行數(shù)據(jù)交互,根據(jù)鏈接狀態(tài)為斷鏈,確定上層應(yīng)用程序與閱讀器程序之間不存在套接字連接停止數(shù)據(jù)交互。進(jìn)一步,還包括建立模塊403,用于為待建立的鏈接分配鏈接標(biāo)識(shí),并建立上層應(yīng)用程序與閱讀器程序之間的套接字連接所使用的鏈接,鏈接標(biāo)識(shí)包括閱讀器的設(shè)備標(biāo)識(shí),獲取所建鏈接的狀態(tài)信息,將所建鏈接的鏈接標(biāo)識(shí)及該鏈接的狀態(tài)信息綁定作為鏈接信息存儲(chǔ)在鏈接池中;檢測(cè)模塊401,具體用于依次從鏈接池中獲取各鏈接的狀態(tài)信息,檢測(cè)鏈接狀態(tài)。進(jìn)一步,建立模塊403,具體用于查找鏈接池中的鏈接信息,當(dāng)沒(méi)有找到與為待建鏈接分配的鏈接標(biāo)識(shí)相同的鏈接標(biāo)識(shí)時(shí),進(jìn)行鏈接建立。進(jìn)一步,建立模塊403,具體用于建立上層應(yīng)用程序與閱讀器程序之間的第一類(lèi)套接字連接后,等待閱讀器上報(bào)的LLRP消息,從LLRP消息提取該閱讀器的設(shè)備標(biāo)識(shí),當(dāng)與分配的鏈接標(biāo)識(shí)中的閱讀器設(shè)備標(biāo)識(shí)不相同時(shí),則關(guān)閉建立的鏈接,并從鏈接池中刪除該鏈接的鏈接信息。進(jìn)一步,建立模塊403,具體用于將第一類(lèi)套接字連接所使用鏈接的鏈接信息,和第二類(lèi)套接字連接所使用鏈接的鏈接信息分別存儲(chǔ)在不同的鏈接池中。 進(jìn)一步,建立模塊403,具體用于建立上層應(yīng)用程序與閱讀器程序之間的第一類(lèi)套接字連接后,等待閱讀器上報(bào)的LLRP消息,若預(yù)訂時(shí)間內(nèi)沒(méi)有收到LLRP消息,則關(guān)閉建立的鏈接,并從鏈接池中刪除該鏈接的鏈接信息。進(jìn)一步,建立模塊403,具體用于建立上層應(yīng)用程序與閱讀器程序之間的第二類(lèi)套接字連接后,等待閱讀器上報(bào)的LLRP消息,從LLRP消息提取該閱讀器的設(shè)備標(biāo)識(shí),更新鏈接池中該鏈接的鏈接信息中的設(shè)備標(biāo)識(shí)。進(jìn)一步,檢測(cè)模塊401,具體用于采用定時(shí)任務(wù)的方式進(jìn)行鏈接狀態(tài)檢測(cè)。進(jìn)一步,檢測(cè)模塊401,具體用于獲取鏈接狀態(tài)為正常的鏈接狀態(tài)信息后,若檢測(cè)獲取鏈接狀態(tài)信息的時(shí)間和上次收到心跳消息的時(shí)間的間隔超時(shí),則斷開(kāi)使用該鏈接建立的套接字連接,并將鏈接的狀態(tài)信息修改為斷鏈。最后應(yīng)說(shuō)明的是以上實(shí)施例僅用以說(shuō)明本發(fā)明的技術(shù)方案而非對(duì)其進(jìn)行限制,盡管參照較佳實(shí)施例對(duì)本發(fā)明進(jìn)行了詳細(xì)的說(shuō)明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解其依然可以對(duì)本發(fā)明的技術(shù)方案進(jìn)行修改或者等同替換,而這些修改或者等同替換亦不能使修改后的技術(shù)方案脫離本發(fā)明技術(shù)方案的精神和范圍。
權(quán)利要求
1.一種支持多種套接字連接模式的通信方法,其特征在于,包括 運(yùn)行上層應(yīng)用程序的服務(wù)器檢測(cè)上層應(yīng)用程序與閱讀器程序之間的套接字連接,所使用鏈接的鏈接狀態(tài),套接字連接包括,作為套接字服務(wù)器端的閱讀器程序與作為套接字客戶(hù)端的上層應(yīng)用程序之間的第一類(lèi)套接字連接,和作為套接字客戶(hù)端的閱讀器程序與作為套接字服務(wù)器端的上層應(yīng)用程序之間的第二類(lèi)套接字連接; 運(yùn)行上層應(yīng)用程序的服務(wù)器根據(jù)鏈接狀態(tài)為正常,確定上層應(yīng)用程序與閱讀器程序之間存在套接字連接進(jìn)行數(shù)據(jù)交互,根據(jù)鏈接狀態(tài)為斷鏈,確定上層應(yīng)用程序與閱讀器程序之間不存在套接字連接停止數(shù)據(jù)交互。
2.如權(quán)利要求I所述的方法,其特征在于,運(yùn)行上層應(yīng)用程序的服務(wù)器檢測(cè)上層應(yīng)用程序與閱讀器程序之間的套接字連接,所使用鏈接的鏈接狀態(tài)之前還包括 運(yùn)行上層應(yīng)用程序的服務(wù)器為待建立的鏈接分配鏈接標(biāo)識(shí),并建立上層應(yīng)用程序與閱讀器程序之間的套接字連接所使用的鏈接,鏈接標(biāo)識(shí)包括閱讀器的設(shè)備標(biāo)識(shí); 運(yùn)行上層應(yīng)用程序的服務(wù)器獲取所建鏈接的狀態(tài)信息; 運(yùn)行上層應(yīng)用程序的服務(wù)器將所建鏈接的鏈接標(biāo)識(shí)及該鏈接的狀態(tài)信息綁定作為鏈接信息存儲(chǔ)在鏈接池中; 運(yùn)行上層應(yīng)用程序的服務(wù)器檢測(cè)上層應(yīng)用程序與閱讀器程序之間的套接字連接,所使用鏈接的鏈接狀態(tài)具體為 運(yùn)行上層應(yīng)用程序的服務(wù)器依次從鏈接池中獲取各鏈接的狀態(tài)信息,檢測(cè)鏈接狀態(tài)。
3.如權(quán)利要求2所述的方法,其特征在于,運(yùn)行上層應(yīng)用程序的服務(wù)器建立上層應(yīng)用程序與閱讀器程序之間的套接字連接所使用的鏈接具體為 查找鏈接池中的鏈接信息,當(dāng)沒(méi)有找到與為待建鏈接分配的鏈接標(biāo)識(shí)相同的鏈接標(biāo)識(shí)時(shí),進(jìn)行鏈接建立。
4.如權(quán)利要求2所述的方法,其特征在于,還包括 運(yùn)行上層應(yīng)用程序的服務(wù)器建立上層應(yīng)用程序與閱讀器程序之間的類(lèi)套接字連接后,等待閱讀器上報(bào)的LLRP消息,若預(yù)訂時(shí)間內(nèi)沒(méi)有收到LLRP消息,則關(guān)閉建立的鏈接,并從鏈接池中刪除該鏈接的鏈接信息。
5.如權(quán)利要求2所述的方法,其特征在于,運(yùn)行上層應(yīng)用程序的服務(wù)器將所建鏈接的鏈接標(biāo)識(shí)及該鏈接的狀態(tài)信息綁定作為鏈接信息存儲(chǔ)在鏈接池中具體為 運(yùn)行上層應(yīng)用程序的服務(wù)器將第一類(lèi)套接字連接所使用鏈接的鏈接信息,和第二類(lèi)套接字連接所使用鏈接的鏈接信息分別存儲(chǔ)在不同的鏈接池中。
6.如權(quán)利要求5所述的方法,其特征在于,還包括 運(yùn)行上層應(yīng)用程序的服務(wù)器建立上層應(yīng)用程序與閱讀器程序之間的第一類(lèi)套接字連接后,等待閱讀器上報(bào)的LLRP消息,從LLRP消息提取該閱讀器的設(shè)備標(biāo)識(shí),當(dāng)與分配的鏈接標(biāo)識(shí)中的閱讀器設(shè)備標(biāo)識(shí)不相同時(shí),則關(guān)閉建立的鏈接,并從鏈接池中刪除該鏈接的鏈接信息。
7.如權(quán)利要求5所述的方法,其特征在于,還包括 運(yùn)行上層應(yīng)用程序的服務(wù)器建立上層應(yīng)用程序與閱讀器程序之間的第二類(lèi)套接字連接后,等待閱讀器上報(bào)的LLRP消息,從LLRP消息提取該閱讀器的設(shè)備標(biāo)識(shí),更新鏈接池中該鏈接的鏈接信息中的設(shè)備標(biāo)識(shí)。
8.如權(quán)利要求2所述的方法,其特征在于,鏈接標(biāo)識(shí)還包括鏈接序號(hào)。
9.如權(quán)利要求I所述的方法,其特征在于,運(yùn)行上層應(yīng)用程序的服務(wù)器采用定時(shí)任務(wù)的方式進(jìn)行鏈接狀態(tài)檢測(cè)。
10.如權(quán)利要求9所述的方法,其特征在于,還包括 運(yùn)行上層應(yīng)用程序的服務(wù)器獲取鏈接狀態(tài)為正常的鏈接狀態(tài)信息后,若檢測(cè)獲取鏈接狀態(tài)信息的時(shí)間和上次收到心跳消息的時(shí)間的間隔超時(shí),則斷開(kāi)使用該鏈接建立的套接字連接,并將鏈接的狀態(tài)信息修改為斷鏈。
11.一種支持多種套接字連接模式的運(yùn)行上層應(yīng)用程序的服務(wù)器,其特征在于,包括 檢測(cè)模塊,用于檢測(cè)上層應(yīng)用程序與閱讀器程序之間的套接字連接,所使用鏈接的鏈接狀態(tài),套接字連接包括,作為套接字服務(wù)器端的閱讀器程序與作為套接字客戶(hù)端的上層應(yīng)用程序之間的第一類(lèi)套接字連接,和作為套接字客戶(hù)端的閱讀器程序與作為套接字服務(wù)器端的上層應(yīng)用程序之間的第二類(lèi)套接字連接; 確定模塊,用于運(yùn)行上層應(yīng)用程序的服務(wù)器根據(jù)鏈接狀態(tài)為正常,確定上層應(yīng)用程序與閱讀器程序之間存在套接字連接進(jìn)行數(shù)據(jù)交互,根據(jù)鏈接狀態(tài)為斷鏈,確定上層應(yīng)用程序與閱讀器程序之間不存在套接字連接停止數(shù)據(jù)交互。
12.如權(quán)利要求11所述的運(yùn)行上層應(yīng)用程序的服務(wù)器,其特征在于,還包括 建立模塊,用于為待建立的鏈接分配鏈接標(biāo)識(shí),并建立上層應(yīng)用程序與閱讀器程序之間的套接字連接所使用的鏈接,鏈接標(biāo)識(shí)包括閱讀器的設(shè)備標(biāo)識(shí),獲取所建鏈接的狀態(tài)信息,將所建鏈接的鏈接標(biāo)識(shí)及該鏈接的狀態(tài)信息綁定作為鏈接信息存儲(chǔ)在鏈接池中; 檢測(cè)模塊,具體用于依次從鏈接池中獲取各鏈接的狀態(tài)信息,檢測(cè)鏈接狀態(tài)。
13.如權(quán)利要求12所述的運(yùn)行上層應(yīng)用程序的服務(wù)器,其特征在于,建立模塊,具體用于將第一類(lèi)套接字連接所使用鏈接的鏈接信息,和第二類(lèi)套接字連接所使用鏈接的鏈接信息分別存儲(chǔ)在不同的鏈接池中。
全文摘要
本發(fā)明提供一種支持多種套接字連接模式的通信方法及服務(wù)器以解決現(xiàn)有技術(shù)中存在的只有針對(duì)閱讀器程序?yàn)閱我惶捉幼诌B接模式的通訊方式,功能上有所缺陷的問(wèn)題,該方法包括運(yùn)行上層應(yīng)用程序的服務(wù)器檢測(cè)上層應(yīng)用程序與閱讀器程序之間的套接字連接,所使用鏈接的鏈接狀態(tài),套接字連接包括不同通訊方式,根據(jù)鏈接狀態(tài)為正常,確定上層應(yīng)用程序與閱讀器程序之間存在套接字連接進(jìn)行數(shù)據(jù)交互,根據(jù)鏈接狀態(tài)為斷鏈,確定上層應(yīng)用程序與閱讀器程序之間不存在套接字連接停止數(shù)據(jù)交互,由于通過(guò)對(duì)不同通訊類(lèi)型的套接字連接,使用的鏈接狀態(tài)進(jìn)行檢測(cè),得到套接字連接的情況進(jìn)而完成通訊,克服了只支持單一通訊方式的缺陷。
文檔編號(hào)G06K17/00GK102761518SQ20111010393
公開(kāi)日2012年10月31日 申請(qǐng)日期2011年4月25日 優(yōu)先權(quán)日2011年4月25日
發(fā)明者劉辛燕, 賀曉猛 申請(qǐng)人:中興通訊股份有限公司
網(wǎng)友詢(xún)問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
永丰县| 兴国县| 安岳县| 河东区| 温泉县| 安陆市| 子洲县| 泰安市| 棋牌| 平和县| 金川县| 泸水县| 龙里县| 若尔盖县| 吴江市| 蒙山县| 峡江县| 墨竹工卡县| 汉寿县| 通山县| 滦平县| 余姚市| 墨竹工卡县| 历史| 上饶县| 元氏县| 紫阳县| 正安县| 石首市| 天柱县| 深水埗区| 桐城市| 乾安县| 彝良县| 潍坊市| 修文县| 苍南县| 永新县| 皮山县| 涿鹿县| 华阴市|