图书介绍
Windows Sockets网络编程pdf电子书版本下载
- (美)BobQuinn,DaveShute著 著
- 出版社: 北京:机械工业出版社
- ISBN:9787111392743
- 出版时间:2012
- 标注页数:424页
- 文件大小:26MB
- 文件页数:441页
- 主题词:Windows操作系统-应用软件-网络软件-程序设计
PDF下载
下载说明
Windows Sockets网络编程PDF格式电子书版下载
下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如 BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!
(文件页数 要大于 标注页数,上中下等多册电子书除外)
注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具
图书目录
第1章 Windows Sockets概述 1
1.1什么是Windows Sockets 2
1.2 Windows Sockets的发展历史 3
1.3 Windows Sockets的优势 4
1.3.1 Windows Sockets是一个开放的标准 4
1.3.2 Windows Sockets提供源代码可移植性 4
1.3.3 Windows Sockets支持动态链接 5
1.3.4 Windows Sockets的优点 6
1.4 Windows Sockets的前景 7
1.5结论 7
第2章 Windows Sockets的概念 9
2.1 OSI网络模型 9
2.2 WinSock网络模型 11
2.2.1信息与数据 12
2.2.2应用协议 12
2.3 WinSock中的OSI层次 12
2.3.1应用层 13
2.3.2表示层 14
2.3.3会话层 14
2.3.4传输层 15
2.3.5网络层 16
2.3.6数据链路层 17
2.3.7物理层 17
2.4模块化的层次框 18
2.5服务和协议 19
2.6协议和API 21
第3章 TCP/IP协议服务 23
3.1什么是TCP/IP 23
3.2 TCP/IP的发展历史 25
3.3传输服务 26
3.3.1无连接的服务:UDP 26
3.3.2面向连接的服务:TCP 28
3.3.3传输协议的选择:UDP与TCP的对比 29
3.4网络服务 30
3.4.1 IP服务 30
3.4.2 ICMP服务 31
3.5支持协议和服务 32
3.5.1域名服务 32
3.5.2地址解析协议 33
3.5.3其他支持协议 33
3.6 TCP/IP的发展前景 34
第4章 网络应用程序工作机制 35
4.1客户端-服务器模型 35
4.2网络程序概览 37
4.3 socket的打开 37
4.4 socket的命名 39
4.4.1 sockaddr结构 40
4.4.2 sockaddr_in结构 40
4.4.3端口号 41
4.4.4本地IP地址 41
4.4.5什么是socket名称 42
4.4.6客户端socket名称是可选的 42
4.5与另一个socket建立关联 43
4.5.1服务器如何准备建立关联 44
4.5.2客户端如何发起一个关联 45
4.5.3服务器如何完成一个关联 47
4.6 socket之间的发送与接收 48
4.6.1在“已连接的”socket上发送数据 48
4.6.2在“无连接的”socket上发送数据 49
4.6.3接收数据 50
4.6.4 socket解复用器中的关联 51
4.7 socket的关闭 52
4.7.1 closesocket() 52
4.7.2 shutdown() 53
4.8客户端和服务器概览 54
第5章 操作模式 56
5.1什么是操作模式 57
5.1.1不挂机,等待:阻塞 57
5.1.2挂机后再拨:非阻塞 57
5.1.3请求对方回拨:异步 58
5.2阻塞模式 58
5.2.1阻塞socket 58
5.2.2阻塞函数 59
5.2.3伪阻塞的问题 59
5.2.4阻塞钩子函数 60
5.2.5阻塞情境 61
5.2.6撤销阻塞操作 62
5.2.7阻塞操作中的超时 64
5.2.8无最少接收限制值 65
5.2.9代码示例 65
5.3非阻塞模式 67
5.3.1怎样使socket成为非阻塞的 68
5.3.2成功与失败不是绝对的 68
5.3.3探询而非阻塞 69
5.3.4显式地避让 69
5.3.5代码示例 70
5.4异步模式 72
5.4.1认识异步函数 73
5.4.2撤销异步操作 74
5.4.3代码示例 74
5.4.4 AU_ime应用 76
5.5性能比较 85
5.6平台比较 86
5.7真正的阻塞 86
5.7.1线程化的应用程序 86
5.7.2其他适用性说明 87
第6章 socket状态 88
6.1什么是socket状态 88
6.1.1数据报socket的状态 89
6.1.2流socket的状态 90
6.2 socket状态的检测方法 91
6.2.1根据函数调用的成功或失败检测 92
6.2.2同步检测 93
6.2.3异步检测 93
6.3 WSAAsyncSelect() 93
6.3.1 WSAAsyncSelect()的工作原理 94
6.3.2什么是WSAAsyncSelect ()事件 96
6.3.3避免机会丢失的窗口 96
6.3.4什么是重使能函数 97
6.3.5什么是通知消息 98
6.3.6为函数失败做好准备 98
6.3.7在响应时设置循环 99
6.3.8撤销异步通知 99
6.3.9事件描述 99
6.3.10 AS_ Echo应用程序 102
6.4 select() 115
6.4.1怎样使用select() 116
6.4.2 select()的宏 117
6.4.3 select()的输入参数 118
6.4.4不要把select()作为定时器 120
6.4.5注意0超时 120
6.4.6代码示例 120
6.5查看数据 122
6.5.1 ioctlsocket() FIONREAD命令 122
6.5.2带有MSG PEEK标志的recv () 122
6.6带外数据 123
6.6.1 TCP的局限 124
6.6.2 ioctlsocket()函数和SIOCATMARK命令 125
6.6.3代码示例 125
6.7监听状态 126
第7章 应用程序和函数实例库 127
7.1 FTP客户端实例 127
7.1.1文件传输协议概述 128
7.1.2 FTP有限状态机 130
7.1.3 AC_FTP应用程序 132
7.1.4操作中的AC_FTP 168
7.2函数实例库 169
7.2.1 CenterWnd() 170
7.2.2 CloseConn () 171
7.2.3 CreateLelFile() 172
7.2.4 Dlg_About() 173
7.2.5 GetAddr() 174
7.2.6 GetBuf () 175
7.2.7 GetHostID() 176
7.2.8 GetLcIDir() 177
7.2.9 GetPort () 179
7.2.10 WSAErrStr() 179
7.2.11 WSAperror() 180
7.3 WinSockx.h 182
7.3.1 Globals.c 183
7.3.2 WSA_ Xtra.h 184
第8章 主机名称与主机地址 187
8.1主机名称与主机地址解析 187
8.1.1 hostent结构 188
8.1.2主机名称解析 189
8.1.3地址解析 195
8.2主机表、域名系统和网络信息服务 198
8.2.1主机表 198
8.2.2域名系统 198
8.2.3网络信息服务 199
8.3本地主机信息 200
8.4网络地址与格式化 201
8.4.1 in addr结构 201
8.4.2 inet addr() 202
8.4.3 inet ntoa() 203
8.5协议族与地址族 204
第9章 socket信息与控制 205
9.1 socket控制 205
9.1.1 FIONBIO 206
9.1.2 FIONREAD 207
9.1.3 SIOCATMARK 208
9.1.4其他控制命令 208
9.2 socket选项 209
9.2.1 getsockopt()与setsockopt() 209
9.2.2 SO_ ACCEPTCONN 211
9.2.3 SO_ BROADCAST 211
9.2.4 SO DEBUG 212
9.2.5 SO_ DONTLINGER 213
9.2.6 SO_ DONTROUTE 213
9.2.7 SO_ ERROR 214
9.2.8 SO_KEEPALIVE 214
9.2.9 SO_LINGER 216
9.2.10 SO_ OOBINLINE 218
9.2.11 SO RCVBUF与SO_SNDBUF 218
9.2.12 SO_REUSEADDR 219
9.2.13 SO TYPE 219
9.2.14 TCP_NODELAY 220
9.2.15 不支持的选项 221
9.2.16未来会使用的选项 222
9.3阻塞钩子 222
9.3.1 WSASetBlockingHook() 222
9.3.2 WSAUnhookBlockingHook() 223
9.3.3阻塞钩子函数 223
9.3.4阻塞状态 224
9.4 socket名称 224
9.4.1 getsockname() 225
9.4.2 getpeernaame () 226
第10章 支持例程 228
10.1启动与清除 228
10.1.1 WSAStartup() 228
10.1.2 WSACleanup() 234
10.2字节顺序 234
10.3服务名称与端口号 236
10.3.1 servent结构 236
10.3.2服务解析 237
10.3.3端口解析 240
10.3.4服务数据库 241
10.4协议名称与协议号 242
10.4.1 protoent结构 243
10.4.2协议名称解析 243
10.4.3协议号解析 247
10.4.4协议数据库 247
10.5报错 248
10.5.1 WSAGetLastError() 248
10.5.2 WSASetLastError() 249
10.5.3错误文本显示 249
第11章 WinSock上的DLL 250
11.1创建一个新的API 250
11.1.1仿真的API 251
11.1.2应用协议API 252
11.1.3封装的WinSock API 252
11.2 DLL的问题 253
11.2.1重入 254
11.2.2任务管理 255
11.2.3与WinSock DLL的链接 256
11.3 DLL实例 256
11.3.1 WSASimpl应用程序 257
11.3.2 WSASimpl DLL 258
第12章 移植BSD Sockets 272
12.1 Windows Sockets与Berkeley Sockets的差异 272
12.1.1 socket不是文件句柄 273
12.1.2 signal()不可用 274
12.1.3域名不可用 275
12.1.4地址信息和操作不可用 275
12.1.5 syslog()不可用 276
12.1.6变量errno不可用 276
12.1.7 perror()和strerror()不可用 276
12.1.8数据库文件操作不可用 276
12.1.9 bcmp()、bcopy()和bzero ()不可用 276
12.1.10本地IPC不可用 277
12.1.11 OOB API不同 277
12.1.12 setsockopt()SO_ DEBUG是可选的 277
12.2 16位Windows的局限性 277
12.2.1 16位Windows不清理现场 277
12.2.2 16位Windows是非抢占式的 278
12.2.3 16位Windows文件系统不安全 278
12.2.4 16位Windows使用分段寻址 279
12.2.5 fork()不可用 279
12.3移植Berkeley Sockets的其他事项 279
12.3.1包含文件 279
12.3.2 socket域 279
12.3.3 socket类型 279
12.3.4 socket句柄 280
12.3.5错误值 280
12.4函数列表 280
第13章 调试 284
13.1问题类型 284
13.1.1安装问题 285
13.1.2网络问题 285
13.1.3程序问题 285
13.1.4 WinSock DLL问题 285
13.2故障表现及其定位 286
13.3问题评估 286
13.4安装调试 287
13.5网络调试 287
13.5.1通用网络调试 288
13.5.2主机解析调试 289
13.6应用程序调试 289
13.7调试工具 290
13.7.1网络调试工具 290
13.7.2应用程序调试工具 295
13.7.3 WinSock符合性和性能测试工具 297
13.7.4其他调试工具 297
第14章 该做和不该做的 299
14.1特征化应用程序 299
14.2应用程序数据流 300
14.2.1增大缓存 301
14.2.2 MTU的考虑 301
14.2.3健壮性原则 302
14.2.4避免查看 303
14.2.5先接收后发送 303
14.3流算法 303
14.3.1发送结构化数据 303
14.3.2发送交互数据 305
14.3.3检测无效连接 306
14.3.4验证数据传输 306
14.4数据报算法 307
14.4.1实现超时机制 308
14.4.2数据报排序 308
14.4.3有节制地发送数据 308
14.4.4同步发送方和接收方 309
14.5好消息准则 309
14.5.1检查返回值 309
14.5.2检测部分成功 310
14.5.3准备应对任何阶段出现的任何错误 310
14.5.4检测非致命错误 310
14.5.5恰当地处理错误 311
14.5.6对用户透明 311
14.5.7留好出口 311
14.5.8不忽视任何警告信息 311
14.6常见陷阱和缺陷 312
14.6.1打开和命名socket 312
14.6.2建立连接 313
14.6.3监听和同意建立连接 313
14.6.4发送和接收 314
14.6.5关闭socket 315
14.6.6使用主机名称和地址 316
14.6.7使用WSAAsyncSelect()函数 316
14.6.8使用阻塞socket 317
14.6.9退出某个应用程序 319
14.6.10其他注意事项 320
第15章 系统平台 322
15.1 WOSA网络模型 322
15.2 32位WinSock 323
15.2.1 Windows 95 324
15.2.2交叉执行 324
15.2.3 32位WinSock特征 324
15.2.4 32位操作系统优势 328
15.3其他系统平台 329
第16章 可选特性 330
16.1自相矛盾的可选标准 330
16.2应该使用可选特性吗 331
16.3原始socket 332
16.3.1 ICMP ping应用 332
16.3.2 IP_TTL路径跟踪 337
16.4多播 338
16.4.1为何使用多播 338
16.4.2多播API 339
16.4.3多播机制 341
16.5环回接口 345
16.6共享socket 345
16.7可选项 346
16.8 socket作为文件句柄 346
16.9在任何时候都准备好应对任何错误 347
16.10其他可选特性 347
第17章 WinSock 2 348
17.1你需要WinSock 2吗 349
17.2特性概述 349
17.3多协议支持 351
17.3.1 WinSock 2架构 351
17.3.2协议独立 352
17.3.3名称空间独立 353
17.4重叠I/O 356
17.5分散和聚合 358
17.6服务质量 358
17.7 socket组 360
17.8多点和多播 361
17.9有条件的接受 362
17.10连接和断开数据 363
17.11 socket共享 364
17.12协议相关的附加功能 364
17.12.1 WSAIoctl() 365
17.12.2 get/setsockopt() 365
附录A TCP/IP协议首部 366
A.1 TCP/IP报文中的分层 366
A.2 ARP首部 367
A.3 IP首部 368
A.4 ICMP首部 369
A.5 IGMP首部 370
A.6 TCP首部 371
A.7 UDP首部 372
A.8 对话示例 373
附录B 快速参考 380
B.1结构 380
B.2函数 384
B.3宏 391
附录C错误信息参考 398
C.1获取错误值的位置 398
C.2可能出现的错误 399
C.3用户可以解决的错误 400
C.4详细的错误描述 400
C.5按数值排序的错误代码表 419
附录D用户必备 421
D.1重要文件 421
D.2编译与链接机制 422
D.3各种WinSock的使用 423
D.4各种编程语言的使用 424