pdf

UNIX网络编程卷1:套接字联网API(第3版)

  • 1星
  • 日期: 2020-09-28
  • 大小: 85.39MB
  • 所需积分:1分
  • 下载次数:8
  • favicon收藏
  • rep举报
  • free评论
标签: unix

unix

linux

linux

《UNIX网络编程》(第1卷)(套接口API第3版)第1版和第2版由已故UNIX网络专家W.  Richard  Stevens博士独自编写。《UNIX网络编程》(第1卷)(套接口API第3版)是3版,由世界著名网络专家Bill  Fenner和Andrew  M.  Rudoff执笔,根据近几年网络技术的发展,对上一版进行全面修订,增添了IPv6的更新过的信息、SCTP协议和密钥管理套接口的内容,删除了X/Open传输接口的内容。

《UNIX网络编程》(第1卷)(套接口API第3版)内容详尽且具权威性,几乎每章都提供精选的习题,是计算机和网络专业高年级本科生和研究生的首选教材,《UNIX网络编程》(第1卷)(套接口API第3版)也可作为网络研究和开发人员的自学教材和参考书。

目录:

第一部分  简介和TCP/IP

第1章  简介  2

1.1  概述  2

1.2  一个简单的时间获取客户程序  5

1.3  协议无关性  9

1.4  错误处理:包裹函数  10

1.5  一个简单的时间获取服务器程序  12

1.6  本书中客户/服务器程序示例索引表  14

1.7  OSI模型  16

1.8  BSD网络支持历史  17

1.9  测试用网络及主机  19

1.10  Unix标准  22

1.11  64位体系结构  24

1.12  小结  25

习题  25

第2章  传输层:TCP、UDP和SCTP  27

2.1  概述  27

2.2  总图  27

2.3  用户数据报协议(UDP)  29

2.4  传输控制协议(TCP)  30

.2.5  流控制传输协议(SCTP)  31

2.6  TCP连接的建立和终止  31

2.7  TIME_WAIT状态  37

2.8  SCTP关联的建立和终止  38

2.9  端口号  42

2.10  TCP端口号与并发服务器  43

2.11  缓冲区大小及限制  45

2.12  标准因特网服务  50

2.13  常见因特网应用的协议使用  51

2.14  小结  52

习题  53

第二部分  基本套接字编程

第3章  套接字编程简介  56

3.1  概述  56

3.2  套接字地址结构  56

3.3  值-结果参数  61

3.4  字节排序函数  63

3.5  字节操纵函数  66

3.6  inet_aton、inet_addr和inet_ntoa函数  67

3.7  inet_pton和inet_ntop函数  68

3.8  sock_ntop和相关函数  70

3.9  readn、writen和readline函数  72

3.10  小结  76

习题  76

第4章  基本TCP套接字编程  77

4.1  概述  77

4.2  socket函数  77

4.3  connect函数  80

4.4  bind函数  81

4.5  listen函数  84

4.6  accept函数  88

4.7  fork和exec函数  90

4.8  并发服务器  91

4.9  close函数  93

4.10  getsockname和getpeername函数  94

4.11  小结  96

习题  96

第5章  TCP客户/服务器程序示例  97

5.1  概述  97

5.2  TCP回射服务器程序:main函数  97

5.3  TCP回射服务器程序:str_echo函数  98

5.4  TCP回射客户程序:main函数  99

5.5  TCP回射客户程序:str_cli函数  100

5.6  正常启动  101

5.7  正常终止  102

5.8  POSIX信号处理  103

5.9  处理SIGCHLD信号  106

5.10  wait和waitpid函数  108

5.11  accept返回前连接中止  111

5.12  服务器进程终止  112

5.13  SIGPIPE信号  113

5.14  服务器主机崩溃  114

5.15  服务器主机崩溃后重启  115

5.16  服务器主机关机  116

5.17  TCP程序例子小结  116

5.18  数据格式  117

5.19  小结  120

习题  120

第6章  I/O复用:select和poll函数  122

6.1  概述  122

6.2  I/O模型  122

6.3  select函数  127

6.4  str_cli函数(修订版)  132

6.5  批量输入  133

6.6  shutdown函数  136

6.7  str_cli函数(再修订版)  137

6.8  TCP回射服务器程序(修订版)  138

6.9  pselect函数  142

6.10  poll函数  144

6.11  TCP回射服务器程序(再修订版)  146

6.12  小结  148

习题  149

第7章  套接字选项  150

7.1  概述  150

7.2  getsockopt和setsockopt函数  150

7.3  检查选项是否受支持并获取默认值  152

7.4  套接字状态  156

7.5  通用套接字选项  156

7.6  IPv4套接字选项  168

7.7  ICMPv6套接字选项  169

7.8  IPv6套接字选项  169

