目 录 1
第一部分概 论 1
第1章什么是Linux? 1
1.1 Linux的简介 1
1.2 Linux的发布版本 2
1.3 Linux的特性 3
第2章TCP/IP协议及Linux网络常用命令 5
2.1TCP/IP网络简介 5
2.2客户/服务器模型 8
2.3 Linux网络命令集 9
第3章Linux系统调用 12
3.1 Linux系统调用分类表 12
3.2 Linux系统编程常用库函数说明 15
第二部分基础篇 29
第4章Socket编程基础 29
4.1什么是Socket 29
4.2 Internet套接字的类型 30
4.3端口号 32
第5章套接字基本函数 34
5.1套接字地址结构 34
5.2值-结果参数 36
5.3字节排序函数 37
5.4字节操纵函数 38
第6章TCP Socket编程API 40
6.1 socket() 40
6.2 bind() 41
6.3 connect() 43
6.4 listen() 45
6.5 accept() 47
6.6 close()和shutdown() 48
6.7 read()和write() 49
6.8 getsockname()和getpeername() 53
6.9 gethostname()和gethostbyname() 55
第7章面向连接的客户/服务器代码实例 56
7.1 简单的客户服务务器示例 56
7.2 带简单通信协议的TCP客户-服务器示例 59
第8章UDP Socket编程API 76
8.1 recvfrom()和sendto() 76
8.2 简单的UDP客户服务器示例 78
8.3带简单通信协议的UDP客户-服务器示例 80
第三部分中级篇 92
第9章I/O复用 92
9.1 I/()模型 92
9.2 用select函数实现I/O复用 95
9.3超时处理 103
第10章套接字选项 106
10.1 系统调用getsockopt和setsockopt 106
10.2基本套接字选项 107
10.3系统调用fcntl 110
10.4 系统调用ioctl 112
第11章守护进程 115
11.1 什么是守护进程 115
1 1.4 inetd超级服务器 116
1 1.3 syslog函数 116
1 1.2 syslogd守护进程 116
11.5守护进程的编程 121
第四部分提高篇 125
第12章UNIX域协议 125
1 2.1 概述 125
12.2 UNIX域套接字地址结构 125
1 2.3 socketpair函数 127
12.4套接字函数 128
1 2.5 UNIX域字节流客户服务器 129
1 2.6 UNIX域数据报客户服务器程序 131
1 2.7描述字传递 132
1 2.8小结 139
1 3.2线程的创建和终止 140
第13章线程 140
1 3.1 有关线程的基本概念 140
1 3.3线程控制调用 142
1 3.4 线程之间的互斥 143
1 3.5线程之间的同步 145
1 3.6 线程特定数据区的函数调用 149
1 3.7一个使用线程的客户端并发的例子 151
第14章非阻塞式I/O 157
1 4.1 概述 157
1 4.2非阻塞读和写 158
1 4.3非阻塞connect 160
1 4.4非阻塞connect:Web客户程序 163
1 5.2套接字上的信号驱动I/O 168
1 5.1 概述 168
第15章信号驱动I/O 168
1 5.3 使用SIGIO的UDP回显服务器程序 170
1 5.4 select()、非阻塞I/O和SIGIO的比较 175
1 5.5 小结 175
第五部分高级篇 176
第16章原始套接字 176
1 6.1 原始套接字的创建 176
1 6.2原始套接字的输出 177
1 6.3原始套接字的输入 178
1 6.4原始套接字程序实例 179
1 7.1 概述 185
1 7.2广播地址 185
第17章广播与多播 185
1 7.3使用广播技术的程序实例 186
17.4 多播 188
1 7.5 多播套接字选项 189
1 7.6发送IP多播的程序实现 190
1 7.7多播的应用 193
1 7.8 小结 193
第18章数据链路访问 195
1 8.1 概述 195
18.2 Linux下的数据链路层编程 195
18.3 libpcap:分组捕获函数库 196
18.4 网络窃听程序的实现 196
1 8.5小结 203
附录本书中用到的一些头文件和函数 204