怎么辦理鹽城電銷防封線路,去哪辦理鹽城電銷防封線路,辦理鹽城電銷防封線路
防封電銷軟件線路安全穩(wěn)定,不受呼叫頻率限制,不同行業(yè),專業(yè)定制使用方案,管理一體化!
需要的老板歡迎咨詢辦理!
ARM-Linux環(huán)境下的UDP協(xié)議通信實(shí)驗(yàn)
經(jīng)過上述硬件設(shè)計(jì)和操作系統(tǒng)移植過程,本文所使用到的實(shí)驗(yàn)環(huán)境已經(jīng)構(gòu)建完畢,經(jīng)反復(fù)調(diào)試修改,嵌入式Linux操作系統(tǒng)在平臺(tái)下運(yùn)行正常,于是進(jìn)行UDP協(xié)議通信實(shí)驗(yàn)。
4.1 UDP協(xié)議套接字編程基礎(chǔ)
UDP是一個(gè)面向數(shù)據(jù)報(bào)和無連接的簡單傳輸層協(xié)議,它不像TCP那樣通過握手過程建立服務(wù)器與客戶端的連接才可以工作。在網(wǎng)絡(luò)通信質(zhì)量較好的情況下,UDP體現(xiàn)出高效率,這適合于傳送少量報(bào)文的應(yīng)用。 linux系統(tǒng)是通過套接字結(jié)構(gòu)來進(jìn)行網(wǎng)絡(luò)編程的,應(yīng)用程序通過對(duì)套接字的幾個(gè)函數(shù)調(diào)用,會(huì)返回一個(gè)用于通信的套接字描述符,而Linux應(yīng)用程序在進(jìn)行任何形式的I/O操作時(shí),程序?qū)嶋H上是在讀寫一個(gè)文件描述符。因此Linux下的套接字編程,可以看成是對(duì)普通文件描述符的操作,這些操作與被使用的硬件平臺(tái)無關(guān),這是linux設(shè)備無關(guān)性的優(yōu)點(diǎn)。UDP協(xié)議的通信模型如圖3所示。
在上述流程中,客戶端所收到的報(bào)文被存儲(chǔ)在緩沖區(qū)中,recvfrom()函數(shù)返回了報(bào)文存儲(chǔ)緩沖區(qū)的首地址,我們可以很方便地對(duì)這個(gè)首地址進(jìn)行數(shù)組操作,從而實(shí)現(xiàn)對(duì)報(bào)文的解碼。
4.2 上位機(jī)報(bào)文結(jié)構(gòu)及重發(fā)機(jī)制分析
根據(jù)項(xiàng)目要求,上位機(jī)軟件依然保留,我們使用協(xié)議嗅探工具對(duì)上位機(jī)發(fā)送的報(bào)文進(jìn)行了嗅探,得到了上位機(jī)報(bào)文的結(jié)構(gòu)如表1所示。
表1 上位機(jī)報(bào)文結(jié)構(gòu)
上位機(jī)發(fā)出的每條報(bào)文由32個(gè)字節(jié)組成,第0位為版本信息。第1……12位為比賽信息和運(yùn)動(dòng)員教練信息,是報(bào)文的關(guān)鍵信息部分,13……22位為服務(wù)器端和客戶端的IP地址及端口號(hào)信息,23位是上位機(jī)對(duì)客戶端的操作指令代碼,24位是相關(guān)重發(fā)機(jī)制的代碼,30和31兩位是CheckSum,用來保證數(shù)據(jù)傳輸?shù)恼_。上位機(jī)采用的重發(fā)機(jī)制是一種上位機(jī)按照固定重發(fā)次數(shù)多次發(fā)送同一關(guān)鍵內(nèi)容報(bào)文的機(jī)制,其第24位重發(fā)機(jī)制位被分為高4位和低4位兩部分,高四位的內(nèi)容是當(dāng)前發(fā)送的報(bào)文的索引號(hào),每次發(fā)送一條新內(nèi)容的報(bào)文時(shí)索引號(hào)自增1,索引號(hào)的取值范圍在0x00—0xFF范圍內(nèi)循環(huán)自增。低四位是重發(fā)編號(hào),表示同一索引號(hào)的報(bào)文正在被第幾次重發(fā),固定的重發(fā)次數(shù)由上位機(jī)初始化時(shí)設(shè)定。