7.9  TCP套接字选项  171

7.10  SCTP套接字选项  173

7.11  fcntl函数  182

7.12  小结  184

习题  184

第8章  基本UDP套接字编程  186

8.1  概述  186

8.2  recvfrom和sendto函数  187

8.3  UDP回射服务器程序:main函数  187

8.4  UDP回射服务器程序:dg_echo函数  188

8.5  UDP回射客户程序:main函数  190

8.6  UDP回射客户程序:dg_cli函数  190

8.7  数据报的丢失  191

8.8  验证接收到的响应  191

8.9  服务器进程未运行  193

8.10  UDP程序例子小结  194

8.11  UDP的connect函数  196

8.12  dg_cli函数(修订版)  199

8.13  UDP缺乏流量控制  200

8.14  UDP中的外出接口的确定  203

8.15  使用select函数的TCP和UDP回射服务器程序  204

8.16  小结  206

习题  207

第9章  基本SCTP套接字编程  208

9.1  概述  208

9.2  接口模型  208

9.3  sctp_bindx函数  212

9.4  sctp_connectx函数  213

9.5  sctp_getpaddrs函数  213

9.6  sctp_freepaddrs函数  213

9.7  sctp_getladdrs函数  214

9.8  sctp_freeladdrs函数  214

9.9  sctp_sendmsg函数  214

9.10  sctp_recvmsg函数  215

9.11  sctp_opt_info函数  215

9.12  sctp_peeloff函数  216

9.13  shutdown函数  216

9.14  通知  217

9.15  小结  221

习题  222

第10章  SCTP客户/服务器程序例子  223

10.1  概述  223

10.2  SCTP一到多式流分回射服务器程序:main函数  223

10.3  SCTP一到多式流分回射客户程序:main函数  225

10.4  SCTP流分回射客户程序:sctpstr_cli函数  226

10.5  探究头端阻塞  228

10.6  控制流的数目  233

10.7  控制终结  233

10.8  小结  234

习题  235

第11章  名字与地址转换  236

11.1  概述  236

11.2  域名系统  236

11.3  gethostbyname函数  239

11.4  gethostbyaddr函数  242

11.5  getservbyname和getservbyport函数  242

11.6  getaddrinfo函数  245

11.7  gai_strerror函数  250

11.8  freeaddrinfo函数  251

11.9  getaddrinfo函数:IPv6  251

11.10  getaddrinfo函数:例子  253

11.11  host_serv函数  254

11.12  tcp_connect函数  254

11.13  tcp_listen函数  257

11.14  udp_client函数  261

11.15  udp_connect函数  263

11.16  udp_server函数  264

11.17  getnameinfo函数  266

11.18  可重入函数  267

11.19  gethostbyname_r和gethostbyaddr_r函数  270

11.20  作废的IPv6地址解析函数  271

11.21  其他网络相关信息  272

11.22  小结  273

习题  274

第三部分  高级套接字编程

第12章  IPv4与IPv6的互操作性  278

12.1  概述  278

12.2  IPv4客户与IPv6服务器  278

12.3  IPv6客户与IPv4服务器  281

12.4  IPv6地址测试宏  283

12.5  源代码可移植性  284

12.6  小结  284

习题  285

第13章  守护进程和inetd超级服务器  286

13.1  概述  286

13.2  syslogd守护进程  286

13.3  syslog函数  287

13.4  daemon_init函数  289

13.5  inetd守护进程  293

13.6  daemon_inetd函数  297

13.7  小结  299

习题  299

第14章  高级I/O函数  300

14.1  概述  300

14.2  套接字超时  300

14.3  recv和send函数  305

14.4  readv和writev函数  306

14.5  recvmsg和sendmsg函数  307

14.6  辅助数据  310

14.7  排队的数据量  313

14.8  套接字和标准I/O  313

14.9  高级轮询技术  316

14.10  T/TCP:事务目的TCP  320

14.11  小结  322

习题  323

第15章  Unix域协议  324

15.1  概述  324

15.2  Unix域套接字地址结构  324

15.3  socketpair函数  326

15.4  套接字函数  327

15.5  Unix域字节流客户/服务器程序  327

15.6  Unix域数据报客户/服务器程序  329

15.7  描述符传递  330

15.8  接收发送者的凭证  337

15.9  小结  340

习题  340

第16章  非阻塞式I/O  341

16.1  概述  341

16.2  非阻塞读和写:str_cli函数(修订版)  342

16.3  非阻塞connect  351

16.4  非阻塞connect:时间获取客户程序  352

16.5  非阻塞connect:Web客户程序  354

16.6  非阻塞accept  362

16.7  小结  363

习题  363

第17章  ioctl操作  365

17.1  概述  365

17.2  ioctl函数  365

