国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于TCP協(xié)議的C#多線程數(shù)據(jù)采集程序的設(shè)計(jì)與實(shí)現(xiàn)

2013-03-05 09:53何曉東
電腦知識(shí)與技術(shù) 2012年36期
關(guān)鍵詞:終端設(shè)備監(jiān)聽線程

摘要:該文闡述TCP通信的原理,多線程的概念,進(jìn)行了一個(gè)多線程數(shù)據(jù)接收程序的設(shè)計(jì),并使用C#編碼實(shí)現(xiàn)。

關(guān)鍵詞:多線程;C#;TCP

中圖分類號(hào):TP311文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1009-3044(2012)36-8624-02

某項(xiàng)目有一批終端設(shè)備定時(shí)發(fā)送定位信息到指定的服務(wù)器,服務(wù)器接收到信息處理后保存到數(shù)據(jù)庫(kù),以備后續(xù)顯示使用。終端設(shè)備同服務(wù)器間通信采用TCP協(xié)議,一次信息發(fā)送完成后終端設(shè)備和服務(wù)器連接斷開。設(shè)備之間沒有信息交流,互相獨(dú)立。信息發(fā)送的時(shí)間由終端設(shè)備自行決定。

1關(guān)鍵技術(shù)

1.1TCP通信原理

TCP協(xié)議是傳輸控制協(xié)議,適用于點(diǎn)到點(diǎn),可靠通信。把通信發(fā)起方稱為客戶,把客戶要通信的另一方稱為服務(wù)器。客戶把請(qǐng)求發(fā)給服務(wù)器,服務(wù)器收到客戶的請(qǐng)求后提供服務(wù)。所以,TCP通信有兩方,客戶和服務(wù)器。在本應(yīng)用中,終端設(shè)備是TCP客戶,接收程序是TCP服務(wù)器。

1.2多線程

線程是程序中的一個(gè)執(zhí)行流。是CPU調(diào)度和分派的基本單位。一個(gè)進(jìn)程可以包含一個(gè)或多個(gè)線程,并且同一個(gè)進(jìn)程內(nèi)的多個(gè)線程共享一塊內(nèi)存和資源。

2需求分析

結(jié)合上述技術(shù)分析和應(yīng)用要求,本應(yīng)用中的終端機(jī)是TCP客戶,要開發(fā)的程序是TCP服務(wù)器,用于接收TCP客戶發(fā)送的定位信息并保存到數(shù)據(jù)庫(kù)。終端設(shè)備有多臺(tái),且它們之間沒有聯(lián)系,任何終端信息發(fā)送時(shí)間是隨機(jī)的。

3系統(tǒng)分析

TCP協(xié)議要求通信雙方首先要建立連接,然后雙方才能進(jìn)行信息的交流,最后撤除連接。

服務(wù)器應(yīng)設(shè)置有監(jiān)聽端口,工作在監(jiān)聽狀態(tài)。當(dāng)客戶想同服務(wù)器通信時(shí),客戶可以向該端口發(fā)送連接請(qǐng)求,服務(wù)器收到連接請(qǐng)求后,可以建立新的通信鏈路以便客戶和服務(wù)器進(jìn)行信息交流。等到客戶的通信結(jié)束后,服務(wù)器返回監(jiān)聽狀態(tài)。在返回監(jiān)聽狀態(tài)之前,服務(wù)器不能為其他客戶提供服務(wù),因此,在單線程模式,當(dāng)前客戶同服務(wù)器間的通信未結(jié)束前,其他客戶無(wú)法連接服務(wù)器,只有等到它們的通信結(jié)束,服務(wù)器重新回到監(jiān)聽狀態(tài)。這顯然是低效的,不合理的。為了快速的為更多的客戶服務(wù),服務(wù)器應(yīng)盡快地回到監(jiān)聽狀態(tài)。為了到達(dá)此目的,只有采用多線程工作模式。即,服務(wù)器同客戶建立連接后,服務(wù)器和客戶的通信和連接的撤除交由新的線程完成,自己迅速返回到監(jiān)聽狀態(tài),這必然的縮短了其他客戶的等待時(shí)間,提高了信息傳輸?shù)男省?/p>

4系統(tǒng)設(shè)計(jì)

設(shè)計(jì)思路:建立一個(gè)TCP服務(wù)器,運(yùn)行后在指定的端口監(jiān)聽,當(dāng)收到客戶的連接請(qǐng)求后,會(huì)創(chuàng)建新的線程負(fù)責(zé)隨后的雙方的通信,自己則回到監(jiān)聽狀態(tài)繼續(xù)監(jiān)聽有無(wú)其他客戶連接請(qǐng)求。新創(chuàng)建的線程在完成數(shù)據(jù)的接收后,斷開連接,釋放資源。

6測(cè)試及結(jié)果分析

測(cè)試過程:運(yùn)行本服務(wù)程序,設(shè)置本機(jī)監(jiān)聽端口和協(xié)議,進(jìn)入監(jiān)聽狀態(tài)。設(shè)置終端設(shè)備的數(shù)據(jù)接收服務(wù)器IP地址為114.96.57.176(需在路由器做映射到內(nèi)網(wǎng)IP地址:192.168.1.100),端口為5000,程序接收到終端設(shè)備發(fā)送的位置信息。結(jié)果見圖2。

圖2程序運(yùn)行顯示界面截圖

從圖2顯示的信息看,信息已正確接收,程序運(yùn)行正常。

參考文獻(xiàn):

[1]RobinsonS.C#高級(jí)編程[M].北京:清華大學(xué)出版社,2002.

[2]CasadJ.TCP/IP入門經(jīng)典[M].井中月,譯.北京:人民郵電出版社,2009.

[3]周有杰.VisualC#.Net網(wǎng)絡(luò)核心編程[M].北京:清華大學(xué)出版社,2002.

猜你喜歡
終端設(shè)備監(jiān)聽線程
千元監(jiān)聽風(fēng)格Hi-Fi箱新選擇 Summer audio A-401
視頻監(jiān)視系統(tǒng)新型終端設(shè)備接入方案
網(wǎng)絡(luò)監(jiān)聽的防范措施
淺談linux多線程協(xié)作
配電自動(dòng)化終端設(shè)備在電力配網(wǎng)自動(dòng)化的應(yīng)用
車站信號(hào)系統(tǒng)終端設(shè)備整合及解決方案
應(yīng)召反潛時(shí)無(wú)人機(jī)監(jiān)聽航路的規(guī)劃
局域網(wǎng)監(jiān)聽軟件的設(shè)計(jì)
基于手持終端設(shè)備中軟件通信架構(gòu)的應(yīng)用
基于上下文定界的Fork/Join并行性的并發(fā)程序可達(dá)性分析*
湟中县| 民乐县| 益阳市| 黔江区| 嵊州市| 嘉祥县| 彰化市| 茂名市| 金湖县| 凭祥市| 商都县| 中方县| 景东| 永春县| 黄冈市| 柳江县| 炎陵县| 江川县| 河东区| 承德市| 扎鲁特旗| 桐乡市| 江西省| 漠河县| 阿克| 岳池县| 开化县| 尼玛县| 临沭县| 山阴县| 溆浦县| 嵊泗县| 大足县| 紫云| 遂平县| 灵武市| 尤溪县| 神木县| 洛南县| 镇安县| 岳普湖县|