《因特网应用编程》PDF下载

  • 购买积分:15 如何计算积分?
  • 作  者:汪蒲阳编著
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2000
  • ISBN:7900625100
  • 页数:470 页
图书介绍:本书详细讲解了如何在VisualC++6.0集成环境下编写基于Windows操作系统的因特网应用程序。全书分为有关因特网协议和编程的基础知识;应用层协议和具体的编程实现;比较高级的因特网编程技术三个部分。

第一部分 基础篇 3

第1章 因特网概述 3

1.1 因特网的历史 3

1.2 因特网协议和地址 4

1.3 因特网体系结构 4

1.4 因特网的组织机构 5

1.5 因特网的评议征求(RFC) 6

第2章 TCP/IP协议 8

2.1 OSI网络分层参考模型 8

2.2 TCP/IP分层模型 10

2.3.1 地址基本编码格式 11

2.3 IP地址 11

2.3.2 子网掩码 12

2.3.3 特殊用途的IP地址 14

2.4 网络数据的传输次序 15

2.5 网间协议(IP) 15

2.5.1 IP数据报格式 15

2.5.2 版本协议号 17

2.5.3 数据报长度和填充域 17

2.5.4 服务类型和优先权 17

2.5.5 标识符、标志和分片偏移量 18

2.5.6 存活时间 18

2.5.8 报头校验和 19

2.5.9 源地址和目的地址 19

2.5.7 协议序列号 19

2.5.10 IP选项 20

2.6 校验和差错检测 20

2.7 网间控制报文协议(ICMP) 22

2.7.1 ICMP报文格式 23

2.7.2 目的不可达报文 24

2.7.3 拥塞控制与源站点抑制报文 24

2.7.4 路径控制与重定向报文 25

2.7.5 Ping与回响请求/应答报文 26

2.7.6 信息请求/应答报文 26

2.7.7 时序管理与时戳请求/应答报文 27

2.7.8 地址掩码请求/应答报文 27

2.7.9 路由器请求/广告报文 28

2.7.10 数据报参数错报文 29

2.7.11 路由跟踪与数据报超时报文 29

2.8 用户数据报协议(UDP) 30

2.8.1 UDP数据报格式 30

2.8.2 UDP校验和与伪头标 31

2.8.3 UDP端口 31

2.9 传输控制协议(TCP) 32

2.9.1 TCP段格式 33

2.9.2 TCP段长度的确定 34

2.9.3 紧急数据发送和推操作 35

2.9.4 面向连接和端口复用 35

2.9.5 TCP校验和与伪头标 36

2.9.6 连接的建立和关闭 37

2.9.7 累计确认和重传 38

2.9.8 超时和重传 39

2.9.9 滑动窗口和数据缓冲 40

2.9.10 流量和拥塞控制 41

2.10 地址解析 42

2.10.1 ARP/RARP报文格式 43

2.10.2 ARP实现 44

2.10.3 RARP实现 44

2.11 域名服务(DNS) 45

2.11.1 因特网域名结构 45

2.11.2 域名解析 46

2.11.3 优化域名服务器性能 47

2.11.4 域名服务器报文 48

2.12 应用层协议 50

第3章 客户机/服务器编程设计 52

3.1 TCP/IP协议软件功能回顾 52

3.2 应用程序的功能 52

3.3 客户机和服务器 53

3.4 服务器的并发处理 55

3.5 循环处理的UDP服务器 56

3.6 消息驱动的并发TCP服务器 57

3.7 多线程并发TCP服务器 58

3.8 编写NT服务器程序 59

3.8.1 服务程序主函数 60

3.8.2 服务入口点函数 62

3.8.3 控制处理程序函数 63

3.8.4 安装服务程序 65

3.8.5 删除已安装的服务程序 68

第4章 套接字编程 71

4.1 套接字编程基础 71

4.2 套接字函数 72

4.2.1 函数概述 73

4.2.2 函数accept 73

4.2.3 函数bind 75

4.2.4 函数closesocket 75

4.2.5 函数connect 76

