简介
本书深入浅出地阐述了网络编程的基本思路以及网络编程中常用的客户机-服务器模型,详细地介绍了包括TCP套接口,UDP套接口和原始套接口等套接口编程的各个细节,并且给出了大量例子。同时,本书对CGI的基本概念也进行了简单的介绍,并对Perl进行讲解。
本书可供广大的Linux爱好者,尤其Linux网络编程人员作网络编程的入门指导和参考用书。
目录
目录
序
前言
第1章 Linux网络配置
1.1 Linux内核对网络的支持
1.1.1 对协议的支持
1.1.2 对网络设备的支持
1.2 配置网络界面
1.2.1 动手配置网络界面
1.2.2 ifconfig配置网络界面
1.2.3 route命令加入路由
1.3 有关网络的常用命令
1.3.1 arp
1.3.2 hostname
1.3.3 netstat
1.3.4 login
1.3.5 nslookup
1.3.6 ping
1.3.7 route
1.4 小结
第2章 TCP/IP的基本原理
2.1 计算机网络的体系结构模型
2.1.1 ISO模型
2.1.2 TCP/IP Internet分层模型
2.1.3 协议分层的原则
2.1.4 ISO与Internet分层法的区别
2.2 TCP/IP协议中的传输层
2.2.1 TCP/IP协议族
2.2.2 用户数据报协议UDP
2.2.3 传输控制协议TCP
2.2.4 TCP连接的建立和终止
2.2.5 TCP状态机
2.2.6 端口号和套接口对
2.2.7 并发服务器
2.2.8 节、IP数据报、帧、缓冲区大小及其影响
2.3 常见Internet进程的协议使用
2.4 客户与服务器模型
2.4.1 客户与服务器
2.4.2 客户—服务器中的并发性
2.5 小结
第3章 套接口编程基础
3.1 套接口地址结构
3.1.1 通用套接口地址结构
3.1.2 数据类型
3.1.3 IPv4套接口地址结构
3.2 一些基本函数
3.2.1 字节排序函数
3.2.2 字节操纵函数
3.2.3 地址转换函数
3.2.4 字节流的读写函数
3.2.5 建立连接函数
3.2.6 值—结果参数
3.2.7 套接口函数小结
3.3 一个简单例子
3.4 小结
第4章 客户—服务器软件设计中的算法
4.1 客户软件设计中的算法
4.1.1 一些细节问题
4.1.2 TCP客户程序算法
4.1.3 UDP客户程序算法
4.2 服务器软件设计的算法和问题
4.2.1 并发服务器和迭代服务器
4.2.2 面向连接的和无连接的服务
4.2.3 迭代服务器的算法
4.2.4 并发服务器的算法
4.2.5 各种服务器的比较
4.2.6 服务器死锁
4.3 小结
第5章 TCP套接口编程
5.1 基本TCP客户—服务器模型
5.1.1 如何编写一个简单的TCP客户与服务器
5.1.2 队列问题
5.1.3 并发服务器
5.2 启动和终止
5.2.1 客户与服务器的启动
5.2.2 客户与服务器的终止
5.3 信号处理
5.3.1 signal函数
5.3.2 清除僵尸进程
5.3.3 wait函数和waitpid函数
5.4 I/O模型
5.4.1 阻塞I/O模型
5.4.2 非阻塞I/O
5.4.3 I/O复用
5.4.4 信号驱动I/O
5.4.5 异步I/O
5.4.6 各种模型的比较
5.5 select函数
5.5.1 select函数
5.5.2 描述字准备好的条件
5.5.3 select函数应用
5.6 充分利用信道容量
5.6.1 shutdown函数
5.6.2 批量输入
5.7 单进程的回射服务器
5.8 poll函数
5.8.1 poll函数
5.8.2 用poll函数修改回射服务器程序
5.9 小结
第6章 UDP套接口编程
6.1 典型的UDP客户与服务器模型
6.1.1 套接口函数的调用
6.1.2 recvfrom函数和sendto函数
6.1.3 回射程序
6.2 可靠性问题
6.2.1 数据报的丢失
6.2.2 服务器进程没有启动
6.2.3 验证服务器的响应
6.3 UDP套接口的连接
6.3.1 建立连接
6.3.2 断开连接
6.3.3 未连接套接口与已连接套接口的比较
6.3.4 已连接套接口的应用
6.3.5 UDP套接口的流量问题
6.3.6 TCP和UDP回射服务器程序
6.4 改善UDP应用程序性能
6.4.1 何时使用UDP而不是TCP
6.4.2 增加可靠性
6.5 套接口选项
6.5.1 getsockopt和setsockopt函数
6.5.2 基本套接口选项
6.5.3 TCP套接口选项
6.5.4 IPv4套接口选项
6.6 小结
第7章 名字与地址转换
7.1 套接口函数
7.1.1 域名系统DNS(Domain Name System)
7.1.2 gethostbyname
7.1.3 gethostbyaddr函数
7.1.4 取得当前主机的名字的函数
7.1.5 关于服务器的两个函数
7.2 getaddrinfo函数
7.2.1 getaddrinfo函数
7.2.2 适用于TCP套接口的几个函数
7.2.3 适用于UDP套接口的几个函数
7.3 getnameinfo函数
7.4 小结
第8章 原始套接口编程
8.1 原始套接口的操作
8.1.1 创建原始套接口
8.1.2 写套接口
8.1.3 读原始套接口
8.2 ping程序
8.3 小结
第9章 带外数据
9.1 I/O函数
9.1.1 recv和send函数
9.1.2 readv和writev函数
9.1.3 recvmsg和sendmsg函数
9.2 TCP带外数据
9.2.1 带外数据的发送
9.2.2 带外数据的接收
9.3 小结
第10章 进程与线程
10.1 进程
10.2 线程
10.2.1 pthread_creat函数
10.2.2 pthread_join函数
10.2.3 pthread_self函数
10.2.4 pthread_detach函数
10.2.5 pthread_exit函数
10.2.6 pthread_key_create函数
10.2.7 pthread_once函数
10.2.8 pthread_getspecific函数
10.2.9 pthread_setspecific函数
10.2.10 pthread_mutex_lock函数
10.2.11 pthread_mutex_unlock函数
10.3 str_cli函数
10.4 使用线程的TCP回射服务器程序
10.5 共享资源的保护
10.5.1 文件和记录锁
10.5.2 线程互斥锁
10.6 小结
第11章 守护进程
11.1 守护进程
11.2 守护进程的启动
11.3 守护进程的消息处理
11.3.1 syslog函数
11.3.2 syslogd守护进程
11.3.3 openlog函数和closelog函数
11.4 守护进程的生成
11.4.1 使用daemon_init函数
11.4.2 使用inetd超级服务器
11.5 小结
第12章 广播
12.1 概述
12.2 广播地址及与单播的比较
12.3 广播中的udp_quest函数
12.4 竞争状态
12.5 小结
第13章 CGI简介
13.1 World Wide Web
13.2 CGI程序
13.3 CGI开发工具
13.3.1 解释型语言
13.3.2 编译型语言
13.4 CGI脚本的结构
13.4.1 初始化
13.4.2 处理
13.4.3 终止
13.5 CGI程序库
13.5.1 个人库
13.5.2 公共库
13.6 CGI的基本元素
13.6.1 环境变量
13.6.2 URL编码信息
13.6.3 头标信息
13.6.4 输出
13.7 小结
第14章 Perl的数据结构
14.1 量与常量
14.1.1 变量
14.1.2 常量
14.2 数组和散列
14.2.1 数组
14.2.2 散列
14.3 引用
14.3.1 直接引用
14.3.2 匿名数组和散列
14.4 小结
第15章 Perl运算符
15.1 算术运算符
15.2 位逻辑运算符
15.2.1 位逻辑运算符的种类
15.2.2 功能说明
15.3 赋值运算符
15.4 关系运算符
15.5 递增/递减运算符
15.6 逻辑运算符
15.7 字符串运算符
15.8 其他运算符
15.8.1 条件运算符
15.8.2 逗号运算符
15.9 运算符的优先级和结合性
15.10 小结
第16章 控制语句
16.1 if语句
16.1.1 基本形式
16.1.2 一般形式
16.2 while语句
16.3 until语句
16.4 do语句
16.5 for语句
16.6 foreach语句
16.7 continue语句
16.8 last语句
16.9 next语句
16.10 redo语句
16.11 模拟Switch语句
16.12 小结
第17章 Perl的I/O处理
17.1 命令行输入
17.1.1 ARGV变量
17.1.2 命令行开关参数
17.2 文件操作
17.2.1 文件和关闭
17.2.2 数据的定位
17.2.3 文件的修改
17.2.4 文件测试
17.3 打印技术
17.3.1 print函数
17.3.2 printf函数
17.3.3 sprintf函数
17.3.4 write函数
17.3.5 format语句
17.4 小结
附录 headfile.h头文件
?"YEx
序
前言
第1章 Linux网络配置
1.1 Linux内核对网络的支持
1.1.1 对协议的支持
1.1.2 对网络设备的支持
1.2 配置网络界面
1.2.1 动手配置网络界面
1.2.2 ifconfig配置网络界面
1.2.3 route命令加入路由
1.3 有关网络的常用命令
1.3.1 arp
1.3.2 hostname
1.3.3 netstat
1.3.4 login
1.3.5 nslookup
1.3.6 ping
1.3.7 route
1.4 小结
第2章 TCP/IP的基本原理
2.1 计算机网络的体系结构模型
2.1.1 ISO模型
2.1.2 TCP/IP Internet分层模型
2.1.3 协议分层的原则
2.1.4 ISO与Internet分层法的区别
2.2 TCP/IP协议中的传输层
2.2.1 TCP/IP协议族
2.2.2 用户数据报协议UDP
2.2.3 传输控制协议TCP
2.2.4 TCP连接的建立和终止
2.2.5 TCP状态机
2.2.6 端口号和套接口对
2.2.7 并发服务器
2.2.8 节、IP数据报、帧、缓冲区大小及其影响
2.3 常见Internet进程的协议使用
2.4 客户与服务器模型
2.4.1 客户与服务器
2.4.2 客户—服务器中的并发性
2.5 小结
第3章 套接口编程基础
3.1 套接口地址结构
3.1.1 通用套接口地址结构
3.1.2 数据类型
3.1.3 IPv4套接口地址结构
3.2 一些基本函数
3.2.1 字节排序函数
3.2.2 字节操纵函数
3.2.3 地址转换函数
3.2.4 字节流的读写函数
3.2.5 建立连接函数
3.2.6 值—结果参数
3.2.7 套接口函数小结
3.3 一个简单例子
3.4 小结
第4章 客户—服务器软件设计中的算法
4.1 客户软件设计中的算法
4.1.1 一些细节问题
4.1.2 TCP客户程序算法
4.1.3 UDP客户程序算法
4.2 服务器软件设计的算法和问题
4.2.1 并发服务器和迭代服务器
4.2.2 面向连接的和无连接的服务
4.2.3 迭代服务器的算法
4.2.4 并发服务器的算法
4.2.5 各种服务器的比较
4.2.6 服务器死锁
4.3 小结
第5章 TCP套接口编程
5.1 基本TCP客户—服务器模型
5.1.1 如何编写一个简单的TCP客户与服务器
5.1.2 队列问题
5.1.3 并发服务器
5.2 启动和终止
5.2.1 客户与服务器的启动
5.2.2 客户与服务器的终止
5.3 信号处理
5.3.1 signal函数
5.3.2 清除僵尸进程
5.3.3 wait函数和waitpid函数
5.4 I/O模型
5.4.1 阻塞I/O模型
5.4.2 非阻塞I/O
5.4.3 I/O复用
5.4.4 信号驱动I/O
5.4.5 异步I/O
5.4.6 各种模型的比较
5.5 select函数
5.5.1 select函数
5.5.2 描述字准备好的条件
5.5.3 select函数应用
5.6 充分利用信道容量
5.6.1 shutdown函数
5.6.2 批量输入
5.7 单进程的回射服务器
5.8 poll函数
5.8.1 poll函数
5.8.2 用poll函数修改回射服务器程序
5.9 小结
第6章 UDP套接口编程
6.1 典型的UDP客户与服务器模型
6.1.1 套接口函数的调用
6.1.2 recvfrom函数和sendto函数
6.1.3 回射程序
6.2 可靠性问题
6.2.1 数据报的丢失
6.2.2 服务器进程没有启动
6.2.3 验证服务器的响应
6.3 UDP套接口的连接
6.3.1 建立连接
6.3.2 断开连接
6.3.3 未连接套接口与已连接套接口的比较
6.3.4 已连接套接口的应用
6.3.5 UDP套接口的流量问题
6.3.6 TCP和UDP回射服务器程序
6.4 改善UDP应用程序性能
6.4.1 何时使用UDP而不是TCP
6.4.2 增加可靠性
6.5 套接口选项
6.5.1 getsockopt和setsockopt函数
6.5.2 基本套接口选项
6.5.3 TCP套接口选项
6.5.4 IPv4套接口选项
6.6 小结
第7章 名字与地址转换
7.1 套接口函数
7.1.1 域名系统DNS(Domain Name System)
7.1.2 gethostbyname
7.1.3 gethostbyaddr函数
7.1.4 取得当前主机的名字的函数
7.1.5 关于服务器的两个函数
7.2 getaddrinfo函数
7.2.1 getaddrinfo函数
7.2.2 适用于TCP套接口的几个函数
7.2.3 适用于UDP套接口的几个函数
7.3 getnameinfo函数
7.4 小结
第8章 原始套接口编程
8.1 原始套接口的操作
8.1.1 创建原始套接口
8.1.2 写套接口
8.1.3 读原始套接口
8.2 ping程序
8.3 小结
第9章 带外数据
9.1 I/O函数
9.1.1 recv和send函数
9.1.2 readv和writev函数
9.1.3 recvmsg和sendmsg函数
9.2 TCP带外数据
9.2.1 带外数据的发送
9.2.2 带外数据的接收
9.3 小结
第10章 进程与线程
10.1 进程
10.2 线程
10.2.1 pthread_creat函数
10.2.2 pthread_join函数
10.2.3 pthread_self函数
10.2.4 pthread_detach函数
10.2.5 pthread_exit函数
10.2.6 pthread_key_create函数
10.2.7 pthread_once函数
10.2.8 pthread_getspecific函数
10.2.9 pthread_setspecific函数
10.2.10 pthread_mutex_lock函数
10.2.11 pthread_mutex_unlock函数
10.3 str_cli函数
10.4 使用线程的TCP回射服务器程序
10.5 共享资源的保护
10.5.1 文件和记录锁
10.5.2 线程互斥锁
10.6 小结
第11章 守护进程
11.1 守护进程
11.2 守护进程的启动
11.3 守护进程的消息处理
11.3.1 syslog函数
11.3.2 syslogd守护进程
11.3.3 openlog函数和closelog函数
11.4 守护进程的生成
11.4.1 使用daemon_init函数
11.4.2 使用inetd超级服务器
11.5 小结
第12章 广播
12.1 概述
12.2 广播地址及与单播的比较
12.3 广播中的udp_quest函数
12.4 竞争状态
12.5 小结
第13章 CGI简介
13.1 World Wide Web
13.2 CGI程序
13.3 CGI开发工具
13.3.1 解释型语言
13.3.2 编译型语言
13.4 CGI脚本的结构
13.4.1 初始化
13.4.2 处理
13.4.3 终止
13.5 CGI程序库
13.5.1 个人库
13.5.2 公共库
13.6 CGI的基本元素
13.6.1 环境变量
13.6.2 URL编码信息
13.6.3 头标信息
13.6.4 输出
13.7 小结
第14章 Perl的数据结构
14.1 量与常量
14.1.1 变量
14.1.2 常量
14.2 数组和散列
14.2.1 数组
14.2.2 散列
14.3 引用
14.3.1 直接引用
14.3.2 匿名数组和散列
14.4 小结
第15章 Perl运算符
15.1 算术运算符
15.2 位逻辑运算符
15.2.1 位逻辑运算符的种类
15.2.2 功能说明
15.3 赋值运算符
15.4 关系运算符
15.5 递增/递减运算符
15.6 逻辑运算符
15.7 字符串运算符
15.8 其他运算符
15.8.1 条件运算符
15.8.2 逗号运算符
15.9 运算符的优先级和结合性
15.10 小结
第16章 控制语句
16.1 if语句
16.1.1 基本形式
16.1.2 一般形式
16.2 while语句
16.3 until语句
16.4 do语句
16.5 for语句
16.6 foreach语句
16.7 continue语句
16.8 last语句
16.9 next语句
16.10 redo语句
16.11 模拟Switch语句
16.12 小结
第17章 Perl的I/O处理
17.1 命令行输入
17.1.1 ARGV变量
17.1.2 命令行开关参数
17.2 文件操作
17.2.1 文件和关闭
17.2.2 数据的定位
17.2.3 文件的修改
17.2.4 文件测试
17.3 打印技术
17.3.1 print函数
17.3.2 printf函数
17.3.3 sprintf函数
17.3.4 write函数
17.3.5 format语句
17.4 小结
附录 headfile.h头文件
?"YEx
Linux网络编程
- 名称
- 类型
- 大小
光盘服务联系方式: 020-38250260 客服QQ:4006604884
云图客服:
用户发送的提问,这种方式就需要有位在线客服来回答用户的问题,这种 就属于对话式的,问题是这种提问是否需要用户登录才能提问
Video Player
×
Audio Player
×
pdf Player
×