牟 亮
(中國聯(lián)通南京分公司 江蘇南京 210000)
數(shù)據(jù)通訊是利用數(shù)據(jù)傳輸技術(shù)在終端傳遞數(shù)據(jù)信息的通信方式。通過智能終端與計算機通信,數(shù)據(jù)通信中傳遞信息以二進(jìn)制數(shù)據(jù)形式表現(xiàn)。即時通信軟件體現(xiàn)卓越的商務(wù)通信功能,以高效靈活便捷等特點得到用戶的青睞,即時通信成為推動電商發(fā)展的重要力量。當(dāng)前,網(wǎng)絡(luò)上有ICQ等各種尋呼軟件,方便人們的相互聯(lián)系。當(dāng)前企事業(yè)單位建立局域網(wǎng),可以通過文件共享方式通訊。但局域網(wǎng)中網(wǎng)上鄰居不知道對象機器資源。局域網(wǎng)中通過ICQ可以實現(xiàn)便捷的聯(lián)絡(luò),進(jìn)行發(fā)布消息等。方便用戶交流,節(jié)省硬件資源配置。
TCP/IP初步架構(gòu)出現(xiàn)源于美國國防部DARPA提出研究計劃,希望通過通信控制處理機在戰(zhàn)爭中遭到攻擊損壞能正常工作,希望適應(yīng)從文件傳遞各種應(yīng)用需求,要求靈活的網(wǎng)絡(luò)體系結(jié)構(gòu)。最初APRANET使用租用線路,ARPANET最初開發(fā)網(wǎng)絡(luò)協(xié)議NCP因通信可靠性較差,出現(xiàn)了很多問題[1]。TCP協(xié)議非OSI標(biāo)準(zhǔn),但被公認(rèn)為當(dāng)前工業(yè)標(biāo)準(zhǔn)。
1974年Kahn定義TCP/IP參考模型,1985年Leiner等人對模型進(jìn)行研究。當(dāng)前,Internet實現(xiàn)商業(yè)化,但最初質(zhì)量標(biāo)準(zhǔn)依然必需。特性包括自動檢測等,TCP/IP是開放式通信協(xié)議,無論設(shè)備物理特征差異都可進(jìn)行通信。TCP/IP是分層模型,TCP/IP參考模型側(cè)重互聯(lián)設(shè)備數(shù)據(jù)傳送,TCP/IP通過解釋功能層次分布實現(xiàn)。TCP/IP是把因特網(wǎng)系統(tǒng)聯(lián)系的協(xié)議組,IP是TCP/IP協(xié)議中的重要協(xié)議,可以實現(xiàn)無連接數(shù)據(jù)傳送功能。IP協(xié)議主要通過IP接收與發(fā)送函數(shù)實現(xiàn)。
大多數(shù)TCP/IP協(xié)議中采用差錯檢驗法為校驗和,可防止分組在傳輸中受到損傷,接收端對整個分組重復(fù)進(jìn)行計算。TCP是傳輸層常用的協(xié)議,可以調(diào)可靠數(shù)據(jù)傳輸服務(wù)[2]。TCP協(xié)議實現(xiàn)是TCP/IP協(xié)議棧中最復(fù)雜的,采取連接建立與關(guān)閉機制,數(shù)據(jù)包確認(rèn)機制等保證其可靠性。TCP連接建立后雙方可相互傳遞數(shù)據(jù),TCP發(fā)送數(shù)據(jù)包后接收到發(fā)送確認(rèn)包才能確認(rèn)成功發(fā)送。
TCP是面向連接的協(xié)議,程序交換數(shù)據(jù)前需建立連接。程序服務(wù)方監(jiān)聽,連接建立后可收發(fā)信息。應(yīng)用程序通訊時建立Socket,必須建立Socket連接進(jìn)行信息交換。Socket地址包括IP地址與協(xié)議。協(xié)議標(biāo)識下層使用協(xié)議。通訊客戶建立Socket服務(wù)方等待客戶發(fā)送連接請求,雙方形成虛電路。C/S模型課利用兩端硬件環(huán)境優(yōu)勢,服務(wù)器處于系統(tǒng)中心地位,服務(wù)器被動接受客戶連接。
Visual是微軟公司推出的應(yīng)用程序開發(fā)工具,語言特點體現(xiàn)在結(jié)構(gòu)化程序設(shè)計;提供易用的應(yīng)用程序集成開發(fā)環(huán)境。文本即時通信分為服務(wù)器與客戶端模型,服務(wù)進(jìn)程處于休眠狀態(tài),服務(wù)程序為客戶端創(chuàng)建工作線程,完成與客戶端的請求服務(wù)。客戶端模型設(shè)計數(shù)據(jù)連接線程,負(fù)責(zé)客戶端數(shù)據(jù)收發(fā)操作??蛻舳说却?wù)器端連接反饋。創(chuàng)建服務(wù)端口號偵聽是否有客戶連接??蛻粝蚍?wù)器發(fā)送數(shù)據(jù)后,在事件中接收數(shù)據(jù)。采用GetData方法接收。向客戶發(fā)送數(shù)據(jù)調(diào)用SendData方法,客戶端收發(fā)數(shù)據(jù)用SendData法實現(xiàn)功能。
服務(wù)器提供接收客戶端文件功能,客戶端發(fā)送請求信息后,服務(wù)器判斷是否存在文件,將信息發(fā)送至客戶端。服務(wù)器在文件發(fā)送操作中,首先發(fā)送文件信息給客戶端,包括文件大小等。工作線從指定位置讀取。用Open語句打開傳送文件轉(zhuǎn)換為二進(jìn)制。Filehandle=FreeFile cmdsend.Enabled=False MsgBox.定義function SendChunk,分別發(fā)送.Public Function SendChunk()If WinsockSend.State<>sckConnected Then Exit Function Get#fiehandle.mybyte,經(jīng)測試表明數(shù)據(jù)通訊系統(tǒng)性能達(dá)到要求。服務(wù)器可在收到請求后正常工作,文件傳輸中服務(wù)器CPU占用率較高。
本文探討基于TCP/IP協(xié)議的通信系統(tǒng)研究,采用客戶/服務(wù)器模型,提高網(wǎng)絡(luò)利用率。系統(tǒng)可實時將數(shù)據(jù)傳送到服務(wù)器端,熟悉文件傳輸功能。設(shè)計特點體現(xiàn)在采用C/S模型設(shè)計方法;采用TCP/IP協(xié)議數(shù)據(jù)傳輸不易丟失;有利于系統(tǒng)開發(fā)維護(hù)工作。