最近在做一個基於LPC1700的網關項目,需要調用到相關的庫,下面就來介紹下TCP_NET庫中的main_TcpNet()函數。
main_TcpNet()函數是TCP_NET庫中的主函數,它輪詢乙太網路控制器並接受資料。當接收到來自用戶端的資料時,則調用合適的TCPNET庫函數來處理資料,並將結果傳送到應用程式。由於乙太網路各類事件的處理都要設定逾時限制,需要一個輪詢執行函數timer_tick的任務,timer_tick檢查設定逾時限制的是乙太網路事件,如果事件逾時則做出響應的處理。3利用RL-TCPnet實現Web伺服器在建立任務的過程中,乙太網路任務迴圈執行函數main_TcpNet,從用戶端發出的各種應用程式層請求資訊都會被main_TcpNet處理,並調用相應的應用程式做出響應。在此基礎上實現Web伺服器的功能,只需要對Net_Config.c檔案中的
宏定義和全域變數進行合理配置即可,其中與Web伺服器相關的宏定義有:
#defineHTTP_ENABLE 1
#defineHTTP_NUMSESS 5
#defineHTTP_PORTNUM 80
#defineHTTP_ENAUTH 1
#defineHTTP_AUTHREALM ″EmbeddedWEBServer″
#defineHTTP_AUTHUSER ″admin″
#defineHTTP_AUTHPASSW ″″
設定項目依次為:伺服器功能使能、用戶端數量、連接埠號碼、認證登陸使能、認證網域名稱、使用者名稱、口令。實現Web伺服器的另一個重要內容是伺服器提供的頁面。
在Keil公司推出RealViewMDK-ARM開發套件之前,如果沒有檔案系統的支援,嵌入式系統提供的頁面只能以字串數組的形式在C語言代碼中編寫,頁面內容的複雜程度受到很大限制。而現在,MDK套件的編譯器能夠自動將html檔案轉換為C語言代碼,然後編譯產生目標代碼。這一新穎實用的功能使嵌入式系統能夠在簡單的作業系統平台上實現功能更為強大的Web伺服器。4利用指令碼語句實現動態網頁按照設計目標,溫棚監控系統作為Web伺服器提供的頁面內容既要顯示溫棚環境溫濕度的即時變化情況,又要提供對監控系統進行控制的頁面表單。MDK編譯器支援的html指令碼語言和RL-TCPnet庫提供的CGI函數二者的結合使用能夠實現符合上述要求的動態網頁。4.1使用指令碼語言建立動態網頁面利用MDK編譯器支援的指令碼語言,可以產生動態效果的頁面。實際上,使用指令碼語言編寫頁面,完全是用標準的html語言描述頁面內容,但指令碼語言在每一行html語言的前面都加上了一個命令字元。命令字元的特點是能夠將某一行html語言字串設定為環境變數字串。環境變數字串中的內容可以被cgi_func函數動態載入從而將伺服器端動態變化的資訊體現在網頁上。指令碼語言的規則很簡單,每一個指令碼行都以命令字元開頭,命令字元說明了其後的指令碼語言的類型。