




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、第1章 網(wǎng)絡編程和開發(fā)環(huán)境1.1.1 11.1.2 2Visual C+ 2010Visual C+ 2010開發(fā)平臺開發(fā)平臺網(wǎng)絡編程的基本概念網(wǎng)絡編程的基本概念1 . 1 Visual C+ 2010開發(fā)平臺Visual Studio 2010Visual Studio 2010安裝安裝本書使用網(wǎng)上下載的Visual Studio 2010安裝包:cn_visual_studio_2010_ultimate_x86_dvd_532347.iso這是個鏡像(.iso)文件,需要虛擬光驅(qū)才能運行。用虛擬光驅(qū)軟件DAEMON Tools Lite載入鏡像,如圖1.1所示。1.1.1 Visual
2、Studio 2010安裝載入后彈出如圖1.2所示的啟動窗口。1.1.1 Visual Studio 2010安裝單擊“安裝Microsoft Visual Studio 2010”,進入如圖1.3所示的安裝向?qū)Ы缑?,單擊“下一步”按鈕繼續(xù)。1.1.1 Visual Studio 2010安裝在圖1.4所示窗口中選擇“我已閱讀并接受許可條款”,在圖1.5所示窗口中選擇“完全”,產(chǎn)品安裝路徑為默認的“C:Program FilesMicrosoft Visual Studio 10.0”,單擊“安裝”按鈕開始安裝進程。 1.1.1 Visual Studio 2010安裝Visual Studi
3、o 2010包含Microsoft .NET平臺的許多組件,如圖1.6所示。1.1.1 Visual Studio 2010安裝初次啟動會彈出如圖1.7所示的“選擇默認環(huán)境設置”對話框,本書是Visual C+ 編程,故選擇“Visual C+開發(fā)設置”,單擊“啟動Visual Studio”按鈕進入開發(fā)環(huán)境。1.1.1 Visual Studio 2010安裝Visual Studio 2010的Visual C+集成開發(fā)環(huán)境的起始界面如圖1.8所示。1.1.2 創(chuàng)建Visual C+項目工程選擇菜單命令“文件”“新建”“項目”,如圖1.9所示。 1.1.2 創(chuàng)建Visual C+項目工程系
4、統(tǒng)彈出“新建項目”對話框(如圖1.10所示),左邊“項目類型”樹中默認選項為“Visual C+”“MFC”,對應右邊“模板”選擇“MFC應用程序”。1.1.2 創(chuàng)建Visual C+項目工程單擊“確定”按鈕,彈出“MFC應用程序向?qū)А睂υ捒颍ㄈ鐖D1.11所示),接下來我們將在這個對話框的指引下輕松完成創(chuàng)建VC工程的工作,單擊“下一步”按鈕繼續(xù)。1.1.2 創(chuàng)建Visual C+項目工程在“應用程序類型”界面(如圖1.12所示)選中“基于對話框”單選按鈕。1.1.2 創(chuàng)建Visual C+項目工程接下來的“用戶界面功能”和“高級功能”界面(如圖1.13所示)都采用系統(tǒng)默認設置,連續(xù)單擊“下一步
5、”按鈕跳過。1.1.2 創(chuàng)建Visual C+項目工程最后一步出現(xiàn)的是“生成的類”,稍留意下可以看到,系統(tǒng)已經(jīng)自動為程序建立了兩個類CGetIPAndPortApp和CGetIPAndPortDlg(如圖1.14所示)。1.1.3 Visual C+可視化設計開發(fā)環(huán)境工作區(qū)主界面將呈現(xiàn)的樣子如圖1.15所示。1.1.3 Visual C+可視化設計主工作區(qū)大致分為三部分,最左邊是供用戶瀏覽程序結構的,包括好幾個選項卡界面,常用的是解決方案資源管理器、類視圖和資源視圖,如圖1.16所示。1.1.3 Visual C+可視化設計在本例的三個類中,CAboutDlg類和CGetIPAndPortDl
6、g類都有各自的對話框界面資源。資源視圖中Dialog目錄下有它們的ID號(對應的分別是IDD_ABOUTBOX和IDD_GETIPANDPORT_ DIALOG),雙擊ID號可以打開其對話框的界面設計工作區(qū),如圖1.17所示。1.1.3 Visual C+可視化設計只是針對本書所介紹的網(wǎng)絡編程,有一個控件需要特別提一下,那就是IP地址控件(如圖1.18所示)。它在界面上的顯示效果如圖1.19所示。 1.1.3 Visual C+可視化設計選擇工具箱中的控件設計程序界面,可以看到VC界面設計環(huán)境的使用極其方便,絲毫不比VB遜色。在布局界面時可以使用工具欄中提供的功能調(diào)整各個控件的大小、對齊方式。
7、如圖1.20所示,1.1.3 Visual C+可視化設計最終設計出的程序界面效果如圖1.21所示。1.1.4 一個簡單的Visual C+小程序例如,為了在程序代碼中獲得用戶輸入的IP,需要給IP地址控件關聯(lián)一個變量。如圖1.22所示,右擊該控件,在彈出的菜單中選擇“添加變量”命令。 1.1.4 一個簡單的Visual C+小程序出現(xiàn)“添加成員變量向?qū)А睂υ捒颍ㄈ鐖D1.23所示),將變量命名為“m_ip”,變量類別為“Control”。1.1.4 一個簡單的Visual C+小程序下面接著添加變量,給用于接收端口號的文本框關聯(lián)Value變量strport(如圖1.24所示)。1.1.4 一個
8、簡單的Visual C+小程序再設置該文本框的Number屬性為True(如圖1.25所示),之所以這樣設置,是為了限定用戶只能在這個文本框中輸入數(shù)字形式的端口號。1.1.4 一個簡單的Visual C+小程序本程序還有一個文本框是用于顯示程序獲取的IP和端口的,給它關聯(lián)Control型變量m_showIpAndPort,并且設置Read Only屬性為True(作為顯示信息窗口的文本框一般都設為只讀模式),如圖1.26所示。 1.1.4 一個簡單的Visual C+小程序程序界面上的“獲取”按鈕是實現(xiàn)本程序功能的關鍵,編程工作主要就是給這個按鈕添加事件處理程序。右擊“獲取”按鈕,在彈出的功能
9、菜單中選擇“添加事件處理程序”命令,如圖1.27所示。1.1.4 一個簡單的Visual C+小程序在“事件處理程序向?qū)А睂υ捒蛑袑⑦@個處理程序命名為“OnShowIpAndPort”,如圖1.28所示。1.1.4 一個簡單的Visual C+小程序單擊“添加編輯”按鈕,進入代碼編輯窗口(如圖1.29所示),VC自動打開需要編輯的程序代碼文件GetIPAndPortDlg.cpp并定位到源文件中相應的位置,供用戶添加自己的代碼。1.1.4 一個簡單的Visual C+小程序為“獲取”按鈕編寫的事件過程代碼如下:BYTE nFild4;/分別存放IP地址的四個字段CString sip; /IP
10、地址的字符串形式(可以直接顯示在界面上的)UpdateData(); /刷新對話框界面,獲取用戶輸入/驗證輸入是否合法if(m_ip.IsBlank()/若用戶沒有填寫IP地址,則提示填寫AfxMessageBox(請?zhí)顚慖P地址!);return;if(strport.IsEmpty()/若用戶忘了指定端口號,則提醒其指定AfxMessageBox(請指定進程端口!);return;/獲取用戶輸入的IP地址值m_ip.GetAddress(nFild0,nFild1,nFild2,nFild3);/將IP地址格式化為可以在計算機屏幕上顯示的字符串sip.Format(%d.%d.%d.%d,
11、nFild0,nFild1,nFild2,nFild3);/在界面上顯示用戶輸入的網(wǎng)絡進程地址(包括所在主機的IP和端口)m_showIpAndPort.SetWindowTextA(sip + : + strport);m_ip.SetFocus();/焦點回到IP地址欄1.1.4 一個簡單的Visual C+小程序雙擊“關于”按鈕,為其添加事件過程(如圖1.30所示)?!瓣P于”按鈕的Click事件代碼如下:CAboutDlg dlg;dlg.DoModal();/顯示“關于”對話框1.1.4 一個簡單的Visual C+小程序單擊工具欄上的“啟動調(diào)試”( )按鈕,程序界面如圖1.31所示。
12、我們先不填寫IP地址而直接單擊“獲取”按鈕,看看會發(fā)生什么。程序彈出了消息框,提醒填寫IP地址(如圖1.32所示)。 1.1.4 一個簡單的Visual C+小程序填寫完合法IP,再故意不填端口號,單擊“獲取”按鈕后,程序同樣也會彈出消息框,提醒輸入端口號(如圖1.33所示)。1.1.4 一個簡單的Visual C+小程序在IP和端口都合法填寫的情況下,單擊“獲取”按鈕,程序就會將用戶輸入的網(wǎng)絡進程地址(IP+端口)顯示在下方的輸出文本框中,如圖1.34所示。1.1.4 一個簡單的Visual C+小程序單擊“關于”按鈕,程序彈出“關于GetIPAndPort”對話框(如圖1.35所示),這是
13、一個版本聲明對話框,每一個Windows程序幾乎都有這樣一個對話框,用于聲明版本號和版權信息。1 . 2 網(wǎng)絡編程基礎知識1.2.1 1.2.1 計算機網(wǎng)絡協(xié)議計算機網(wǎng)絡協(xié)議網(wǎng)絡中的計算機要做到有條不紊地交換數(shù)據(jù),就必須遵守一些事先約定好的規(guī)則,這些規(guī)則、標準或約定就稱為網(wǎng)絡協(xié)議(Network Protocol),它主要由以下三個要素組成:(1)語法語法,即數(shù)據(jù)與控制信息的結構或格式;(2)語義語義,即需要發(fā)出何種控制信息,完成何種動作,以及做出何種響應;(3)同步同步,即事件實現(xiàn)順序的詳細說明。1.2.1 網(wǎng)絡協(xié)議該協(xié)議將網(wǎng)絡功能劃分成獨立的四層結構,自上而下分別是應用層、傳輸層、網(wǎng)際層和
14、網(wǎng)絡接口層,如圖1.36所示。1.2.1 網(wǎng)絡協(xié)議其實TCP/IP并不是一個單獨的協(xié)議,而是由一系列網(wǎng)絡協(xié)議所組成的協(xié)議集合(協(xié)議族),這個龐大的協(xié)議家族按照如圖1.37所示的分層結構組織起來構成的有機整體稱為網(wǎng)絡協(xié)議棧。1.2.1 網(wǎng)絡協(xié)議1. 1. 應用層(應用層(Application LayerApplication Layer)。)。應用層在TCP/IP協(xié)議棧的第4層,即最高層,它提供面向用戶的網(wǎng)絡服務,如進行文件的傳輸服務和遠程登錄服務等。不同的用戶對應用層服務的需求不同。因此,應用層定義了許多面向用戶的,提供特定服務的協(xié)議。比較常用的有遠程登錄協(xié)議(Telnet)、文件傳輸協(xié)議(
15、FTP)、超文本傳輸協(xié)議(HTTP)、域名系統(tǒng)(DNS)、簡單網(wǎng)絡管理協(xié)議(SNMP)、簡單郵件傳輸協(xié)議(SMTP)、郵局協(xié)議(POP3)和即時通信協(xié)議(OICQ)等。2. 2. 傳輸層(傳輸層(Transport LayerTransport Layer)。)。在應用層之下的是傳輸層,有的書中也稱為“運輸層”。在TCP/IP協(xié)議棧中,傳輸層處于第3層。傳輸層完成通常所說的兩臺主機之間的通信,其實質(zhì)是兩臺主機上對應的應用進程之間應用進程之間的通信,也稱為端到端(End to End)通信。1.2.1 網(wǎng)絡協(xié)議3. 3. 網(wǎng)際層(網(wǎng)際層(Internet LayerInternet Layer)
16、。)。網(wǎng)際層在TCP/IP協(xié)議棧的第2層,也稱為互聯(lián)網(wǎng)絡層(互聯(lián)層)或Internet層,因該層的主要協(xié)議是IP,所以也可簡稱為IP層。它是TCP/IP協(xié)議棧中最重要的一層,主要功能是將源主機上的分組根據(jù)需要發(fā)送到Internet中的任何一臺目標主機上。4. 4. 網(wǎng)絡接口層(網(wǎng)絡接口層(Host-to-network LayerHost-to-network Layer)。)。網(wǎng)絡接口層處于TCP/IP協(xié)議棧的最低層,它負責將其之上的網(wǎng)絡層所要發(fā)送出去的數(shù)據(jù)(即IP數(shù)據(jù)報)發(fā)送到其下面的物理網(wǎng)絡,或接收由物理網(wǎng)絡發(fā)送到該目標機的數(shù)據(jù)幀,并抽出IP數(shù)據(jù)報交給網(wǎng)際層。1.2.2 網(wǎng)絡應用編程界面
17、平時上網(wǎng)的時候如果單擊桌面右下角任務欄上表示網(wǎng)絡連接的圖標,在彈出的網(wǎng)絡連接狀態(tài)對話框中單擊“屬性”按鈕,就可以在連接使用的項目列表中看到已經(jīng)內(nèi)置于操作系統(tǒng)之中的TCP/IP了,如圖1.38所示。1.2.2 網(wǎng)絡應用編程界面學習網(wǎng)絡編程首先要清楚所做的是哪一個層次上的編程工作。目前,網(wǎng)絡的四層體系結構中的三層已經(jīng)有了成熟可靠的實現(xiàn)實體,如圖1.39所示。編程界面有兩種形式,一種是由內(nèi)核直接提供的系統(tǒng)調(diào)用,在Windows下表現(xiàn)為Windows API函數(shù);另一種是以程序庫方式提供的各種函數(shù)和類。1.2.2 網(wǎng)絡應用編程界面TCP/IP網(wǎng)絡環(huán)境下的應用程序是通過網(wǎng)絡應用編程界面(Socket,即
18、套接字)實現(xiàn)的。(1)Windows Socket的概念。Windows Socket顧名思義,就是在Windows環(huán)境下使用的Socket,那么Socket又是什么呢?它是一套網(wǎng)絡編程機制(或規(guī)范),簡稱為Winsock。(2)Windows Socket的來源。Socket最早是UNIX操作系統(tǒng)下流行的一種網(wǎng)絡編程接口,于1983年在Berkeley(加州大學伯克利分校)4.2 BSD操作系統(tǒng)中被首先引入,因此被稱為Berkeley Socket API。1.2.3 網(wǎng)絡程序工作機理通信時,其中的一個網(wǎng)絡程序?qū)⒁獋鬏數(shù)囊欢涡畔懭胨谥鳈C的Socket中,該Socket通過與網(wǎng)絡接口卡相連的傳輸介質(zhì)將這段信息發(fā)送到另外一臺主機的Socket中,使這段信息能夠傳送到其他程序中,如圖1.40所示。1.2.3 網(wǎng)絡程序工作機理為了滿足不同的通信程序?qū)νㄐ刨|(zhì)量和性能的要求,一般的網(wǎng)絡系統(tǒng)都提供了以下三種不同類型的套接字,以供用戶在設計網(wǎng)絡程序時根據(jù)需要進行選擇。 流式套接字(SOCK_STREAM)。它提供了一種可靠的、面向連接的雙向數(shù)據(jù)傳輸服務。實現(xiàn)了數(shù)據(jù)的無差錯、無重復地發(fā)送,內(nèi)設流量控制,被傳輸?shù)臄?shù)據(jù)看作是無記錄邊界的字節(jié)流。 數(shù)據(jù)報套接字(SOCK_DGRAM)。它提供了一種無連接、不可靠的雙向數(shù)據(jù)傳輸服務。數(shù)據(jù)以獨立的包形式被發(fā)送,并且保留了記錄邊界,不提供可靠性保
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 預防接種課件幻燈片
- 預防小學生近視教案課件
- 預防傳染主題班會課件
- 音樂課件兒童歌曲
- 2025年基因工程亞單元疫苗項目合作計劃書
- 屋面雨水排水系統(tǒng)安裝監(jiān)理指南
- 2025年建筑用天然石料項目合作計劃書
- 文化遺產(chǎn)傳承與現(xiàn)代化
- 衛(wèi)生部《手足口病預防控制指南版》
- 安全設施使用管理制度培訓
- 開工前安全檢查記錄表
- GB/T 29529-2013泵的噪聲測量與評價方法
- GB/T 2550-2016氣體焊接設備焊接、切割和類似作業(yè)用橡膠軟管
- GB/T 14335-2008化學纖維短纖維線密度試驗方法
- JJG 1186-2022 直流電能表檢定裝置檢定規(guī)程
- ISO9001:2015中英文對照版
- 單招英語詞匯表
- 初中英語單元整體教學講座課件
- 國家開放大學《老年用藥基本知識》形考任務1參考答案
- m6A甲基化研究方法
- 醫(yī)院智能化弱電設計方案
評論
0/150
提交評論