图书介绍

精通Windows Sockets网络开发 基于Visual C++实现pdf电子书版本下载

精通Windows Sockets网络开发 基于Visual C++实现
  • 孙海民编著 著
  • 出版社: 北京:人民邮电出版社
  • ISBN:7115179115
  • 出版时间:2008
  • 标注页数:462页
  • 文件大小:192MB
  • 文件页数:477页
  • 主题词:窗口软件-网络软件-程序设计;C语言-程序设计

PDF下载


点此进入-本书在线PDF格式电子书下载【推荐-云解压-方便快捷】直接下载PDF格式图书。移动端-PC端通用
种子下载[BT下载速度快] 温馨提示:(请使用BT下载软件FDM进行下载)软件下载地址页 直链下载[便捷但速度慢]   [在线试读本书]   [在线获取解压码]

下载说明

精通Windows Sockets网络开发 基于Visual C++实现PDF格式电子书版下载

下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。

建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如 BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!

(文件页数 要大于 标注页数,上中下等多册电子书除外)

注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具

图书目录

第1篇 网络开发基础篇 3

第1章 准备开发环境 3

1.1 Windows Sockets开发概述 3

1.1.1 网络程序开发应用 3

1.1.2 网络程序结构——C/S、B/S 3

1.1.3 网络程序通信基础——网络协议 4

1.1.4 网络程序通信技术——Windows Sockets介绍 4

1.2 连接网络 6

1.2.1 TCP/IP设置 6

1.2.2 TCP/IP是否工作正常 8

1.2.3 系统与网络适配器间的通信 8

1.2.4 默认网关 8

1.2.5 ping其他计算机IP地址 9

1.3 创建应用程序 9

1.3.1 控制台程序 10

1.3.2 MFC应用程序 11

1.4 调试两个应用程序 12

1.4.1 启动两个工程 13

1.4.2 将一个工程加入到另一个工程空间 13

1.5 配置开发环境 14

1.6 小结 15

第2章 TCP/IP简介 16

2.1 开放系统互连参考模型 16

2.2 TCP/IP协议概述 17

2.2.1 TCP/IP模型 17

2.2.2 UDP 18

2.2.3 TCP 18

2.2.4 端口 19

2.3 小结 19

第3章 Windows Sockets基础 20

3.1 Windows Sockets 20

3.1.1 应用程序与Windows Sockets的关系 20

3.1.2 套接字 21

3.2 协议特征 22

3.2.1 面向连接与面向无连接 22

3.2.2 可靠性与次序性 22

3.2.3 面向消息 22

3.2.4 部分消息 23

3.2.5 从容关闭 23

3.2.6 路由选择 24

3.2.7 广播数据 24

3.3 IP定址 24

3.3.1 IP定址 25

3.3.2 字节顺序问题 25

3.4 基本TCP套接字编程 26

3.4.1 WSAStartup()函数 26

3.4.2 socket()函数 28

3.4.3 bind()函数 28

3.4.4 listen()函数 29

3.4.5 accept()函数 29

3.4.6 recv()函数 30

3.4.7 send()函数 31

3.4.8 closesocket()函数 31

3.4.9 shutdown()函数 31

3.4.10 connect()函数 32

3.5 TCP示例程序 32

3.5.1 服务器实现 33

3.5.2 客户端实现 35

3.6 基本UDP套接字编程 37

3.6.1 recvfrom()函数 37

3.6.2 sendto()函数 37

3.7 UDP示例程序 38

3.7.1 服务器实现 38

3.7.2 客户端实现 40

3.8 套接字选项 41

3.8.1 getsockopt()函数 41

3.8.2 setsockopt()函数 42

3.8.3 SOL SOCKET选项级别 43

3.9 小结 44

第2篇 Visual C++网络模式开发篇 47

第4章 阻塞模式开发 47

4.1 套接字的阻塞模式 47

4.1.1 阻塞模式 47

4.1.2 设置套接字的阻塞模式 49

4.1.3 阻塞模式套接字的优势和不足 49

4.2 客户端与服务器相互问候 50

4.3 服务器设计 50

4.3.1 启动 50

4.3.2 接受请求 50

4.3.3 接收数据 51

4.3.4 退出 51

4.3.5 错误提示 51

4.4 服务器实现 51

4.4.1 初始化 52

