CAN總線的嵌入式Web服務(wù)器設(shè)計
②將服務(wù)器設(shè)為Listen監(jiān)聽狀態(tài),等待接收客戶端連接。用TCP API函數(shù)建立被動連接代碼如下:
TCPAppInit
Bank TCB_BANK
Mov tcbLocalPortLSB,#APPLET_PORT_LSB;設(shè)置TCP服務(wù)端口
Mov tcbLocalPortMSB,#APPLET_PORT_MSB
Jmp @TCPAppPassiveOpen;跳轉(zhuǎn)到TCP被動連接程序,進行端口偵聽
_TCPAppPassiveOpen
_bank TCP_BANK
mov tcpState,#TCP_ST_LISTEN
clr tcpUnAckMSB
clr tcpUnAckLSB
retp
③當(dāng)TCP的狀態(tài)為established時,雙方連接建立,可以開始傳輸數(shù)據(jù)。此時產(chǎn)生新的套接字,用來管理遠端客戶機服務(wù),原來的端口繼續(xù)用來監(jiān)聽。
④數(shù)據(jù)傳輸包括數(shù)據(jù)接收和數(shù)據(jù)發(fā)送的兩問好。接收數(shù)據(jù)時,用TCPAppRxBytes()函數(shù)獲得接收到的數(shù)據(jù)字節(jié)數(shù),根據(jù)得到的字節(jié)數(shù)多次調(diào)用TCPAppRxData()函數(shù)接收數(shù)據(jù),在全部數(shù)據(jù)接收完畢后可以在TCPAppRxDone()函數(shù)中做相應(yīng)的處理。發(fā)送數(shù)據(jù)時,首先調(diào)用函數(shù)TCPAppTxBHytes()設(shè)置要發(fā)送數(shù)據(jù)的字節(jié)數(shù),根據(jù)此字節(jié)數(shù)調(diào)用TCPAppTxData()函數(shù)發(fā)送數(shù)據(jù),全部數(shù)據(jù)發(fā)送完畢后調(diào)用TCPAppTxDone()函數(shù)確認(rèn)。其中采集的動態(tài)數(shù)據(jù)保存在變量globTemp3中。
⑤當(dāng)TCP狀態(tài)為closed時,服務(wù)器關(guān)閉連接,不再發(fā)送和接收數(shù)據(jù)。程序具體實現(xiàn)時,設(shè)定客戶端和服務(wù)器端連接建立后,服務(wù)器端即向客戶端發(fā)送數(shù)據(jù)。
3 結(jié)論
本文所設(shè)計的嵌入式Web服務(wù)器,采用改進的Web應(yīng)用程序開發(fā)模式,用Java applet實現(xiàn)客戶端程序,不用在客戶端應(yīng)用程序,方便用戶使用;能取代傳統(tǒng)的工控機和接口卡,實現(xiàn)現(xiàn)場設(shè)備數(shù)據(jù)直接上網(wǎng),小巧輕便,成本低。
該Web服務(wù)器不僅可以廣泛應(yīng)用于工業(yè)控制領(lǐng)域,實現(xiàn)小型工業(yè)監(jiān)測系統(tǒng)網(wǎng)絡(luò)化,還可以實現(xiàn)智能儀器、智能園區(qū)、環(huán)境工程、植物工廠、工業(yè)制冷等方面的應(yīng)用。
tcp/ip相關(guān)文章:tcp/ip是什么
評論