官术网_书友最值得收藏!

第3章 windows環境下進行網絡通信

  • 未來城科技
  • 寒冰作家
  • 1275字
  • 2023-06-29 00:45:51

基于wince的嵌入式網絡通信系統設計

由于網絡通訊的快速、便捷等優點,其在嵌入式系統中應用越來越多。最基本的實現方法是應用windows sockets實現;visual studio開發環境提供了大量基于windows sockets的通訊api函數,如winsockapi、wininetapi和isapi,將這些api函數與mfc集成在一起,使網絡通信的開發周期越來越短、編程方法越來越簡單。本文重點介紹了使用mfc的csocket類編寫pc端網絡通信客戶端的的實現方法,并介紹了如何完成windows ce操作系統下網絡通訊程序的設計。

1、csocket編程

mfc將復雜的winsock api函數封裝到相關類,使得網絡編程更容易、簡單。為了給編程人員提供更加方便的接口,mfc提供了csocket類,它是由casyncsocket類繼承下來的,提供了比casyncsocket類更高層、更易于編程操作的winsock api接口。使用csocket對象涉及carchive和csocketfile類對象。csocket編程步驟:(1)構造一個csocket對象;(2)使用create()成員函數生成一個socket對象。設計客戶端程序時,create()函數一般情況下應該使用默認參數。對于服務端程序,在本文由論文聯盟

2、網絡客戶端程序設計

2.1 pc機網絡通訊客戶端設計

(1)啟動visual studio 2010,創建一個基于對話框架的mfc應用程序項目,將該項目命名為“test“;在mfc向導中選中windows套接字;

(2)在對話框中添加按鈕控件與編輯框控件;

(3)使用類向導為應用程序的按鈕添加鼠標單擊消息響應函數;

(4)使用類向導在應用程序中定義新類cnewsocket,其基類選擇為csocket;重載newsocket類的onaccept()、onreceive()、onclose()函數;增加公有變量ctestdlg *m_dlg; intm_status并添加成員函數void getdlg(ctestdlg *dlg);

(5)為窗口類testdlg添加5個公有成員變量:csocketfile *m_file;carchive *m_arout;carchive *m_arin;cnewsocket* m_serversocket;cnewsocket* m_clientsocket;并添加公有4個成員函數:voidsocketreset();void onclose();void onreceive();void onaccept();

(6)編譯

2.2嵌入式wince系統網絡通訊客戶端設計

對于嵌入式wince系統客戶端,其源代碼與pc機源代碼基本一樣,只有步驟(1)不同,其他步驟與pc過程相同。步驟(1):啟動visual studio 2005,創建一個新項目,project types選擇“smart device”,然后templates選擇“mfc smart device application”,將該項目命名為“test“;在mfc向導中選中windows套接字。

3、系統測試

將編譯好的嵌入式wince系統網絡通訊客戶端下載到arm開發板nandflash中,利用交叉網線連接pc機與arm開發板。待連接成功后,通過網絡鏈接屬性查看雙方ip地址。啟動客戶端,設置好需要鏈接的ip地址,將pc機設置為服務器,arm端設置為客戶端,啟動連接。通訊連接成功后,通訊結果如圖1所示。

(a)pc機客戶端(b)嵌入式客戶端

圖1測試結果

4、結論

文中主要介紹了mfc中csocket類編程思想與設計方法,并通過csocket類實現了pc-arm網絡通信客戶端設計。arm平臺為ok6410開發板,采用wince操作系統。pc與arm通信采用客戶/服務器通信模型,pc與arm均可選擇為服務器,通過實例完成了pc機與嵌入式系統的網絡通訊客戶端設計。該設計方法的缺點在于通訊數據較為單一,無法實現圖片的傳輸等。

主站蜘蛛池模板: 英吉沙县| 台中市| 如东县| 新绛县| 古浪县| 十堰市| 三河市| 鹤壁市| 达州市| 宜川县| 永新县| 钟山县| 武清区| 井研县| 阜康市| 泰宁县| 文山县| 梧州市| 长垣县| 隆尧县| 万山特区| 平南县| 怀柔区| 通江县| 苏尼特左旗| 奉新县| 瓦房店市| 闽清县| 枞阳县| 阳新县| 定州市| 大悟县| 黔南| 成武县| 江达县| 多伦县| 咸丰县| 亚东县| 石柱| 丹寨县| 乌兰察布市|