基于VxWorks嵌人式操作系統(tǒng)的C/S模式網絡編程
1 嵌入式操作系統(tǒng)VxWorks簡介
VxWorks操作系統(tǒng)是美國WindRiver 公司于1983年設計開發(fā)的一種嵌入式實時操作系統(tǒng)(RTOS),是嵌入式開發(fā)環(huán)境的關鍵組成部分。良好的持續(xù)發(fā)展能力、高性能的內核以及友好的用戶開發(fā)環(huán)境,使其在嵌入式實時操作系統(tǒng)領域占據一席之地。他以良好的可靠性和卓越的實時性被廣泛地應用在通信、軍事、航空、航天等高精尖技術及實時性要求極高的領域中,如衛(wèi)星通訊、軍事演習、彈道制導、飛機導航等。
2 VxWorks的特點
2.1 可靠性
穩(wěn)定、可靠是VxWorks的一個突出優(yōu)點,因而他得到了越來越多的用戶的認可。
2.2 實時性
實時性是指能夠在限定時間內執(zhí)行完規(guī)定的功能并對外部的異步事件做出響應的能力。實時性的強弱是以完成規(guī)定功能和做出響應時間的長短來衡量的。
VxWorks有很強的實時性,其系統(tǒng)本身的開銷很小,進程調度、進程間通信、中斷處理等系統(tǒng)公用程序精練而有效,他們造成的延遲很短。VxWorks 提供的多任務機制中對任務的控制采用了優(yōu)先級搶占(Preemptive Priority Scheduling)和輪轉調度(Round-Robin Scheduling)機制,也充分保證了可靠的實時性,使同樣的硬件配置能滿足更強的實時性要求,為應用的開發(fā)留下更大的余地。
2.3 可裁減性
VxWorks由一個體積很小的內核及一些可以根據需要進行定制的系統(tǒng)模塊組成。VxWorks內核最小為8kB,即便加上其他必要模塊,所占用的空間也很小,且不失其實時、多任務的系統(tǒng)特征。由于他的高度靈活性,用戶可以很容易地對這一操作系統(tǒng)進行定制或做適當開發(fā),來滿足自己的實際應用需要。
3 C/S模式網絡編程
網絡是VxWorks系統(tǒng)之間以及與其他系統(tǒng)聯系的主要途徑。在VxWorks網絡結構的最底層,通常使用以太網作為傳輸媒介;而在傳輸媒介的上一層,則使用TCP/IP和UDP/IP協議。
VxWorks網絡編程中最常見的是C/S模式,在該模式下,服務器端有一個任務(或多個任務)在指定的端口等待客戶來連接,服務程序等待客戶的連接信息,一旦連接上之后,就可以按照設計的數據交換方法和格式進行數據的傳輸;而客戶端則在需要的時候發(fā)出向服務端的連接請求??蛻舳伺c服務器端的關系如圖1 所示。
3.1 C/S模式網絡編程原理
網絡通信的基石是套接字,一個套接字是通信的一端。VxWorks為用戶提供了2種套接字,即流套接字和數據報套接字。流式套接字定義了一種可靠的面向連接的服務,實現了無差錯無重復的順序數據傳輸。數據報套接字定義了一種無連接的服務,數據通過相互獨立的報文進行傳輸,是無序的,并且不保證可靠,無差錯。
五連接的服務一般都是面向事務處理的,一個請求一個應答就完成了客戶端與服務端之間的信息交互。無連接的套接字C/S模式程序的流程如圖2所示。
面向連接的服務比無連接的服務處理起來要復雜。
套接字工作過程如下:服務器首先啟動,通過調用socket()建立一個套接口,然后調用bind()將該套接口和本地網絡地址聯系在一起,再調用listen()使套接口做好偵聽的準備,并規(guī)定他的請求隊列的長度,之后就調用accept()來接收連接。客戶在建立套接口后就可調用connect()和服務器建立連接。連接一旦建立,客戶機和服務器之間就可以通過調用recv()/recvfrom()和send ()/sendto()來發(fā)送和接收數據。最后,待數據傳送結束后,雙方調用close()關閉套接口。
評論