4.4.2 创建套接字 54

4.4.3 绑定套接字 54

4.4.4 监听 56

4.4.5 接受请求 56

4.4.6 接收数据 56

4.4.7 发送数据 58

4.4.8 退出 59

4.5 客户端设计 59

4.5.1 启动 59

4.5.2 连接服务器 60

4.5.3 接收数据 60

4.5.4 退出 60

4.6 客户端实现 60

4.6.1 初始化 61

4.6.2 创建套接字 61

4.6.3 连接服务器 62

4.6.4 发送数据 63

4.6.5 接收数据 63

4.6.6 退出 64

4.7 小结 64

第5章 非阻塞模式开发 65

5.1 套接字的非阻塞模式 65

5.1.1 非阻塞模式 65

5.1.2 设置套接字的非阻塞模式 65

5.1.3 非阻塞模式套接字的优势和不足 68

5.2 远程算数运算程序 68

5.2.1 需求分析 68

5.2.2 数据包设计 69

5.3 服务器设计 69

5.3.1 多线程设计 69

5.3.2 界面设计 71

5.4 服务器实现 71

5.4.1 主线程 72

5.4.2 接受客户端请求线程 77

5.4.3 客户端类 78

5.4.4 清理资源线程 86

5.5 客户端设计 88

5.5.1 多线程设计 88

5.5.2 界面设计 89

5.6 客户端实现 89

5.6.1 主线程 89

5.6.2 数据发送线程 97

5.6.3 数据接收线程 99

5.7 小结 100

第6章 Select模型开发 101

6.1 套接字Select模型 101

6.1.1 Select模型 101

6.1.2 select()函数 102

6.1.3 Select模型的优势和不足 106

6.2 远程文件下载 107

6.2.1 需求分析 107

6.2.2 数据包设计 107

6.3 服务器设计 108

6.3.1 多线程设计 108

6.3.2 界面设计 109

6.3.3 发送目录结构设计 109

6.4 服务器实现 110

6.4.1 静态类图 110

6.4.2 初始化 113

6.4.3 启动服务 114

6.4.4 接收处理客户端目录和文件长度的请求 116

6.4.5 接收客户端数据 120

6.4.6 向客户端发送目录 123

6.4.7 上传文件 129

6.4.8 退出 133

6.5 客户端设计 133

6.5.1 多线程设计 133

6.5.2 界面设计 134

6.6 客户端实现 136

6.6.1 静态类图 136

6.6.2 初始化 138

6.6.3 连接服务器 139

6.6.4 发送请求接收目录 140

6.6.5 浏览目录 147

6.6.6 下载文件 149

6.6.7 显示下载文件进度 159

6.6.8 退出 160

6.7 小结 160

第7章 WSAAsyncSelect模型开发 161

7.1 套接字WSAAsyncSelect模型分析 161

7.1.1 WSASsyncSelect模型 161

7.1.2 与Select模型比较 162

7.2 套接字WSAAsyncSelect模型实现 162

7.2.1 WSAAsyncSelect()函数 163

7.2.2 窗口例程 163

7.2.3 创建窗口 164

7.3 WSAAsyncSelect模型示例程序 167

7.3.1 声明自定义消息 168

7.3.2 声明窗口例程 168

7.3.3 注册窗口类 169

7.3.4 创建和显示窗口 169

7.3.5 创建套接字 169

7.3.6 注册感兴趣的网络事件 169

7.3.7 绑定套接字 169

7.3.8 开始监听 170

7.3.9 消息循环 170

7.3.10 程序退出 170

7.3.11 窗口例程 170

7.3.12 CClient类 171

7.3.13 管理客户端套接字的链表 171

7.3.14 网络事件消息处理函数 172

7.4 调用WSAAsyncSelect()函数注意问题 173

7.4.1 接收不到网络事件 173

7.4.2 关于accept()函数 173

7.4.3 关于FD READ网络事件 174

7.4.4 如何判断套接字已经关闭 174

7.4.5 发送数据失败 174

7.5 发生网络事件的条件 174

7.5.1 FD_READ事件 174

7.5.2 FD_WRITE事件 174

7.5.3 FD_ACCEPT事件 175

7.5.4 FD_CONNECT事件 175

7.5.5 FD_CLOSE事件 175

7.6 WSAAsyncSelect模型优势和不足 175

