內容簡介
本書主要介紹使用Visual C++基於Windows Socket開發網路應用程式的方法。全書共分9章。第1章介紹計算機網路的基本工作原理、網路程式的工作模式、編程方法等內容; 第2章介紹使用Visual C++ 2010開發Windows應用程式的方法; 第3~8章由易到難逐步介紹流式套接字、數據報套接字以及原始套接字的編程方法和相關的Windows編程知識,並對網路通信中的多執行緒編程、I/O模型以及IP分組的捕獲分析等內容進行深入講解; 第9章介紹MFC提供的兩個WinSock類——CAsyncSocket類和CSocket類的使用方法。本書主要供普通高校計算機類專業的大學本科生使用,也可供對網路編程感興趣的各類人員自學使用。
目錄
第1章計算機網路基礎知識
1.1計算機網路的概念與原理
1.1.1計算機網路的基本概念
1.1.2典型的計算機網路——乙太網
1.1.3廣域網與分組交換技術
1.1.4網路互聯
1.1.5計算機網路體系結構
1.2IP協定
1.2.1IP位址
1.2.2IPv4的分組結構
1.2.3路由與路由器
1.2.4主機的路由表及IP分組的傳送過程
1.2.5ARP協定
1.3TCP與UDP
1.3.1連線埠號與網路進程地址
1.3.2TCP協定
1.3.3UDP協定
1.4網路套用編程接口——套接字
1.4.1套接字編程接口的起源與發展
1.4.2套接字的含義與分類
1.4.3套接字接口的位置及實現方式
1.5網路應用程式的結構模型
1.6網路編程的不同層次
習題
第2章簡單的Windows程式設計
2.1VisualC++2010概述
2.2VisualC++的數據類型
2.3Unicode字元集
2.4對話框應用程式
2.4.1對話框應用程式的創建
2.4.2VisualC++2010開發環境
2.4.3MFC對話框應用程式結構
2.4.4設定對話框的屬性
2.5Windows控制項
2.5.1創建控制項
2.5.2常用控制項
2.6Windows的訊息驅動機制與訊息映射
2.6.1Windows的訊息驅動機制
2.6.2訊息映射
2.7使用控制項變數訪問控制控制項
2.8添加用戶自定義訊息
2.9MFC的檔案操作
2.9.1CFile類
2.9.2CFileDialog類
習題
實驗1創建對話框應用程式及控制項使用
第3章WinSock編程初步
3.1WinSockAPI函式
3.2WinSock開發組件和運行組件
3.3WinSock的網路地址表示
3.3.1地址結構
3.3.2地址轉換函式
3.4WinSock的錯誤處理
3.5網路位元組順序
3.6網路配置信息查詢
3.6.1主機名字與IP位址查詢
3.6.2服務查詢
3.6.3協定查詢
3.6.4異步信息查詢函式及其編程方法
習題
實驗2查詢主機網路配置信息
第4章TCP程式設計
4.1簡單的TCP程式設計
4.1.1TCP客戶端和伺服器端的互動過程
4.1.2一個簡單的TCP通信程式
4.2獲取與套接字關聯地址
4.3數據傳送和接收的過程
4.3.1傳送緩衝區與接收緩衝區
4.3.2send函式的工作過程
4.3.3recv()函式的工作過程
4.4數據傳輸格式
4.5實例:檔案傳輸程式設計
4.5.1簡單的檔案傳輸
4.5.2檔案的斷點續傳
4.5.3檔案的分片傳輸與多點下載
習題
實驗3使用流式套接字傳輸數據
第5章VisualC++中的多執行緒編程
5.1進程和執行緒
5.1.1進程和執行緒
5.1.2執行緒的概念
5.1.3進程與執行緒的差別
5.2VC++中的多執行緒編程
5.2.1使用Win32SDK函式實現多執行緒
5.2.2C++運行庫中的多執行緒函式
5.2.3使用MFC類庫
5.3TCP伺服器端程式的多執行緒編程
5.4執行緒間的通信
5.5執行緒的互斥與同步
5.5.1互斥
5.5.2執行緒的同步
5.6主監控執行緒和執行緒池
習題
實驗4TCP伺服器端的多執行緒編程
第6章WinSock的I/O模型
6.1套接字的非阻塞工作模式
6.1.1阻塞與非阻塞模式的概念
6.1.2套接字非阻塞模式的設定方法
6.1.3套接字非阻塞模式下的編程方法
6.2Select模型
6.2.1Select模型的工作機制
6.2.2使用Select模型編程的方法
6.3WSAAsyncSelect模型
6.3.1WSAAsyncSelect()函式
6.3.2WSAAsyncSelect模型的編程方法
6.4WSAEventSelect模型
6.4.1WinSock中的事件對象函式
6.4.2WSAEventSelect模型的函式
6.4.3WSAEventSelect模型的編程方法
6.5重疊I/O模型
6.5.1重疊I/O的概念
6.5.2重疊I/O模型的程式流程
6.6完成連線埠模型
6.6.1實現完成連線埠模型的流程
6.6.2工作執行緒的主要任務
6.6.3關閉阻塞的工作執行緒
習題
實驗5WinSock的I/O模型
第7章UDP程式設計
7.1數據報套接字編程的基本方法
7.1.1客戶/伺服器模式
7.1.2常用的數據收發函式——sendto()與recvfrom()
7.1.3對等模式
7.1.4使用WSAAsyncSelect模型
7.1.5WSASendTo()函式與WSARecvFrom()函式
7.2廣播程式設計
7.2.1套接字選項與setsockopt()函式
7.2.2廣播數據的傳送與接收
7.2.3廣播程式流程
習題
實驗6數據報套接字編程
第8章原始套接字編程
8.1原始套接字及其功能
8.2原始套接字的通信流程
8.2.1創建原始套接字
8.2.2使用原始套接字傳送和接收數據
8.3收發ICMP數據包
8.4傳送自定義的IP分組
8.5捕獲IP數據包
習題
第9章使用MFC的WinSock類編程
9.1CAsyncSocket類
9.1.1CAsyncSocket對象
9.1.2CAsyncSocket類的使用
9.2CSocket類
9.2.1CSocket類概述
9.2.2CArchive類與對象串列化
9.2.3CSocketFile類
9.2.4使用CSocket及串列化方法編寫網路程式
習題
附錄常見的WinSock錯誤代碼
參考文獻