17.3  套接字操作  366

17.4  文件操作  367

17.5  接口配置  367

17.6  get_ifi_info函数  369

17.7  接口操作  378

17.8  ARP高速缓存操作  378

17.9  路由表操作  380

17.10  小结  381

习题  381

第18章  路由套接字  382

18.1  概述  382

18.2  数据链路套接字地址结构  382

18.3  读和写  383

18.4  sysctl操作  390

18.5  get_ifi_info函数  394

18.6  接口名字和索引函数  397

18.7  小结  401

习题  401

第19章  密钥管理套接字  402

19.1  概述  402

19.2  读和写  403

19.3  倾泻安全关联数据库  404

19.4  创建静态安全关联  407

19.5  动态维护安全关联  412

19.6  小结  415

习题  416

第20章  广播  417

20.1  概述  417

20.2  广播地址  418

20.3  单播和广播的比较  419

20.4  使用广播的dg_cli函数  422

20.5  竞争状态  424

20.6  小结  431

习题  432

第21章  多播  433

21.1  概述  433

21.2  多播地址  433

21.3  局域网上多播和广播的比较  436

21.4  广域网上的多播  438

21.5  源特定多播  440

21.6  多播套接字选项  441

21.7  mcast_join和相关函数  445

21.8  使用多播的dg_cli函数  450

21.9  接收IP多播基础设施会话声明  451

21.10  发送和接收  454

21.11  SNTP:简单网络时间协议  457

21.12  小结  461

习题  461

第22章  高级UDP套接字编程  462

22.1  概述  462

22.2  接收标志、目的IP地址和接口索引  462

22.3  数据报截断  467

22.4  何时用UDP代替TCP  467

22.5  给UDP应用增加可靠性  469

22.6  捆绑接口地址  478

22.7  并发UDP服务器  482

22.8  IPv6分组信息  483

22.9  IPv6路径MTU控制  486

22.10  小结  487

习题  488

第23章  高级SCTP套接字编程  489

23.1  概述  489

23.2  自动关闭的一到多式服务器程序  489

23.3  部分递送  490

23.4  通知  492

23.5  无序的数据  495

23.6  捆绑地址子集  496

23.7  确定对端和本端地址信息  497

23.8  给定IP地址找出关联ID  500

23.9  心搏和地址不可达  501

23.10  关联剥离  502

23.11  定时控制  503

23.12  何时改用SCTP代替TCP  505

23.13  小结  506

习题  506

第24章  带外数据  507

24.1  概述  507

24.2  TCP带外数据  507

24.3  sockatmark函数  513

24.4  TCP带外数据小结  519

24.5  客户/服务器心搏函数  520

24.6  小结  524

习题  524

第25章  信号驱动式I/O  525

25.1  概述  525

25.2  套接字的信号驱动式I/O  525

25.3  使用SIGIO的UDP回射服务器程序  527

25.4  小结  532

习题  533

第26章  线程  534

26.1  概述  534

26.2  基本线程函数:创建和终止  535

26.3  使用线程的str_cli函数  537

26.4  使用线程的TCP回射服务器程序  538

26.5  线程特定数据  542

26.6  Web客户与同时连接  549

26.7  互斥锁  552

26.8  条件变量  555

26.9  Web客户与同时连接(续)  558

26.10  小结  560

习题  560

第27章  IP选项  561

27.1  概述  561

27.2  IPv4选项  561

27.3  IPv4源路径选项  562

27.4  IPv6扩展首部  569

27.5  IPv6步跳选项和目的地选项  569

27.6  IPv6路由首部  573

27.7  IPv6粘附选项  577

27.8  历史性IPv6高级API  578

27.9  小结  579

习题  579

第28章  原始套接字  580

28.1  概述  580

28.2  原始套接字创建  580

28.3  原始套接字输出  581

28.4  原始套接字输入  582

28.5  ping程序  584

28.6  traceroute程序  596

28.7  一个ICMP消息守护程序  608

28.8  小结  622

习题  622

第29章  数据链路访问  623

29.1  概述  623

29.2  BPF:BSD分组过滤器  623

29.3  DLPI:数据链路提供者接口  625

29.4  Linux:SOCK_PACKET和  PFPACKET  626

29.5  libpcap:分组捕获函数库  627

29.6  libnet:分组构造与输出函数库  627

29.7  检查UDP的校验和字段  628

29.8  小结  645

习题  645

第30章  客户/服务器程序设计范式  646

30.1  概述  646

30.2  TCP客户程序设计范式  648

30.3  TCP测试用客户程序  649

30.4  TCP迭代服务器程序  650

30.5  TCP并发服务器程序,每个客户一个子进程  650

30.6  TCP预先派生子进程服务器程序,accept无上锁保护  653

