网络编程习题
Ⅰ 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