4.2.6 函数gethostbyaddr和gethostbyname 77

4.2.7 函数gethostname、getpeername和getsockname 78

4.2.8 函数getprotobyname和getprotobynumber 79

4.2.9 函数getservbyname和getservbyport 79

4.2.10 函数getsockopt和setsockopt 80

4.2.11 函数htonl、htons、ntohl和ntohs 82

4.2.12 函数inet-addr和inet-ntoa 83

4.2.13 函数ioctlsocket 83

4.2.14 函数listen 84

4.2.15 函数recv 85

4.2.16 函数recvfrom 86

4.2.17 函数select 87

4.2.19 函数sendto 89

4.2.18 函数send 89

4.2.21 函数socket 91

4.2.20 函数shutdown 91

4.3 编写Ping程序 92

4.3.1 创建程序框架 92

4.3.2 编辑程序资源 93

4.3.3 为控制添加成员变量 95

4.3.4 消息处理函数CPingDlg∷OnPing 96

4.3.5 函数CPingDlg∷PreparePing 98

4.3.6 消息处理函数CPingDlg∷OnTimer 100

4.3.7 报文分析函数CPingDlg∷Decode-Resp 102

4.3.8 其他辅助函数 103

4.4 编写Echo程序 105

4.3.9 运行Ping程序 105

4.4.1 创建程序框架 106

4.4.2 客户机程序main函数 106

4.4.3 客户机程序TestEcho函数 107

4.4.4 服务器程序main函数 109

4.4.5 服务器程序EchoService函数 110

4.4.6 运行程序UDPEchoServer和UDPEchoClient 111

第5章 MFC套接字类编程 113

5.1 CAsyncSocket类 113

5.2 CSocket类 124

5.3 错误返回码 126

5.4 编写Echo(TCP)客户机程序 127

5.4.1 创建程序框架 128

5.4.2 资源编辑 128

5.4.3 CConnectDlg类 130

5.4.4 CEchoClientSocket类 130

5.4.5 CTCPEchoClientView类 131

5.4.6 CMainFrame类 132

5.5编写Echo(TCP)服务器程序 136

5.5.1 创建程序框架 137

5.5.2 资源编辑 137

5.5.3 CEchoListenSocket类 137

5.5.4 CEchoServiceSocket类 138

5.5.5 CTCPEchoServerView类 140

第6章 MFC WinInet编程 144

6.1 MFC WinInet概述 144

6.2 CInternetSession类 145

6.3 CInternetConnection类 151

6.4 CFtpConnection类 152

6.5 CGopherConnection类 157

6.6 CHttpConnection类 159

6.7 CInternetFile类 160

6.8 CGopherFile类 163

6.9 CHttpFile类 164

6.10 CFileFind类 169

6.11 CFtpFileFind类 174

6.12 CGopherFileFind类 175

6.13 CGopherLocator类 176

6.14 编写WinInet应用程序 178

6.14.1 创建因特网会话 179

6.14.2 打开因特网文件 179

6.14.3 从服务器中读文件 179

6.14.4 关闭文件 179

6.14.5 关闭会话 180

6.14.6 完整的消息处理过程 180

7.1.2 数据格式 185

7.1.1 协议流程 185

7.1 Finger协议 185

第7章 Finger协议编程 185

第二部分 应用篇 185

7.1.3 查询格式 186

7.1.4 查询结果 186

7.2 编写Finger程序 186

7.3 创建程序框架 187

7.4 编辑资源 187

7.5 CFingerSocket类 188

7.6 CFingerView类 190

7.7 运行Finger程序 191

8.3 美化程序外观 192

8.2 编写Whois程序 192

第8章 Whois协议编程 192

8.1 Whois协议 192

8.4 给视增加编辑功能 193

8.5 运行Whois程序 196

第9章 FTP协议编程 197

9.1 Windows下的ETP应用程序 197

9.2 FTP协议概述 198

9.2.1 专用术语 198

9.2.2 FTP模式 200

9.3 数据传送功能 201

9.3.1 数据表示和数据存储 202