30.7  TCP预先派生子进程服务器程序,accept使用文件上锁保护  659

30.8  TCP预先派生子进程服务器程序,accept使用线程上锁保护  662

30.9  TCP预先派生子进程服务器程序,传递描述符  663

30.10  TCP并发服务器程序,每个客户一个线程  667

30.11  TCP预先创建线程服务器程序,每个线程各自accept  669

30.12  TCP预先创建线程服务器程序,主线程统一accept  671

30.13  小结  673

习题  674

第31章  流  675

31.1  概述  675

31.2  概貌  675

31.3  getmsg和putmsg函数  678

31.4  getpmsg和putpmsg函数  679

31.5  ioctl函数  680

31.6  TPI:传输提供者接口  680

31.7  小结  689

习题  689

附录A  IPv4、IPv6、ICMPv4和ICMPv6  690

附录B  虚拟网络  704

附录C  调试技术  708

附录D  杂凑的源代码  714

附录E  精选习题答案  726

参考文献  756

索引  763

推荐帖子 最新更新时间:2021-07-28 12:10

stm32定时器的一个疑问
本帖最后由 长得帅怪我落 于 2017-3-13 11:56 编辑 是这样的,用的stm32f103的某个芯片,然后用定时器中断,在中断服务函数里面随便做点小事。然后定时时间从外面传进来。我有个疑问就是,比如是我传了个时间30分钟,然后30分钟没到,我又重新初始化了定时器,也就是设置分频啊,时钟使能啊什么的,然后重新传了个新的时间进去,比如是10分钟,那么问题来了,这时候会不会覆盖之前的数据,
长得帅怪我落 单片机
TI mactimer溢出周期320us
大家好: 最近在做CC2530的开发,做的是裸机开发,没有用到TI的zigbee协议,只是把芯片当做简单的射频模块使用,在做实时时钟的时候,发现芯片并没有这个功能,参考TI的TI_MAC例程,在osal_clock.c里面实时时钟用的是程序做出来的软实时时钟,用的是16位的计数器没320us溢出一次,然后24位的计数器累加一,计算320us溢出的个数来计算时间的,技术手册也描述了16位计数器
seanwaye 无线连接
运放正相与反相放大性能的差异
算放大器   运算放大器(简称“运放”)是具有很高放大倍数的电路单元。在实际电路中,通常结合反馈网络共同组成某种功能模块。它是一种带有特殊耦合电路及反馈的放大器。其输出信号可以是输入信号加、减或微分、积分等数学运算的结果。 [1] 由于早期应用于模拟计算机中,用以实现数学运算,故得名“运算放大器”。运放是一个从功能的角度命名的电路单元,可以由分立的器件实现,也可以实现在半导体芯片当中。随着半导体
Jacktang 模拟与混合信号
编译Linux内核出现问题
我在虚拟机中装的Ubuntu9.1,编译内核Linux-2.6.22.6,arm-linux-gcc3.4.5,配置时make menuconfig时出现问题 scripts/kconfig/mconf arch/arm/Kconfig scripts/kconfig/mconf: Symbol `acs_map' has different size in shared object, co
青城山下 Linux与安卓
【AT-START-F403A测评】之一freeRTOS系统IAR环境搭建
雅特力的产品一年前经过朋友推介有一定了解,刚好手头项目接近尾声,新项目计划已经启动众多评估工作,基于 freeRTOS系统的评估是其中之一,昨天刚拿到开发板,移植了最新freeRTOS版本10.4.1,非常顺利的跑了三个点灯任务。简要过程如下: freeRTOS官网(https://www.freertos.org/)下载最新版本。 建立IAR评估工程框架。
uuxz99 国产芯片交流
【LPC8N04测评】4.点亮LED及疑问
我这个贴子早就应写一下了,只不过近来公司工作有调动。不得不先保钣碗再说。 我本想按照 原理图控制全部的LED亮,我想的很简单让横行高电平,纵行低电平。 但打开例程确函数连篇。根本没有直接控制的可能。我试了几个都不好用。 一次偶然的过程中。我发现DEMO的函数跟屏蔽位有关系。我在初始化LED也点亮了几个LED 我疑问就来了,为什么这款单片机控制管脚会这么麻烦,以下是数据手册的截图:
ddllxxrr NXP MCU

评论

登录/注册

意见反馈

求资源

回顶部

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版 版权声明

北京市海淀区知春路23号集成电路设计园量子银座1305 电话:(010)82350740 邮编:100191

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2021 EEWORLD.com.cn, Inc. All rights reserved
$(function(){ var appid = $(".select li a").data("channel"); $(".select li a").click(function(){ var appid = $(this).data("channel"); $('.select dt').html($(this).html()); $('#channel').val(appid); }) })
×