7.7 局域网简易聊天程序 176

7.7.1 需求分析 176

7.7.2 用户状态设计 177

7.7.3 数据包类设计 179

7.8 服务器设计 180

7.8.1 界面设计 180

7.8.2 通信层架构设计 182

7.9 服务器实现 182

7.9.1 开发前的准备 182

7.9.2 静态类图 183

7.9.3 启动服务器 186

7.9.4 初始化 191

7.9.5 接受客户端请求 194

7.9.6 接收数据 196

7.9.7 处理数据 203

7.9.8 删除用户 210

7.9.9 用户离线 212

7.9.10 退出 213

7.10 客户端设计 218

7.10.1 界面设计 218

7.10.2 通信层架构设计 220

7.10.3 显示的消息格式设计 220

7.11 客户端实现 220

7.11.1 静态类图 220

7.11.2 初始化 223

7.11.3 接收服务器数据 227

7.11.4 显示离线消息 228

7.11.5 创建聊天窗口 229

7.11.6 在线聊天 231

7.11.7 发送离线消息 234

7.11.8 被动聊天 234

7.11.9 保存聊天记录 235

7.12 小结 236

第8章 WSAEventSelect模型开发 238

8.1 套接字WSAEventSelect模型 238

8.1.1 WSAEventSelect模型 238

8.1.2 与其他模型的比较 238

8.2 套接字WSAEventSelect模型实现 239

8.2.1 WSAEventSelect()函数 239

8.2.2 WSACreateEvent()函数 240

8.2.3 WSAResetEvent()函数 241

8.2.4 WSACloseEvent()函数 241

8.2.5 WSAWaitForMultipleEvents()函数 241

8.2.6 WSAEnumNetworkEvents()函数 242

8.3 WSAEventSelect模型示例程序 244

8.3.1 CClient类 245

8.3.2 管理客户端套接字的链表 245

8.3.3 定义事件对象数组等变量 246

8.3.4 创建套接字 246

8.3.5 为监听套接字注册网络事件 246

8.3.6 开始监听 247

8.3.7 等待网络事件 247

8.3.8 获取发生的网络事件 247

8.3.9 FD_ACCEPT网络事件 248

8.3.10 FD_READ网络事件 249

8.3.11 FD_WRITE网络事件 249

8.3.12 FD_CLOSE网络事件 249

8.3.13 退出 250

8.4 调用WSAEventSelect()函数注意的问题 250

8.4.1 多次调用WSAEventSelect()函数 250

8.4.2 一个套接字不要关联多个事件对象 250

8.4.3 取消为套接字注册的网络事件 251

8.4.4 关于accept()函数 251

8.4.5 关于FD_READ网络事件 251

8.4.6 关于FD_WRITE网络事件 251

8.4.7 关于FD_CLOSE网络事件 251

8.5 WSAEventSelect模型的优势和不足 251

8.6 网络五子棋游戏 252

8.6.1 需求分析 252

8.6.2 游戏规则 253

8.6.3 用户状态设计 253

8.6.4 数据包设计 253

8.7 服务器设计 254

8.7.1 多线程设计 254

8.7.2 界面设计 255

8.8 服务器实现 255

8.8.1 静态类图 255

8.8.2 初始化 260

8.8.3 启动服务 262

8.8.4 服务器运行 264

8.8.5 接收客户端请求 266

8.8.6 接收数据 270

8.8.7 更新用户列表 273

8.8.8 发送用户列表 277

8.8.9 客户端退出 278

8.8.10 服务器退出 278

8.9 客户端设计 279

8.9.1 多线程设计 279

8.9.2 界面设计 279

8.10 客户端实现 281

8.10.1 静态类图 282

8.10.2 创建切分窗口 287

8.10.3 初始化 289

8.10.4 工作线程 294

8.10.5 与服务器通信 295

8.10.6 更新用户列表 299

8.10.7 开始游戏 301

8.10.8 下棋 306

8.10.9 结束游戏 317

8.10.10 退出 318

8.11 小结 319

第9章 重叠I/O模型开发 320

9.1 套接字重叠I/O模型 320

9.1.1 重叠I/O模型 320

9.1.2 与其他模型的比较 321

9.2 套接字重叠I/O模型实现概述 322

9.3 Win32重叠I/O相关技术 322

