當(dāng)前位置:首頁 > 測試測量 > 測試測量
[導(dǎo)讀]摘要:為了實(shí)現(xiàn)數(shù)據(jù)采集終端與遠(yuǎn)程服務(wù)器即時(shí)通信的需求,提出了一種基于Socket網(wǎng)絡(luò)編程的遠(yuǎn)程物流防偽系統(tǒng)。該系統(tǒng)在Visual Stud io結(jié)合SQL Server的開發(fā)平臺下,采用Socket套接字以及GPRS無線通信的方式實(shí)現(xiàn)數(shù)據(jù)

摘要:為了實(shí)現(xiàn)數(shù)據(jù)采集終端與遠(yuǎn)程服務(wù)器即時(shí)通信的需求,提出了一種基于Socket網(wǎng)絡(luò)編程的遠(yuǎn)程物流防偽系統(tǒng)。該系統(tǒng)在Visual Stud io結(jié)合SQL Server的開發(fā)平臺下,采用Socket套接字以及GPRS無線通信的方式實(shí)現(xiàn)數(shù)據(jù)采集終端對遠(yuǎn)程服務(wù)器的查詢功能。運(yùn)行結(jié)果表明:該系統(tǒng)具有操作方便、使用成本低和安裝容易等多項(xiàng)優(yōu)點(diǎn)。在商品物流中,用戶能快速、及時(shí)查詢到商品的物流信息以及真?zhèn)涡畔?,該系統(tǒng)對企業(yè)物流跟蹤有著重要的意義。
關(guān)鍵詞:Socket;Visual Studio;物流;遠(yuǎn)程服務(wù)器

    隨著當(dāng)今社會的發(fā)展,假冒偽劣產(chǎn)品屢禁不止,甚至還有進(jìn)一步蔓延之勢,假冒偽劣產(chǎn)品的數(shù)量和范圍也呈擴(kuò)大趨勢。因此,在商品物流中加大查詢力度,以實(shí)現(xiàn)商品的實(shí)時(shí)跟蹤已勢在必然。
    隨著電子及自動化的飛速發(fā)展,擁有GPRS無線采集模塊功能的智能采集器已隨處可見,很多用戶已經(jīng)開始陸續(xù)使用智能采集器收集產(chǎn)品條碼信息。雖然智能采集終端本身有自帶的GPRS無線傳輸系統(tǒng),但這些系統(tǒng)只是提供實(shí)際用戶一個功能的擴(kuò)展,其功能不夠完善,并不能滿足所有用戶的實(shí)際需要,這使得智能采集終端不能充分發(fā)揮其智能化。因此筆者提出了利用socket網(wǎng)絡(luò)編程來實(shí)現(xiàn)遠(yuǎn)程物流真?zhèn)尾樵兿到y(tǒng)。
    筆者充分針對用戶需求,利用socket網(wǎng)絡(luò)編程和智能采集終端的GPRS無線傳輸功能,開發(fā)出滿足用戶需要的遠(yuǎn)程物流防偽系統(tǒng)。用戶只需要下載該系統(tǒng),通過簡便、美觀的操作界面,便可實(shí)現(xiàn)智能采集終端的即時(shí)查詢功能,有效地實(shí)現(xiàn)了商品信息的防偽查詢以及即時(shí)跟蹤物流信息等功能。

1 總體設(shè)計(jì)
   
該遠(yuǎn)程物流查詢系統(tǒng)流程圖如圖1所示。當(dāng)移動終端采集器掃描完產(chǎn)品上附帶的編碼信息后,通過socket套接字所指定服務(wù)器的IP及端口和GPRS無線網(wǎng)絡(luò)將采集的編碼信息發(fā)送給遠(yuǎn)程的服務(wù)器端。遠(yuǎn)程服務(wù)器端通過檢索其數(shù)據(jù)庫,將該商品相應(yīng)的查詢相關(guān)信息返回給采集終端。最終在采集終端將該商品的相應(yīng)信息顯示出來,這樣便實(shí)現(xiàn)了采集終端對商品的即時(shí)查詢功能。



2 系統(tǒng)環(huán)境
2.1 軟件開發(fā)環(huán)境
   
本系統(tǒng)是在Visual Studio 2010結(jié)合SQL Server 2008的環(huán)境下開發(fā)而成,所選用的開發(fā)語言是由微軟公司開發(fā)的visual basic語言以及功能強(qiáng)大的SQL語言。
    通過Visual Studio 2010框架,能夠提供對SQL Server2008的高效訪問,從而為數(shù)據(jù)庫應(yīng)用開發(fā)提供支撐。Microsoft Visual Studio 2010通過整合的開發(fā)環(huán)境,讓軟件開發(fā)人員以熟悉技術(shù)及工具一致的開發(fā)方式,創(chuàng)建各個應(yīng)用平臺。從模型及構(gòu)架設(shè)計(jì)、程序的撰寫及管理、查錯、測試到部署,所有的工作一氣呵成,這些工作都在Visual studio 2010中完成。
2.2 智能采集器的GPRS無線采集模塊
   
