《Visual C++网络编程案例实战》结合21个实战开发案例,全面、系统地介绍了Visual C++网络开发所涉及的各种技术。读者可以以本书中的案例为基础,编写出功能更加强大的网络应用。另外,作者专门为本书录制了大量的配套教学视频,以帮助读者更好地学习本书内容。这些视频和书中的实例源代码一起收录于本书的配书光盘中。
《Visual C++网络编程案例实战》共15章,分为3篇。第1篇介绍了Visual C++网络开发基础知识,包括Visual C++网络编程概述、Socket套接字编程和多线程与异步套接字编程。第2篇介绍了7大类网络开发典型应用案例的实现,包括FTP客户端实现之一、FTP客户端实现之二、网页浏览器、网络通信器、邮件接收和发送客户端之一、邮件接收和发送客户端之二、网络文件传输器、Q版聊天软件和聊天室。第3篇介绍了Visual C++串口通信开发,包括串口通信基础、串口通信编程应用和VC发送手机短信实战案例。
《Visual C++网络编程案例实战》适合用Visual CH进行网络程序开发的人员阅读,也适合想进一步提升Visual C++网络编程水平的人员阅读。另外,本书非常适合大中专院校的学生作为毕业设计和课题设计的参考书。
全方位展现VisualC++网络编程的8大经典应用实战为王,详解21个典型应用案例的开发过程q 详解FTP、网页浏览器、网络通信器、邮件收发、网络文件传输、P2P聊天软件、聊天室和短信猫等经典案例的开发过程q 对涉及的各种通信协议进行了介绍,便于读者了解网络程序的工作方式,加深对相应通信机制的理解q 重点剖析了Socket编程、多线程编程、同步模式和异步模式q 提供14小时高清多媒体教学视频,并赠送大量的VisualC++教学视频和实例源代码 超值、大容量DVD光盘14小时配套教学视频及本书实例源文件20.5小时VisualC++开发专题教学视频11.3小时VisualC++开发进阶教学视频13个VisualC++典型模块源文件3个VisualC++拓展项目案例源文件推荐阅读:《零点起飞学C++》《零点起飞学VisualC++》
随着计算机的普及,网络的应用也越来越广泛。如今人们正在享受着各种网络服务带来的便利,例如,在门户网站看新闻,通过下载工具获取网络资源,通过即时通讯软件联系好友等。
由于微软的操作系统Windows一直都在个人计算机领域有着广泛的应用和市场占有率,所以Windows网络编程技术也受到了越来越多的程序员和软件公司的青睐。为了便于大家更好地学习Windows网络编程技术,笔者编写了本书。
本书以Visual C++为开发环境,系统地讲解了Windows网络编程所涉及的各种技术。书中穿插了21个实战开发案例,帮助读者身临其境地体验实际的项目案例开发过程,从而提高开发水平。为了帮助读者高效而直观地学习本书内容,笔者专门为本书录制了大量的配套多媒体教学视频辅助读者学习。阅读完本书,相信读者对书中的项目案例适当修改,即可编写出功能更加强大的网络应用。
本书中的案例除了适合广大的Windows网络编程爱好者学习之外,还是大中专院校相关专业的学生做毕业设计和课题设计的绝佳参考。
本书有何特色
1.配多媒体教学视频光盘
本书提供了大量的多媒体语音教学视频,让读者更加直观地理解本书内容,提高学习效率。另外,配书光盘中还提供了本书涉及的实例源程序,以方便读者使用。
2.由浅入深,循序渐进
本书首先从C/S网络模型等网络编程基础知识开始向读者讲解,并在读者不断学习的过程中,引进新的知识点,鼓励读者独立修改各章中的实例程序。然后重点通过21个实战案例让读者进一步掌握Visual C++网络编程的各种技术。
3.案例精讲,实战为王
本书突出实用性强的特点,第4~12章以及第14章和第15章都提供了典型的网络开发案例精讲,涵盖了网络编程应用的主流应用,既涉及与服务器的交互,如FTP服务器、邮箱服务器,又涉及S/C结构应用的搭建,如聊天室、文件传输器等。
4.提供教学PPT,方便老师教学
本书适合能力培养型的院校和职业学校作为教学用书,所以专门制作了教学PPT,以方便各院校的老师教学时使用。
本书内容安排
第1篇 Visual C++网络开发基础(第1~3章)
本篇主要内容包括Visual C++网络编程概述、Socket套接字编程和多线程与异步套接字编程,让读者对网络编程有个系统的认识,有利于本书后面章节的学习。
第2篇 Visual C++网络开发典型应用(第4~12章)
本篇主要内容包括FTP客户端、网页浏览器、网络通信器、邮件接收和发送客户端、网络文件传输器、Q版聊天软件和聊天室等开发案例,让读者学会如何使用Visual C++编写软件。
第3篇 Visual C++串口通信开发(第13~15章)
本篇主要内容包括串口通信基础及应用和VC发送手机短信,让读者了解计算机串口,然后学会通过串口来控制计算机外围设备。本篇介绍通过串口给另一台计算机和短信猫发送数据来完成相应的功能。
本书读者对象
* Windows网络编程爱好者;
* 想提高Visual C++编程水平的人员;
* 大中专院校的学生;
* 相关培训班的学员。
本书作者
本书主要由梁伟编写。其他参与编写的人员有陈世琼、陈欣、陈智敏、董加强、范礼、郭秋滟、郝红英、蒋春蕾、黎华、刘建准、刘霄、刘亚军、刘仲义、柳刚、罗永峰、马奎林、马味、欧阳昉、蒲军、齐凤莲、王海涛、魏来科、伍生全、谢平、徐学英、杨艳、余月、岳富军、张健和张娜。
如果你在学习中遇到什么问题,可以通过技术论坛http://www.wanjuanchina.net和book@wanjuanchina.net或bookservice2008@163.com和我们取得联系。
编著者
粱伟,软件工程师,电气工程师。擅长C++网络通信、数字图像处理和DCS分布式系统开发等技术。担任C3P图像处理论坛版主和汇编网的讲师。参与过多个大型项目,包括银行ATM机系统、电力系统监控系统和医疗CT图像系统等。
第1篇 Visual C++网络开发基础
第1章 Visual C++网络编程概述( 教学视频:21分钟) 2
1.1 网络基础知识 2
1.1.1 OSI七层网络模型 2
1.1.2 TCP/IP协议 3
1.1.3 C/S编程模型 4
1.2 网络编程基础 4
1.2.1 Sockets套接字 5
1.2.2 网络字节顺序 5
1.3 Windows Sockets介绍 5
1.3.1 CAsyncSocket类 5
1.3.2 CSocket类 5
1.4 小结 6
第2章 Socket套接字编程( 教学视频:102分钟) 7
2.1 寻址方式和字节顺序 7
第1篇 Visual C++网络开发基础
第1章 Visual C++网络编程概述( 教学视频:21分钟) 2
1.1 网络基础知识 2
1.1.1 OSI七层网络模型 2
1.1.2 TCP/IP协议 3
1.1.3 C/S编程模型 4
1.2 网络编程基础 4
1.2.1 Sockets套接字 5
1.2.2 网络字节顺序 5
1.3 Windows Sockets介绍 5
1.3.1 CAsyncSocket类 5
1.3.2 CSocket类 5
1.4 小结 6
第2章 Socket套接字编程( 教学视频:102分钟) 7
2.1 寻址方式和字节顺序 7
2.1.1 寻址方式 7
2.1.2 字节顺序 8
2.1.3 Socket相关函数 9
2.2 Winsock网络程序开发流程 11
2.2.1 VC中创建工程的步骤 11
2.2.2 Winsock编程流程 12
2.2.3 基于TCP的Sockets编程 16
2.2.4 基于UDP的Sockets编程 19
2.3 网络程序实例应用 22
2.3.1 TCP客户端程序 22
2.3.2 TCP服务器程序 29
2.4 小结 34
第3章 多线程与异步套接字编程( 教学视频:119分钟) 35
3.1 多线程技术 35
3.1.1 基本概念 35
3.1.2 创建线程 36
3.2 实现线程同步 39
3.2.1 临界区对象 39
3.2.2 事件对象 44
3.2.3 互斥对象 49
3.3 进程间通信 54
3.3.1 邮槽 54
3.3.2 命名管道 58
3.3.3 匿名管道 64
3.4 设置I/O模式 70
3.4.1 异步I/O模式 71
3.4.2 WSAAsyncSelect方法 71
3.5 小结 72
第2篇 Visual C++网络开发典型应用
第4章 FTP客户端实现之一( 教学视频:54分钟) 74
4.1 FTP工作原理 74
4.1.1 FTP数据结构 74
4.1.2 FTP数据传输模式 75
4.1.3 与服务器进行连接 76
4.1.4 登录验证 77
4.1.5 关闭数据连接 77
4.1.6 FTP常用命令 77
4.1.7 数据校验与重发控制 78
4.2 FTP客户端实例 78
4.2.1 创建工程 78
4.2.2 连接和登录验证 79
4.2.3 更新文件列表 82
4.2.4 文件上传 86
4.2.5 文件下载 88
4.2.6 安全退出 90
4.3 小结 92
第5章 FTP客户端实现之二( 教学视频:71分钟) 93
5.1 FTP客户端简介 93
5.1.1 树形结构的应用 93
5.1.2 列表结构的应用 93
5.1.3 信息框的应用 94
5.1.4 浮动对话框的应用 94
5.2 关键技术讲解 94
5.2.1 制作、使用浮动对话框 95
5.2.2 客户区的分割 98
5.2.3 树形视图项目拖动效果 100
5.2.4 列表视图项目拖动效果 107
5.3 实现FTP客户端 111
5.3.1 WinInet类介绍 111
5.3.2 FTP服务器操作 113
5.3.3 遍历本地文件夹资源 118
5.3.4 拖动文件实现上传 122
5.3.5 拖动文件实现下载 124
5.3.6 多次修改的头文件 125
5.4 小结 127
第6章 网页浏览器( 教学视频:36分钟) 128
6.1 HTTP协议 128
6.1.1 HTTP基础 128
6.1.2 HTTP请求 128
6.1.3 HTTP响应 131
6.2 应用Microsoft Web控件实例 134
6.2.1 创建工程 135
6.2.2 添加Microsoft Web控件 135
6.2.3 输入地址,载入网页 137
6.2.4 网页导航 137
6.3 应用CHtmlView实例 138
6.3.1 创建工程 139
6.3.2 输入地址,载入网页 140
6.3.3 网页导航 141
6.4 小结 142
第7章 网络通信器( 教学视频:26分钟) 143
7.1 通信原理及连接 143
7.1.1 通信原理 143
7.1.2 通信连接 143
7.2 服务器端程序 145
7.2.1 开启服务器 146
7.2.2 响应连接与读取 150
7.2.3 发送信息 152
7.2.4 断开连接 152
7.3 客户端程序 153
7.3.1 连接服务器 154
7.3.2 响应读取 155
7.3.3 发送信息 156
7.3.4 断开连接 156
7.4 客户端与服务器端 156
7.5 小结 157
第8章 邮件接收和发送客户端之一( 教学视频:57分钟) 158
8.1 调用Windows自带的邮件发送程序 158
8.1.1 调用Windows自带程序 158
8.1.2 CreateProcess()函数 159
8.2 SMTP会话过程 163
8.2.1 连接服务器 163
8.2.2 SMTP命令 165
8.2.3 发送命令与接收响应 168
8.3 SMTP客户端——发送邮件 170
8.3.1 准备工作 170
8.3.2 SMTP登录身份验证方式 171
8.3.3 连接登录服务器 172
8.3.4 构造并发送邮件 175
8.3.5 退出程序 179
8.4 POP3简介 179
8.5 POP3客户端——接收邮件 181
8.5.1 准备工作 181
8.5.2 连接登录服务器 183
8.5.3 获取邮件列表 186
8.5.4 获取并解析邮件内容 187
8.5.5 退出程序 191
8.6 小结 191
第9章 邮件接收和发送客户端之二( 教学视频:94分钟) 192
9.1 邮件管理器简介 192
9.1.1 程序主界面 192
9.1.2 “设置”对话框 192
9.1.3 收件箱 193
9.1.4 发件箱 194
9.1.5 “正在处理中…”对话框 196
9.2 Jmail简介 197
9.2.1 如何使用Jmail 197
9.2.2 属性 199
9.2.3 方法 199
9.2.4 发送和接收邮件示例 200
9.3 CBitButtonNL简介 201
9.3.1 按钮图像 201
9.3.2 按钮字体 207
9.3.3 按钮声音 210
9.3.4 自绘按钮 215
9.3.5 头文件总览 217
9.4 邮件管理程序示例 219
9.4.1 程序主窗体 220
9.4.2 设置窗体 227
9.4.3 收件箱窗体 231
9.4.4 发件箱窗体 241
9.4.5 “正在处理中…”窗体 246
9.5 小结 248
第10章 网络文件传输器( 教学视频:32分钟) 249
10.1 CFile类 249
10.1.1 构造函数 249
10.1.2 读写文件 250
10.1.3 文件关闭 251
10.1.4 文件定位 252
10.2 使用API函数操作文件 253
10.2.1 创建文件 253
10.2.2 操作文件 255
10.3 内存映射文件 258
10.4 文件传输服务器实例 260
10.5 文件传输客户端实例 266
10.6 小结 269
第11章 Q版聊天软件( 教学视频:44分钟) 270
11.1 设计软件通讯时的消息格式 270
11.2 Q版聊天服务器端 271
11.2.1 工程创建及界面设计 271
11.2.2 对话框的初始化 271
11.2.3 服务器的开启和关闭 273
11.2.4 自定义客户端信息结构 275
11.2.5 其他封装函数 276
11.2.6 自定义响应函数 279
11.2.7 QQ_serverDlg.h文件全观 281
11.3 Q版聊天客户端 283
11.3.1 工程创建及界面设计 283
11.3.2 主对话框的初始化 284
11.3.3 连接服务器 285
11.3.4 自定义封装函数 287
11.3.5 自定义响应函数 289
11.3.6 发送信息对话框 291
11.3.7 QQ_clientDlg.h文件全观 293
11.4 小结 294
第12章 聊天室( 教学视频:71分钟) 295
12.1 聊天室功能简介 295
12.1.1 开启聊天室服务器 295
12.1.2 登录聊天室 296
12.1.3 聊天对话框 296
12.2 CSocket简介 298
12.2.1 创建Socket 298
12.2.2 侦听连接请求 299
12.2.3 接受连接请求 299
12.2.4 发送信息 300
12.2.5 接收信息 300
12.3 我们约定个协议 300
12.4 灵活可靠的控件 301
12.4.1 位图按钮 301
12.4.2 IP地址编辑框 307
12.4.3 列表控件 312
12.4.4 图像组合框控件 323
12.5 聊天室服务器 326
12.5.1 聊天室服务器界面设计 326
12.5.2 添加套接字类 328
12.5.3 服务器功能实现 330
12.6 聊天室客户端 340
12.6.1 聊天室客户端界面设计 340
12.6.2 添加套接字类 342
12.6.3 客户端功能实现 342
12.7 小结 350
第3篇 Visual C++串口通信开发
第13章 串口通信基础( 教学视频:17分钟) 352
13.1 串口通信基本概念 352
13.1.1 串口通信概述 352
13.1.2 单工、半双工和全双工的定义 353
13.1.3 同步方式与异步方式 355
13.1.4 串口通信的应用方向 356
13.2 常用数据校验法 356
13.2.1 奇偶校验 356
13.2.2 循环冗余校验 357
13.3 小结 358
第14章 串口通信编程应用( 教学视频:52分钟) 359
14.1 MFC串口控件编程 359
14.1.1 VC中应用MSComm控件编程步骤 359
14.1.2 MSComm控件类 360
14.1.3 MSComm控件串行通信编程方法 362
14.1.4 在基于对话框的程序中使用MSComm控件 365
14.2 串口API编程 369
14.2.1 Windows API串口编程概述 369
14.2.2 API串口编程中用到的结构及相关概念说明 370
14.2.3 OVERLAPPED异步I/O重叠结构 374
14.2.4 Win32 API串口通信编程的一般流程 376
14.2.5 Win32 API同步串口编程实例 378
14.2.6 Win32 API异步串口编程实例 382
14.3 小结 385
第15章 VC发送手机短信( 教学视频:38分钟) 386
15.1 短信猫介绍 386
15.1.1 短信猫简介 386
15.1.2 短信猫分类 387
15.1.3 短信猫开发接口 388
15.2 实现与短信猫的硬件连接 390
15.2.1 短信猫的硬件设备 390
15.2.2 PC连接短信猫 391
15.3 相关AT指令介绍 393
15.3.1 AT指令介绍 393
15.3.2 AT指令 394
15.4 短信发送规则 394
15.4.1 Text模式 394
15.4.2 PDU模式 394
15.5 超级终端演示信息发送 395
15.5.1 连接短信猫 396
15.5.2 Text模式演示 397
15.5.3 PDU模式演示 398
15.6 VC短信发送示例 400
15.6.1 示例展示 400
15.6.2 封装串口操作 401
15.6.3 连接串口 403
15.6.4 PDU模式短信 405
15.6.5 Text模式短信 409
15.7 小结 411