9.3.2 建立数据连接 205

9.3.4 传输模式 206

9.3.3 数据连接管理 206

9.3.5 错误恢复和重新启动 208

9.4 文件传送功能 209

9.4.1 FTP命令 209

9.4.2 FTP应答 214

9.5 FTP协议详细说明 216

9.5.1 最小实现 216

9.5.2 连接 217

9.5.3 命令 218

9.5.4 命令和应答 219

9.6 FTP客户机编程 223

9.6.1 程序说明 223

9.6.3 编辑资源 224

9.6.2 创建程序框架 224

9.6.4 CConnectDialog类 226

9.6.5 CFtpView类 227

9.6.6 CControlSocket类 238

9.6.7 CListeningSocket类 242

9.6.8 CDataSocket类 243

9.6.9 CTransportSocket类 244

9.6.10 CFtpDoc类 246

9.7 运行FTP客户程序 247

9.8 FTP服务器编程 249

9.8.1 程序说明 249

9.8.3 函数ServiceStart 250

9.8.2 创建程序框架 250

9.8.4 设置和获取服务根目录 254

9.8.5 函数CleanupThread 255

9.8.6 停止、暂停和继续服务 257

9.8.7 创建协议解释线程 257

9.8.8 协议解释线程 258

9.9 调试和运行FTP服务程序 269

第10章 HTTP协议编程 271

10.1 浏览Web站点 271

10.2 HTTP协议概述 272

10.3 协议参数 272

10.3.1 HTTP版本 272

10.3.2 统一资源标识符(URI) 273

10.3.3 日期/时间格式 274

10.3.4 内容编码 275

10.3.5 媒体类型 275

10.3.6 产品标记 275

10.4 HTTP消息 275

10.4.1 消息类型 275

10.4.2 消息头标 276

10.4.3 一般头标域 277

10.5 请求 277

10.5.1 Request-Line 277

10.6.1 Status-Line 278

10.6 应答 278

10.5.2 请求头标域 278

10.6.2 应答头标域 280

10.7 实体 280

10.7.1 实体头标域 280

10.7.2 实体主体 281

10.8 方法定义 281

10.9 头标域定义 282

10.10 编写HTTP客户程序 286

10.10.1 程序说明 286

10.10.2 创建程序框架 286

10.10.3 函数main 287

10.10.4 函数ParseOptions 291

10.10.5 函数StripTags 292

10.10.6 其他函数 293

10.11 运行HTTP客户程序 293

10.12 编写HTTP服务器程序 294

10.12.1 程序说明 294

10.12.2 创建程序框架 295

10.12.3 函数HttpServiceThread 295

10.12.4 函数ProcessRequest 296

10.12.5 函数GetRequest 299

10.12.6 其他函数 300

10.13 运行HTTP服务器程序 300

11.1 浏览Gopher站点 301

第11章 Gopher协议编程 301

11.2 Gopher协议概述 302

11.3 连接服务器 302

11.4 服务器应答 303

11.5 请求服务 303

11.6 编写Gopher客户程序 304

11.6.1 程序说明 304

11.6,2 创建程序框架 304

11.6.3 编辑资源 305

11.6,4 CConnectDialog类 306

11.6.5 CGopherClientApp类 307

11.6.6 CGopherListClientDoc和CGopherFileClientDoc类 309

11.6.7 CGopherListClientView类 310

11.6.8 CGopherFileClientView类 313

11.7 运行Gopher客户程序 315

第12章 IRC协议编程 316

12.1 IRC协议概述 316

12.2 IRC消息 317

12.3 IRC通信分类 319

12.4 IRC命令 320

12.4.1 连接注册 320

12.4.2 通道操作 323

12.4.3 服务器查询命令 328

12.4.4 发送消息 332

12.4.5 用户查询 333

12.4.6 杂项消息 334

12.4.7 可选消息 336

12.5 编写IRC客户程序 338

12.5.1 程序说明 339

12.5.2 创建程序框架 339

12.5.3 编辑资源 340

12.5.4 CCommandDialog类 343

