《Windows网络编程案例教程》PDF下载

  • 购买积分:14 如何计算积分?
  • 作  者:董相志编著
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2014
  • ISBN:9787302344896
  • 页数:415 页
图书介绍:本教材设计了网络编程领域的11个案例,涉及网络远程控制、聊天、下载、上传、监控、入侵检测、计费、防火墙和网络管理等网络实用编程技术领域。

第1章 网络编程概述 1

1.1 网络编程模型 1

1.1.1 开放系统互连参考模型 1

1.1.2 TCP/IP协议栈模型 3

1.1.3 套接字编程模型 6

1.1.4 网间多线程会话模型 8

1.2 P2P网络模型 8

1.2.1 P2P的发展背景 9

1.2.2 三代P2P网络 10

1.2.3 P2P网络分类 11

1.2.4 P2P典型应用举例 12

1.3 Windows网络编程 13

1.3.1 Windows网络编程框架 13

1.3.2 Windows网络协议 15

1.3.3 Windows Sockets编程模型 15

1.3.4 WinSock2工作模式 17

1.3.5 第一个网络程序——hostent 19

习题1 22

第2章 WinSock2 API编程 23

2.1 Win32 API窗体编程 23

2.1.1 弹出一个消息框 23

2.1.2 创建一个窗体 28

2.1.3 为窗体添加控件 33

2.2 WinSock2 API编程框架 39

2.2.1 WinSock2 API程序结构 39

2.2.2 WinSock2 API库函数 40

2.2.3 WinSock2的新发展 43

2.3 阻塞/非阻塞模式套接字编程 46

2.3.1 阻塞模式套接字客户机编程 46

2.3.2 阻塞模式套接字服务器编程 50

2.3.3 非阻塞模式套接字客户机编程 53

2.3.4 非阻塞模式套接字服务器编程 56

2.3.5 套接字错误处理 59

2.4 异步套接字编程 62

2.4.1 异步套接字客户机编程 62

2.4.2 异步套接字服务器编程 71

2.4.3 服务器响应多客户机的并发访问 80

2.5 WinSock2 I/O模型编程 88

2.5.1 Blocking I/O模型 88

2.5.2 select I/O模型 92

2.5.3 WSAAsyncSelect I/O模型 99

2.5.4 WSAEventSelect I/O模型 101

2.5.5 Overlapped I/O模型 113

2.5.6 I/O Completion Port模型 117

2.5.7 I/O模型的选择 126

习题2 127

第3章 MFC套接字编程 128

3.1 MFC套接字编程模型 128

3.1.1 MFC编程框架 128

3.1.2 CAsyncSocket类编程模型 133

3.1.3 CSocket类编程模型 135

3.1.4 派生套接字类 138

3.1.5 MFC套接字类的阻塞/非阻塞模式 138

3.2 CAsyncSocket类编程实例 139

3.2.1 点对点通信功能和技术要点 139

3.2.2 创建客户机 139

3.2.3 客户机代码分析 148

3.2.4 创建服务器 155

3.2.5 服务器代码分析 161

3.2.6 点对点通信客户机与服务器联合测试 168

3.3 CSocket类编程实例 169

3.3.1 聊天室功能和技术要点 169

3.3.2 创建聊天室服务器 169

3.3.3 聊天室服务器代码分析 178

3.3.4 创建聊天室客户机 187

3.3.5 聊天室客户机代码分析 191

3.3.6 聊天室客户机与服务器联合测试 200

习题3 200

第4章 Windows Internet编程 202

4.1 WinInet API编程 202

4.1.1 WinInet HINTERNET句柄 202

4.1.2 WinInet通用API 205

4.1.3 关闭HINTERNET句柄 212

4.2 WinInet FTP编程 213

4.2.1 FTP API简介 213

4.2.2 FTP服务器文件目录遍历 214

4.2.3 FTP服务器目录导航 216

4.2.4 创建和删除FTP服务器目录 217

4.2.5 从FTP服务器上获取文件 219

4.2.6 上传文件到FTP服务器 220

4.2.7 从FTP服务器上删除文件 221

4.2.8 FTP服务器目录或文件的重命名 222

4.3 WinInet HTTP编程 223

4.3.1 HTTP API基本操作 223

4.3.2 HTTP Cookies编程 226

4.3.3 HTTP Authentication编程 228

4.3.4 HTTP URL编程 231

4.3.5 获取HTTP请求的头部信息 232

习题4 233

第5章 MFC Internet编程 234

5.1 MFC WinInet概述 234

5.1.1 MFC WinInet基本类 234

5.1.2 MFC WinInet类之间的关联 236

5.1.3 MFC WinInet客户机编程步骤 237

5.1.4 MFC WinInet经典编程模型 239

5.2 简易FTP客户机编程实例 240

5.2.1 FTP客户机/服务器模型 240