9.3.1 CreateFile()函数 322

9.3.2 OVERLAPPED结构 323

9.3.3 ReadFile()函数 323

9.3.4 WriteFile()函数 324

9.3.5 GetOverlappedResult()函数 324

9.3.6 示例程序 325

9.4 套接字重叠I/O 327

9.4.1 创建套接字 327

9.4.2 接收数据 327

9.4.3 WSAOVERLAPPED结构 328

9.4.4 WSAWaitForMultipleEvents()函数 329

9.4.5 WSAGetOverlappedResult()函数 329

9.4.6 发送数据 329

9.5 事件通知 330

9.5.1 CClient类 331

9.5.2 管理客户端的链表 332

9.5.3 声明变量和函数 333

9.5.4 套接字的创建、绑定和监听 333

9.5.5 创建服务线程 334

9.5.6 接受客户端连接请求 334

9.5.7 服务线程 335

9.6 完成例程 336

9.6.1 CClient类 337

9.6.2 管理客户端的链表 339

9.6.3 套接字的创建、绑定和监听 339

9.6.4 接受客户端连接请求 339

9.6.5 服务线程 340

9.7 实例开发——网络词典 340

9.7.1 需求分析 341

9.7.2 数据包设计 341

9.7.3 数据库设计 342

9.8 服务器设计 342

9.8.1 多线程设计 342

9.8.2 界面设计 343

9.9 服务器实现 345

9.9.1 开发前的准备 346

9.9.2 静态类图 347

9.9.3 初始化 351

9.9.4 启动服务 358

9.9.5 服务器运行 359

9.9.6 接收数据 361

9.9.7 查询单词含义 364

9.9.8 发送数据 366

9.9.9 查看未知单词 367

9.9.10 数据库操作 370

9.9.11 退出 375

9.10 客户端设计 376

9.10.1 多线程设计 376

9.10.2 界面设计 376

9.11 客户端实现 377

9.11.1 静态类图 377

9.11.2 启动客户端 380

9.11.3 连接服务器 381

9.11.4 工作线程 382

9.11.5 发送数据 385

9.11.6 接收数据 388

9.11.7 显示单词含义 390

9.11.8 退出 391

9.12 小结 391

第10章 完成端口模型开发 392

10.1 套接字完成端口模型 392

10.1.1 利用完成端口接收数据 392

10.1.2 完成端口模型 393

10.1.3 与重叠I/O模型比较 394

10.2 完成端口模型实现 395

10.2.1 创建完成端口对象 395

10.2.2 创建服务线程 396

10.2.3 套接字与完成端口关联 397

10.2.4 发起重叠I/O操作 398

10.2.5 等待重叠I/O操作结果 399

10.2.6 取消异步操作 400

10.2.7 投递完成通知包 400

10.3 完成端口示例程序 401

10.3.1 声明单I/O操作数据结构 402

10.3.2 CClient类 403

10.3.3 管理客户端的链表 404

10.3.4 声明变量和函数 405

10.3.5 创建完成端口 405

10.3.6 创建服务线程 405

10.3.7 套接字的创建、绑定和监听 405

10.3.8 套接字与完成端口关联 406

10.3.9 发起重叠I/O操作 407

10.3.10 等待I/O操作结果 407

10.4 考试系统 409

10.4.1 需求分析 409

10.4.2 数据包设计 410

10.4.3 数据库设计 410

10.5 服务器设计 411

10.5.1 多线程设计 411

10.5.2 界面设计 412

10.6 服务器实现 414

10.6.1 静态类图 414

10.6.2 初始化 419

10.6.3 启动服务 427

10.6.4 接受客户端请求线程 430

10.6.5 服务线程 432

10.6.6 接收客户端数据 433

10.6.7 验证学号 437

10.6.8 发送数据 438

10.6.9 考生交卷 440

10.6.10 跟踪客户端连接状态 442

10.6.11 服务器退出 443

10.7 客户端设计 446

10.8 客户端实现 447

10.8.1 静态类图 448

10.8.2 初始化 450

10.8.3 连接服务器并接收试卷 450

10.8.4 初始化试卷头 454

10.8.5 初始化试卷 455

10.8.6 答卷 459

10.8.7 发送心跳包 460

10.8.8 交卷 460

10.9 小结 462

精品推荐