12.5.5 CconnectDialog类 343

12.5.6 CJoinDialog类 344

12.5.7 CNicknameDialog类 344

12.5.8 CIRCClientApp类 344

12.5.9 CChildFrame类 351

12.5.10 CIRCClientDoc类 352

12.5.11 CIRCClientView类 354

12.5.12 CIRCClientSocket类 355

12.6 运行IRC客户程序 356

第13章 电子邮件协议编程 358

13.1 SMTP协议 358

13.1.1 协议概述 358

13.1.2 SMTP邮件处理 359

13.1.3 SMTP命令 360

13.1.4 SMTP应答 362

13.1.5 SMTP命令——应答序列 363

13.2 POP3协议 364

13.2.2 认可状态 365

13.2.1 协议概述 365

13.2.3 处理事务状态 366

13.2.4 更新状态 368

13.2.5 可选的POP3命令 368

13.3 邮件消息格式 370

13.4 编写电子邮件客户程序 371

13.4.1 程序说明 371

13.4.2 创建程序框架 372

13.4.3 编辑资源 372

13.4.4 对话框类CAccountDialog 374

13.4.5 CMailClientDoc类 374

13.4.6 CChildFrame类 376

13.4.7 CMailListClientView类 381

13.5 运行电子邮件客户程序 385

第14章 NNTP协议编程 387

14.1 NNTP协议概述 387

14.2 NNTP命令 387

14.3 NNTP应答 389

14.4 NNTP命令——应答示例 391

14.5 USENET文章格式 392

14.6 编写新闻阅读程序 393

14.6.1 程序说明 393

14.6.2 创建程序框架 394

14.6.3 编辑资源 394

14.6.5 对话框类CComposeDialog 397

14.6.4 对话框类CConfigDialog 397

14.6.6 CChildFrame类 401

14.6.7 CNNTPClientDoc类 402

14.6.8 CNNTPNewsgroupsView类 406

14.6.9 CNNTPNewsInfoView类 409

14.7 运行新闻阅读程序 412

第15章 Telnet协议编程 414

15.1 Telnet协议概述 414

15.2 网络虚拟终端 415

15.3 Telnet命令结构 415

15.4 编写Telnet服务器程序 416

15.4.1 程序说明 417

15.4.2 函数ProcesRequest 417

15.4.3 程序Console 420

15.5 运行Telnet服务器程序 421

第三部分 提高篇 425

第16章 下载整个Web站点 425

16.1 脱机浏览 425

16.2 提高下载速度 425

16.3 程序说明 426

16.4 类CHTTPDownload 426

16.5 运行程序 427

第17章 代理服务器 428

17.1 为什么需要代理服务器 428

17.2 代理服务器的原理 428

17.3 程序说明 429

17.4 运行程序 431

第18章 断点续传 432

18.1 断点续传功能的用途 432

18.2 FTP协议的断点续传 432

18.3 支持断点续传的FTP服务器 433

18.4 HTTP协议的断点续传 434

18.5 支持断点续传的HTTP服务器 435

第19章 CGI和ISAPI编程 437

19.1 编写CGI程序 437

19.2 在Web页中使用CGI程序 438

19.3 ISAPI编程 439

19.4 编写服务器扩展 440

19.5 在Web页中使用服务器扩展 443

19.6 调试服务器扩展动态库 445

19.7 编写过滤器 446

19.8 使用过滤器 450

附录 453

附录A 超文本标记语言 453

A.1 HTML标记 453

A.2 文档结构 453

A.3 文档头标 454

A.4 格式控制 454

A.5 列表 455

A.6 超级链接 456

A.7 内嵌图像 456

A.8 交互式用户接口 457

A.9 表格 458

附录B 多用途因特网邮件扩展 460

B.1 MIME版本 460

B.2 内容类型 460

B.3 编码 462

B.4 内容标识 464

B.5 内容描述 464

附录C 远程访问服务 465

C.1 远程访问服务函数 465

C.2 RAS客户程序示例 466

附录D 浏览光盘 469

D.1 程序源代码清单 469