5.2.2 功能定义与技术要点 241

5.2.3 FTP服务器的搭建 242

5.2.4 简易FTP客户机的创建步骤 244

5.2.5 主要代码 247

5.2.6 系统测试 250

5.3 HTTP浏览器编程实例 250

5.3.1 浏览器/服务器工作模型 250

5.3.2 MFC CHtmlView编程模型 252

5.3.3 MFCIE的功能和技术要点 255

5.3.4 MFCIE的创建步骤 256

5.3.5 MFCIE功能测试 260

习题5 261

第6章 SMTP/POP3编程 262

6.1 SMTP协议 262

6.1.1 SMTP工作模型 262

6.1.2 SMTP命令解析 264

6.1.3 SMTP响应状态码 264

6.2 POP3协议 266

6.2.1 POP3工作模型 266

6.2.2 POP3命令解析 267

6.2.3 用POP3命令与163邮箱会话 267

6.3 MIME邮件扩展 269

6.3.1 MIME对电子邮件协议的扩展 270

6.3.2 MIME对邮件信头的扩展 270

6.3.3 MIME邮件的内容类型 271

6.3.4 Base64编码 272

6.4 SMTP协议编程实例 273

6.4.1 SMTP发送邮件工作模型 273

6.4.2 功能和技术要点 274

6.4.3 项目创建步骤 275

6.4.4 主要代码 278

6.4.5 项目测试 284

6.5 POP3协议编程实例 285

6.5.1 POP3客户机工作模型 285

6.5.2 功能和技术要点 286

6.5.3 项目创建步骤 286

6.5.4 项目测试 288

习题6 289

第7章 Windows多线程编程 290

7.1 进程与线程 290

7.1.1 进程与线程的关系 290

7.1.2 Windows进程的内存结构 291

7.1.3 Windows线程的优先级 293

7.2 用C和Win32 API编写多线程 295

7.2.1 Win32 API线程编程 296

7.2.2 用C语言编写多线程 301

7.2.3 线程同步 305

7.2.4 创建多线程的步骤 306

7.2.5 多线程程序——笑脸 307

7.3 用C++和MFC编写多线程 311

7.3.1 MFC线程类 312

7.3.2 用户界面线程 314

7.3.3 工作线程 316

7.3.4 线程同步类 317

7.3.5 MFC多线程程序——自行车比赛 318

习题7 324

第8章 WinPcap编程 325

8.1 WinPcap概述 325

8.1.1 WinPcap的功能 325

8.1.2 Wireshark网络分析工具 326

8.1.3 WinDump网络嗅探工具 326

8.1.4 WinPcap的获取和安装 327

8.1.5 WinPcap工作模型 328

8.1.6 NPF与NDIS的关系 328

8.1.7 NPF工作模型 329

8.1.8 WinPcap开发环境配置 331

8.2 WinPcap编程框架 334

8.2.1 结构体与宏定义 334

8.2.2 WinPcap API函数 335

8.2.3 过滤器表达式 338

8.2.4 程序的创建和测试 339

8.3 WinPcap编程应用 340

8.3.1 获取网络设备列表 340

8.3.2 打开适配器捕获数据包 341

8.3.3 捕获和打印所有数据包 344

8.3.4 过滤数据包 347

8.3.5 分析数据包 350

8.3.6 统计网络流量 354

习题8 357

第9章 网络五子棋 358

9.1 五子棋简介 358

9.1.1 棋盘和棋子 358

9.1.2 五子棋术语 358

9.1.3 行棋规则 361

9.1.4 五子棋的人机博弈 362

9.1.5 如何判断胜负 363

9.2 人机对战系统设计 365

9.2.1 功能需求 365

9.2.2 创建项目程序框架 365

9.2.3 导入资源文件 366

9.2.4 主菜单设计 367

9.2.5 人机对战项目类图 367

9.2.6 消息结构体设计 369

9.2.7 人机对战逻辑模型 369

9.2.8 游戏基类CGame的设计 370

9.2.9 人机对战类COneGame的设计 371

9.2.10 棋盘类CTable的设计 379

9.2.11 界面类CFiveDlg的设计 388

9.2.12 项目测试 391

9.3 网络对战系统设计 392

9.3.1 扩展功能需求 393

9.3.2 定义对话消息 393

9.3.3 网络对战新增界面元素 393

9.3.4 网络对战基本类图 394

9.3.5 网络对战通信模型 395

9.3.6 CFiveSocket类的设计 396

9.3.7 CTwoGame类的设计 398

9.3.8 修改CTable类的设计 399

9.3.9 CServerDlg类和CClientDlg类的设计 407

9.3.10 CNameDlg类和CStatDlg类的设计 410

9.3.11 完善CFiveDlg类的设计 411

9.3.12 项目测试 412

习题9 414

参考文献 415