目前市場上大多數(shù)采集器都已具備了GPRS無線采集模塊的功能。該系統(tǒng)所采用的采集器為新大陸科技集團(tuán)生產(chǎn)的PT980系列產(chǎn)品,其GPRS無線采集模塊如圖2所示。該模塊支持TCP/UDP兩種通信協(xié)議;具有RS485和RS232的通信功能,通過485接口或232接口能方便地采集總線上掛接的各種儀器數(shù)據(jù);具有4路開關(guān)量輸入和4路開關(guān)量輸出功能;擁有IM字節(jié)不掉電數(shù)據(jù)保存空間,主要用于存儲采集到的模擬量和開關(guān)量數(shù)據(jù);擁有高精度的模擬量采集;具有通過移動電話(手機(jī))短信下載通信參數(shù)功能,例如通信中用到的IP地址等等;具有透明數(shù)據(jù)傳輸功能;具有支持動態(tài)域名解析功能,節(jié)約了采用固定IP所帶來的昂貴費(fèi)用;具有商店自動重新連接功能,適合遠(yuǎn)距離無人值守環(huán)境。


2.3 網(wǎng)絡(luò)環(huán)境
   
本系統(tǒng)所采用的網(wǎng)絡(luò)環(huán)境為GPRS無線網(wǎng)絡(luò)。GPRS是一種采用分組交換模式傳輸數(shù)據(jù)及信令的高效率方式。它克服了電路交換型數(shù)據(jù)傳輸速率低、資源利用率差的缺陷。利用GPRS進(jìn)行數(shù)據(jù)傳輸具有資源共享、頻率利用率高、數(shù)據(jù)雙向通信傳輸率高、接入時(shí)間短、永遠(yuǎn)在線等優(yōu)點(diǎn)。智能采集器可通過GPRS無線網(wǎng)絡(luò)將商品條碼信息發(fā)送給遠(yuǎn)程服務(wù)器。在本系統(tǒng)中,遠(yuǎn)程服務(wù)器可同時(shí)監(jiān)聽處理多臺智能采集器終端同時(shí)發(fā)送產(chǎn)品編碼信息。

3 Socket網(wǎng)絡(luò)編程
   
Socket是TCP/IP的編程接口,提供了大量的系統(tǒng)調(diào)用構(gòu)成了網(wǎng)絡(luò)程序的主體,是標(biāo)準(zhǔn)的C/S模式編程。在操作系統(tǒng)中,它屬于文件系統(tǒng)的一部分,網(wǎng)絡(luò)通信可以被看作是對文件的讀取,使得我們對網(wǎng)絡(luò)的控制和對文件的控制一樣方便。ServerSocket用于服務(wù)器端,而Soc ket是建立網(wǎng)絡(luò)連接時(shí)使用的。在連接成功時(shí),應(yīng)用程序兩端都會產(chǎn)生一個Socket實(shí)例,通過操作這個實(shí)例,完成所需的會話。對于一個網(wǎng)絡(luò)連接來說,套接字是平等的,并沒有差別,不因?yàn)樵诜?wù)器端或在客戶端而產(chǎn)生不同級別。不管是Socket還是Serversecket,它們的工作都是通過SecketImpl類及其子類完成。
    Socket提供了兩種數(shù)據(jù)傳輸?shù)膮f(xié)議,分別為TCP和UDP協(xié)議;TCP(傳輸控制協(xié)議)提供的是面向連接、可靠的字節(jié)流服務(wù)。當(dāng)客戶和服務(wù)器彼此交換數(shù)據(jù)前,必須先在雙方之間建立一個TCP連接,之后才能傳輸數(shù)據(jù)。TCP提供超時(shí)重發(fā),丟棄重復(fù)數(shù)據(jù),檢驗(yàn)數(shù)據(jù),流量控制等功
能,保證數(shù)據(jù)能從一端傳到另一端;UDP(用戶數(shù)據(jù)報(bào)協(xié)議)是一個簡單的面向數(shù)據(jù)報(bào)的運(yùn)輸層協(xié)議。UDP不提供可靠性,它只是把應(yīng)用程序傳給IP層的數(shù)據(jù)報(bào)發(fā)送出去,但是并不能保證它們能到達(dá)目的地。由于UDP在傳輸數(shù)據(jù)報(bào)前不用在客戶和服務(wù)器之間建立一個連接,且沒有超時(shí)重發(fā)等機(jī)制,故而傳輸速度很快。因?yàn)門CP協(xié)議不但能保證數(shù)據(jù)的正確性而且保證數(shù)據(jù)順序正確,而UDP協(xié)議不能保證,所以TCP協(xié)議更符合本系統(tǒng)中傳輸采集終端所采集的編碼的要求,因此本系統(tǒng)采用TCP協(xié)議?;赥CP協(xié)議的通信流程圖如圖3所示。
    在該流程圖中,Socket()用于建立流式套接字;Bind()將套接字與本地地址相連;Listen()通知TCP,使服務(wù)器準(zhǔn)備好接受連接;Accept()用于接收連接;Read()、Write()這兩個函數(shù)分別用于套接字上讀、寫數(shù)據(jù),直到數(shù)據(jù)交換完;Close()用來關(guān)閉套接字;Connect()用于將套接字與遠(yuǎn)地主機(jī)連接。其中,Connect()、Accept()、Read()、Write()函數(shù)等都有可能造成阻塞,阻塞模式是Socket的缺省方式??蛻舳撕头?wù)器的連接有一個3次握手機(jī)制,即服務(wù)器調(diào)用Socket()、Bind()、Listen()完成初始化后,調(diào)用Accept()阻塞等待,處于監(jiān)聽端口的狀態(tài)。而客戶端調(diào)用Socket()初始化后,調(diào)用Connect()發(fā)出SYN段并阻塞等待服務(wù)器的應(yīng)答,服務(wù)器應(yīng)答一個SYN—ACK段,客戶端收到后從Con nect()返回,同時(shí)應(yīng)答一個ACK段,服務(wù)器收到后從Accept()返回。

