網路編程習題
Ⅰ Windows網路編程案例教程的目 錄
1.1網路編程模型
1.1.1開放系統互連參考模型
1.1.2 TCP/IP協議棧模型
1.1.3套接字編程模型
1.1.4網間多線程會話模型
1.2 P2P網路模型
1.2.1 P2P的發展背景
1.2.2三代P2P網路
1.2.3 P2P網路分類
1.2.4 P2P典型應用舉例
1.3 Windows網路編程
1.3.1Windows網路編程框架
1.3.2Windows網路協議
1.3.3Windows Sockets編程模型
1.3.4WinSock2工作模式
1.3.5第一個網路程序——hostent
習題1 2.1Win32 API窗體編程
2.1.1彈出一個消息框
2.1.2創建一個窗體
2.1.3為窗體添加控制項
2.2WinSock2 API編程框架
2.2.1WinSock2 API程序結構
2.2.2WinSock2 API庫函數
2.2.3WinSock2的新發展
2.3阻塞/非阻塞模式套接字編程
2.3.1阻塞模式套接字客戶機編程
2.3.2阻塞模式套接字伺服器編程
2.3.3非阻塞模式套接字客戶機編程
2.3.4非阻塞模式套接字伺服器編程
2.3.5套接字錯誤處理
2.4非同步套接字編程
2.4.1非同步套接字客戶機編程
2.4.2非同步套接字伺服器編程
2.4.3伺服器響應多客戶機的並發訪問
2.5WinSock2 I/O模型編程
2.5.1Blocking I/O模型
2.5.2select I/O模型
2.5.3WSAAsyncSelect I/O模型
2.5.4WSAEventSelect I/O模型
2.5.5Overlapped I/O模型
2.5.6I/O Completion Port模型
2.5.7I/O模型的選擇
習題2 3.1MFC套接字編程模型
3.1.1MFC編程框架
3.1.2CAsyncSocket類編程模型
3.1.3CSocket類編程模型
3.1.4派生套接字類
3.1.5MFC套接字類的阻塞/非阻塞模式
3.2CAsyncSocket類編程實例
3.2.1點對點通信功能和技術要點
3.2.2創建客戶機
3.2.3客戶機代碼分析
3.2.4創建伺服器
3.2.5伺服器代碼分析
3.2.6點對點通信客戶機與伺服器聯合測試
3.3CSocket類編程實例
3.3.1聊天室功能和技術要點
3.3.2創建聊天室伺服器
3.3.3聊天室伺服器代碼分析
3.3.4創建聊天室客戶機
3.3.5聊天室客戶機代碼分析
3.3.6聊天室客戶機與伺服器聯合測試
習題3 4.1WinInet API編程
4.1.1WinInet HINTERNET句柄
4.1.2WinInet通用API
4.1.3關閉HINTERNET句柄
4.2WinInet FTP編程
4.2.1FTP API簡介
4.2.2FTP伺服器文件目錄遍歷
4.2.3FTP伺服器目錄導航
4.2.4創建和刪除FTP伺服器目錄
4.2.5從FTP伺服器上獲取文件
4.2.6上傳文件到FTP伺服器
4.2.7從FTP伺服器上刪除文件
4.2.8FTP伺服器目錄或文件的重命名
4.3WinInet HTTP編程
4.3.1HTTP API基本操作
4.3.2HTTP Cookies編程
4.3.3HTTP Authentication編程
4.3.4HTTP URL編程
4.3.5獲取HTTP請求的頭部信息
習題4 5.1MFC WinInet概述
5.1.1MFC WinInet基本類
5.1.2MFC WinInet類之間的關聯
5.1.3MFC WinInet客戶機編程步驟
5.1.4MFC WinInet經典編程模型
5.2簡易FTP客戶機編程實例
5.2.1FTP客戶機/伺服器模型
5.2.2功能定義與技術要點
5.2.3FTP伺服器的搭建
5.2.4簡易FTP客戶機的創建步驟
5.2.5主要代碼
5.2.6系統測試
5.3HTTP瀏覽器編程實例
5.3.1瀏覽器/伺服器工作模型
5.3.2MFC CHtmlView編程模型
5.3.3MFCIE的功能和技術要點
5.3.4MFCIE的創建步驟
5.3.5MFCIE功能測試
習題5 6.1SMTP協議
6.1.1SMTP工作模型
6.1.2SMTP命令解析
6.1.3SMTP響應狀態碼
6.2POP3協議
6.2.1POP3工作模型
6.2.2POP3命令解析
6.2.3用POP3命令與163郵箱會話
6.3MIME郵件擴展
6.3.1MIME對電子郵件協議的擴展
6.3.2MIME對郵件信頭的擴展
6.3.3MIME郵件的內容類型
6.3.4Base64編碼
6.4SMTP協議編程實例
6.4.1SMTP發送郵件工作模型
6.4.2功能和技術要點
6.4.3項目創建步驟
6.4.4主要代碼
6.4.5項目測試
6.5POP3協議編程實例
6.5.1POP3客戶機工作模型
6.5.2功能和技術要點
6.5.3項目創建步驟
6.5.4項目測試
習題6 7.1進程與線程
7.1.1進程與線程的關系
7.1.2Windows進程的內存結構
7.1.3Windows線程的優先順序
7.2用C和Win32 API編寫多線程
7.2.1Win32 API線程編程
7.2.2用C語言編寫多線程
7.2.3線程同步
7.2.4創建多線程的步驟
7.2.5多線程程序——笑臉
7.3用C++和MFC編寫多線程
7.3.1MFC線程類
7.3.2用戶界面線程
7.3.3工作線程
7.3.4線程同步類
7.3.5MFC多線程程序——自行車比賽
習題7 8.1WinPcap概述
8.1.1WinPcap的功能
8.1.2Wireshark網路分析工具
8.1.3WinDump網路嗅探工具
8.1.4WinPcap的獲取和安裝
8.1.5WinPcap工作模型
8.1.6NPF與NDIS的關系
8.1.7NPF工作模型
8.1.8WinPcap開發環境配置
8.2WinPcap編程框架
8.2.1結構體與宏定義
8.2.2WinPcap API函數
8.2.3過濾器表達式
8.2.4程序的創建和測試
8.3WinPcap編程應用
8.3.1獲取網路設備列表
8.3.2打開適配器捕獲數據包
8.3.3捕獲和列印所有數據包
8.3.4過濾數據包
8.3.5分析數據包
8.3.6統計網路流量
習題8 9.1五子棋簡介
9.1.1棋盤和棋子
9.1.2五子棋術語
9.1.3行棋規則
9.1.4五子棋的人機博弈
9.1.5如何判斷勝負
9.2人機對戰系統設計
9.2.1功能需求
9.2.2創建項目程序框架
9.2.3導入資源文件
9.2.4主菜單設計
9.2.5人機對戰項目類圖
9.2.6消息結構體設計
9.2.7人機對戰邏輯模型
9.2.8游戲基類CGame的設計
9.2.9人機對戰類COneGame的設計
9.2.10棋盤類CTable的設計
9.2.11界面類CFiveDlg的設計
9.2.12項目測試
9.3網路對戰系統設計
9.3.1擴展功能需求
9.3.2定義對話消息
9.3.3網路對戰新增界面元素
9.3.4網路對戰基本類圖
9.3.5網路對戰通信模型
9.3.6CFiveSocket類的設計
9.3.7CTwoGame類的設計
9.3.8修改CTable類的設計
9.3.9CServerDlg類和CClientDlg類的設計
9.3.10CNameDlg類和CStatDlg類的設計
9.3.11完善CFiveDlg類的設計
9.3.12項目測試
習題9 程序1.1主機名稱和地址解析完整代碼20
程序2.1彈出一個消息框完整代碼25
程序2.2創建一個窗體完整代碼31
程序2.3為窗體添加控制項完整代碼36
程序2.4阻塞模式套接字客戶機完整代碼48
程序2.5阻塞模式套接字伺服器完整代碼52
程序2.6非阻塞模式套接字客戶機完整代碼54
程序2.7非阻塞模式套接字伺服器完整代碼56
程序2.8套接字錯誤處理完整代碼61
程序2.9非同步套接字客戶機完整代碼65
程序2.10非同步套接字伺服器完整代碼73
程序2.11伺服器響應多客戶機的並發訪問完整代碼81
程序2.12TcpClient客戶機程序完整代碼89
程序2.13select I/O模型回送伺服器完整代碼93
程序2.14WSAEventSelect I/O模型回送伺服器完整代碼107
程序2.15用完成埠開發回聲伺服器完整代碼120
程序3.1點對點通信客戶機完整代碼148
程序3.2點對點通信伺服器完整代碼161
程序3.3聊天室伺服器完整代碼178
程序3.4聊天室客戶機完整代碼191
程序4.1Internet數據下載通用常式1206
程序4.2Internet數據下載通用常式2208
程序4.3獲取FTP文件目錄並顯示通用常式210
程序4.4遍歷FTP伺服器目錄並在列表框中顯示214
程序4.5更改當前目錄並顯示216
程序4.6在FTP伺服器上創建新目錄217
程序4.7從FTP伺服器上刪除目錄218
程序4.8從遠程伺服器下載文件219
程序4.9上傳文件到FTP伺服器220
程序4.10從FTP伺服器上刪除文件221
程序4.11FTP伺服器目錄或文件的重命名222
程序4.12建立WWW連接224
程序4.13讀取Cookie227
程序4.14創建會話Cookie和持久Cookie228
程序4.15用InternetErrorDlg處理HTTP驗證229
程序4.16用InternetSetOption處理HTTP驗證230
程序4.17用HttpQueryInfo獲取HTTP請求的頭部信息232
程序5.1創建一個最簡單的瀏覽器237
程序5.2用HTTP下載一個Web頁面並顯示238
程序5.3用FTP下載一個文件238
程序5.4遍歷目錄247
程序5.5下載文件248
程序5.6上傳文件249
程序6.1Base64編碼、解碼程序278
程序7.1列印變數的內存地址292
程序7.2用CreateThread創建兩個計數線程297
程序7.3用C語言編寫字元飄移線程303
程序7.4用C語言編寫多線程同步實例1305
程序7.5用C語言編寫多線程同步實例2307
程序7.6笑臉程序完整代碼308
程序7.7用戶界面線程用於伺服器套接字編程315
程序7.8工作線程的創建和調用317
程序7.9自行車比賽程序完整代碼318
程序8.1獲取網路設備列表完整代碼340
程序8.2打開適配器並捕獲數據包完整代碼342
程序8.3捕獲和列印所有數據包完整代碼344
程序8.4PacketFilter數據包過濾器完整代碼347
程序8.5捕獲UDP數據包並分析其頭部完整代碼350
程序8.6監聽TCP網路流量完整代碼355
程序9.1游戲基類CGame的定義370
程序9.2人機對戰類COneGame的定義372
程序9.3人機對戰類COneGame的實現373
程序9.4人機對戰類CTable的定義380
程序9.5人機對戰類CTable的實現381
程序9.6主界面類CFiveDlg的定義388
程序9.7主界面類CFiveDlg的實現389
程序9.8套接字通信類CFiveSocket的定義396
程序9.9套接字通信類CFiveSocket的實現397
程序9.10網路對戰類CTwoGame的定義398
程序9.11網路對戰類CTwoGame的實現398
程序9.12修改棋盤類CTable400