前言:本站為你精心整理了網絡通信系統(tǒng)的軟件設計范文,希望能為你的創(chuàng)作提供參考價值,我們的客服老師可以幫助你提供個性化的參考范文,歡迎咨詢。
1WindowsCE中的網絡通信
WindowsCE6.0在網絡通信方面提供了完善的軟件支持,包括:(1)提供與Unix完全兼容的SocketAPI函數(shù),使其他平臺的網絡應用程序很容易移植到WindowsCE中,而WindowsCE中的應用程序也容易移植到其他平臺中;(2)操作系統(tǒng)本身也包含大量各種網絡協(xié)議,如TCP/IP、UDP、ICMP等;(3)操作系統(tǒng)本身提供各種網絡服務,如IIS、TFTP;(4)提供小端口網卡驅動程序接口,只需編寫網卡的小端口驅動程序就能利用該網卡實現(xiàn)上面提供的各種網絡協(xié)議及網絡服務;
2面向連接的TCP通信
TCP通信是一種面向連接的、可靠的、基于字節(jié)流的傳輸層通信協(xié)議。具有五大特點:①面向連接的傳輸;②端到端的通信;③高可靠性;④全雙工方式傳輸;⑤采用字節(jié)流方式。TCP通信是指在進行通信之前,通信雙方必須建立連接,通信結束之后終止其連接。也就是指當兩臺計算機上的兩個應用程序之間利用TCP進行通信時,源和目標之間會建立一個虛擬連接,這個連接一旦建立,兩臺計算機之間就可以把數(shù)據(jù)當作一個雙向字節(jié)流進行交換。TCP建立的連接是端到端的連接,即源與目標之間的連接。TCP協(xié)議向應用層提供了面向連接的服務,以確保網絡上所傳送的數(shù)據(jù)包被完整、正確、可靠的接收。一旦數(shù)據(jù)有損傷或丟失,則由TCP負責重傳,應用層不參與解決。本文在WindowsCE中實現(xiàn)一個TCP客戶端應用程序,向PC機端的TCP服務器請求連接,連接成功后,客戶端應用程序就可以與PC端的TCP服務端應用程序進行TCP通信了,連接的流程圖如圖2所示。在網絡應用中,網絡通信一般可通過Socket實現(xiàn)。Socket編程均采用客戶機/服務器模式。
3軟件系統(tǒng)設計
由于在WindowsCE下的TCP/IP協(xié)議處理方法是分別在服務器端和客戶機端創(chuàng)建Socket程序,建立通信聯(lián)系的,下面就分別給出服務器端Socket和客戶機端Socket的實現(xiàn)方法。調用的主要函數(shù)有:創(chuàng)建套接字函數(shù)socket、監(jiān)聽函數(shù)listen、等待連接函數(shù)accept、數(shù)據(jù)接收函數(shù)read、數(shù)據(jù)發(fā)送函數(shù)write等。
3.1服務器端socket操作(1)建立套接字函數(shù)socket;(2)綁定地址和端口函數(shù)bind,將該socket與本機地址和端口號捆綁;(3)建立套接口隊列函數(shù)listen,在監(jiān)聽端口上監(jiān)聽客戶機的連接請求;(4)接收連接函數(shù)accept,當accept捕捉到一個連接請求時,就建立連接線路并返回一個新的通信文件描述符;(5)處理連接函數(shù)read/write;(6)關閉套接口close。服務器端利用VisualC++編寫可運行于PC機上的TCP通信應用程序。該程序調用Windows平臺提供的SocketAPI函數(shù),使用TCP協(xié)議。服務器端首先創(chuàng)建一個socket,等待與客戶機端的連接,連接成功后進行數(shù)據(jù)的傳送。
3.2客戶機端socket操作(1)創(chuàng)建客戶端的Socket客戶端應用程序首先調用WSAStartup函數(shù)來與Winsock的動態(tài)連接庫建立關系,然后調用socket來建立一個TCPsocket。socket函數(shù)第一個參數(shù)只能是AF_INET,socket函數(shù)的第二個參數(shù)設置位SOCK_STREAM,其第三個參數(shù)指定為0。(2)向服務器提出連接申請對客戶端來說,它不需要綁定,可以直接連接服務器端。調用connect函數(shù)來提出與服務器端建立連接的申請,首先定義一個地址結構體變量,并對其成員進行賦值,設定服務器端的IP地址和端口。(3)和服務器端進行通信當建立連接后,就可以調用send函數(shù)向服務器端發(fā)送數(shù)據(jù)了,之后調用recv函數(shù)接收服務器發(fā)送的數(shù)據(jù)。(4)關閉套接字當完成通信后,調用closesocket函數(shù)關閉套接字,釋放為此套接字分配的資源。最后調用WSACleanup函數(shù),終止對套接字庫的使用??蛻舳死肰isualStudio2005編寫一個可運行于WindowsCE6.0操作系統(tǒng)上的應用程序,該程序調用WindowsCE平臺提供的SocketAPI函數(shù),使用TCP協(xié)議,通過以太網芯片驅動。
系統(tǒng)測試
用網線連接PC機與網絡終端,在網絡終端中的以太網芯片設置WindowsCE的IP地址,確保通過PC可以Ping通網絡終端。在PC機上運行TCP測試工具軟件,設置本機端口號為1011,然后點擊“Connection”按鈕,啟動一個TCP服務。在WindowsCE中,點擊Embedded_TCP.exe,在跳出的對話框中填寫要連接的服務端地址(即PC機地址,為19168.22)和端口號(為1011),然后單擊“connect”按鈕,創(chuàng)建成功,按鈕會變成不可用,否則會報錯。這時,TCP測試工具軟件中監(jiān)聽到一個客戶端連接,就可以與客戶端進行網絡通信了。
結語
本文根據(jù)WindowsCE操作系統(tǒng)的特點和TCP協(xié)議,利用Socket套接字編程,設計了在WindowsCE下的網絡通信軟件,并在網絡終端中運行成功。軟件可實現(xiàn)嵌入式網絡終端和PC機之間的通信功能,具有較大的靈活性和擴展性。在此基礎上可開發(fā)文本傳輸、通信故障檢測等應用軟件。
作者:顧亭亭單位:南京航空航天大學金城學院