4 代碼的設(shè)計(jì)
4.1 服務(wù)端
   
在本系統(tǒng)中,一個服務(wù)端可能不只為一個智能采集終端提供服務(wù)。當(dāng)N(N為正整數(shù))臺智能采集終端發(fā)送請求時(shí),服務(wù)端必須做出異步響應(yīng),因此,一般在處理服務(wù)端的監(jiān)聽時(shí)會使用多線程的方法。正因使用了多線程的方法,控制顯示控件將接受到的字符顯示就必須使用委托的方法;而當(dāng)程序無法得知從另外一個線程來控制其他線程的合法性,會認(rèn)為程序有錯誤,故系統(tǒng)中采用了Delegate類,該類用于派生委托類型,派生前需要明確派生的委托和需要委托的函數(shù)輸入值相匹配。
    該系統(tǒng)可監(jiān)聽最多100個同時(shí)的客戶端,通過與SQL查詢語句,可查詢出該產(chǎn)品的編碼、倉庫等信息。Socket套接字在筆者自定義的wait data()函數(shù)中實(shí)現(xiàn),下面即給出了waitdata()函數(shù)的代碼,來講解整個Socket編程,其中部分代碼后面有詳細(xì)的注釋。查詢信息的代碼在筆者自己命名的Getdata()函數(shù)中實(shí)現(xiàn),分別通過對數(shù)據(jù)庫中的防偽編碼表,產(chǎn)品信息表,倉庫信息表,入庫信息表,發(fā)貨信息表,供銷商信息表的綜合查詢,將查詢信息發(fā)送給采集終端,由于字?jǐn)?shù)的限制,文中沒有給出Getdata()函數(shù)的代碼。


4.2 采集終端
   
在客戶端,采用.NET提供的異常處理機(jī)制來實(shí)現(xiàn)Socket編程。異常處理機(jī)制為程序提供了錯誤處理的能力,在程序執(zhí)行代碼時(shí),萬一發(fā)生了異常,程序會按照預(yù)定的處理辦法對異常進(jìn)行處理,異常處理完成之后,程序繼續(xù)運(yùn)行。當(dāng)采集器連接服務(wù)器失敗或者發(fā)送失敗時(shí),系統(tǒng)會自動彈出錯誤提示,采集器端異常處理代碼如下:


5 系統(tǒng)的實(shí)現(xiàn)
5.1 采集終端運(yùn)行結(jié)果
   
運(yùn)行結(jié)果如圖4所示。用戶可以自己輸入服務(wù)器的IP及端口,通過點(diǎn)擊“查詢”按鈕,將采集器掃描出的商品防偽編碼發(fā)送到相應(yīng)的服務(wù)器端;服務(wù)器端返回的查詢結(jié)果,在商品信息欄中顯示出來。


5.2 服務(wù)器端運(yùn)行結(jié)果
   
運(yùn)行結(jié)果如圖5所示。點(diǎn)擊“開始監(jiān)聽”按鈕,可以監(jiān)聽各個采集器發(fā)送的商品防偽編碼信息,并將商品防偽編碼信息顯示出來,通過檢索后臺數(shù)據(jù)庫,將查詢結(jié)果發(fā)送給各個采集終端,每當(dāng)處理完一個商品防偽編碼后,該防偽編碼便從系統(tǒng)界面自動刪除;點(diǎn)擊“關(guān)閉監(jiān)聽”按鈕,可停止監(jiān)聽。



6 結(jié)論
   
該遠(yuǎn)程物流查詢系統(tǒng)充分利用了智能采集終端的GPRS功能,采用Socket網(wǎng)絡(luò)編程實(shí)現(xiàn)了遠(yuǎn)程智能采集終端與服務(wù)器的即時(shí)通信功能。使得遠(yuǎn)程智能采集器通過發(fā)送商品的防偽編碼信息,即時(shí)查詢該商品的真?zhèn)涡畔⒁约拔锪餍畔?。該系統(tǒng)已用于某防偽公司的物流查詢中進(jìn)行測試,實(shí)踐應(yīng)用表明該系統(tǒng)具有操作簡便,成本低廉,性能穩(wěn)定等特點(diǎn),達(dá)到了設(shè)計(jì)的要求。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運(yùn)營商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團(tuán))股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