Linux网络编程

Linux网络编程
作 者: 林宇 郭凌云
出版社: 人民邮电出版社
丛编项:
版权说明: 本书为出版图书,暂不支持在线阅读,请支持正版图书
标 签: UNIX操作系统 程序设计
ISBN 出版时间 包装 开本 页数 字数
未知 暂无 暂无 未知 0 暂无

作者简介

暂缺《Linux网络编程》作者简介

内容简介

本书比较完整地介绍了Linux网络编程的知识。全书共分成四篇:基础知识篇、初级应用篇、应用提高篇和高级编程篇。在第一篇(第一至三章)中,介绍了Linux最基本的概念:文件系统和进程系统,对这两个概念进行了比较深入的说明和分析。在第二篇(第四至八章)中,主要讲述网络应用的基础,介绍了基本套接字编程、输入/输出的基本模型、带外数据的发送和接收以及服务器编程的模型、TCP/UDP编程比较等。在第三篇(第九至十二章)中,主要讲述如何构造网络应用,介绍了高级套接字函数的使用及如何编写守护进程、如何传递复杂的数据结构、如何编写RPC应用。在第四篇(第十三至十六章)中,侧重于服务器性能的提高,介绍了服务器的预创建技术、使用UNIX套接字来实现父进程对子进程的动态管理、多线程编程,并在最后列举了一个较完整的网络应用实例。本书主要读者对象为网络编程人员,对于网络编程的初学者可以阅读全书,对于具有一定网络编程经验的读者可以有选择地阅读本书相关章节。

图书目录

第一篇

基础知识篇
第一章

文件系统和进程系统
1.1

文件系统
1.1.1

文件系统的总体结构
1.1.2

文件结构和目录结构
1.2

文件系统的相关编程
1.3

进程系统
1.3.1

进程的概念
1.3.2

Linux中描述进程的核心数据结构
1.3.3

和进程相关的系统调用
本章小结
第二章

进程间通信和同步
2.1

信号的处理
2.1.1

Linux中支持的信号
2.1.2

信号的捕获和处理
2.1.3

系统调用和信号的相互作用
2.1.4

pause和suspend函数
2.2

信号量
2.2.1

进程间的互斥
2.2.2

信号量的结构和信号量操作函数
2.2.3

应用示例
2.3

消息队列
2.3.1

消息队列的结构
2.3.2

消息队列的操作函数
2.3.3

应用示例
2.4

共享内存
2.4.1

共享内存的操作函数
2.4.2

应用示例
本章小结
第三章

TCP/IP协议
3.1

OSI参考模型、协议和服务
3.2

协议和服务
3.2.1

TCP/IP
3.2.2

TCP和UDP的比较
3.2.3

Internet上两主机进程间通信数据的封装和解包
3.2.4

IP地址、网络地址和网络掩码
3.2.5

传输层端口
3.3

域名系统
3.4

域名解析和名字服务器
3.4.1

TCP协议
3.4.2

TCP的确认和超时重发机制
3.4.3

TCP头部格式

(Header

Format)
3.4.4

TCP连接的状态转移过程
3.5

IP数据包格式
3.6

Internet消息控制协议
本章小结
第二篇

初级应用篇
第四章

基本套接字编程实践
4.1

基本套接字函数族
4.1.1

socket编程的基本流程
4.1.2

函数socket
4.1.3

函数connect
4.1.4

函数bind
4.1.5

函数listen
4.1.6

函数accept
4.1.7

函数read和write
4.1.8

函数close
4.2

应用示例
4.3

程序结果和异常说明
4.3.1

程序的运行结果
4.3.2

程序的异常
本章小结
第五章

无阻塞套接字和单进程轮询服务器
5.1

无阻塞套接字
5.1.1

阻塞套接字的缺点
5.1.2

阻塞和无阻塞的比较
5.1.3

无阻塞的实现
5.2

单进程轮询服务器工作方式
5.3

应用示例
5.3.1

应用说明
5.3.2

应用源码
第六章

带外数据与多路复用、信号驱动的输入/输出模型


6.1

多路复用的输入/输出模型
6.1.1

多路复用模型的概念与select函数
6.1.2

应用示例
6.1.3

pselect函数对select的增强
6.2

信号驱动的输入/输出模型
6.3

系统I/O模型的总结
6.4

带外数据
6.4.1

带外数据的发送
6.4.2

带外数据的接收
6.4.3

带外数据接收方法的示例
本章小结
第七章

UDP数据报
7.1

UDP数据报的概述
7.2

UDP通信的过程
7.3

UDP的服务器和TCP服务器的比较
7.4

UDP的"连接"
7.5

应用示例
本章小结
第八章

域名系统和通用套接字选项
8.1

域名系统
8.1.1

域名系统的回顾
8.1.2

通过地址获取主机信息
8.1.3

通过主机名获取主机信息
8.1.4

获取本地主机的信息
8.1.5

通过服务名获取服务端口
8.1.6

通过端口号获取服务名
8.2

套接字选项
8.2.1

获取和设置套接字选项
8.2.2

通用套接字选项
本章小结
第三篇

应用提高篇
第九章

高级套接字函数编程实践
9.1

函数recv和send
9.1.1

函数send
9.1.2

函数recv
9.1.3

应用示例
9.1.4

应用源码和分析
9.2

函数readv和writev
9.2.1

函数说明
9.2.2

应用示例
9.3

函数recvmsg和sendmsg
本章小结
第十章

守护进程和超级服务器inetd
10.1

守护进程的原理
10.2

编程实践
10.3

超级服务器inetd的工作原理
10.3.1

超级服务器的概念
10.3.2

超级服务器使用的配置文件
10.3.3

inetd处理并发服务的过程
本章小结
第十一章

数据结构的传输和XDR标准
11.1

数据结构的传送
11.1.1

数据结构传送的问题
11.1.2

简单的示例
11.2

XDR标准
11.2.1

XDR中包含的数据类型
11.2.2

XDR实现的原理
11.2.3

XDR的转换函数库
本章小结
第十二章

RPC远程过程调用原理和实践
12.1

RPC的原理
12.1.1

XDR的更进一步
12.1.2

本地函数调用的过程
12.1.3

用远程调用来虚拟本地调用
12.2

RPC的实现
12.2.1

远程过程的标识
12.2.2

端口的动态映射
12.2.3

RPC的报文
12.2.4

RPC开发工具
12.2.5

设计的原则
12.3

应用示例:网络记事本
12.3.1

编写本地应用
12.3.2

Rpcgen构建RPC应用
12.3.3

编写RPC说明文件
12.3.4

修改客户端程序
12.3.5

修改服务器端程序
12.3.6

调用的完整过程
12.3.7

程序的结果、分析和总结
本章小结
第四篇

高级编程篇
第十三章

UNIX域套接字和并发服务器的预创建技术
13.1

UNIX域套接字
13.1.1

UNIX域的地址结构
13.1.2

UNIX套接字使用的示例
13.1.3

传递文件描述符
13.2

并发服务器的预创建技术
13.2.1

预创建固定服务器进程的数量
13.2.2

动态的管理子进程
13.2.3

重用服务器子进程
本章小结
第十四章

原始套接字编程实践
14.1

原始套接字
14.1.1

原始套接字的创建
14.1.2

原始套接字的使用
14.1.3

IP包头和ICMP报文的C语言描述
14.2

ping应用程序
14.2.1

程序设计
14.2.2

程序源码
14.3

IP套接字选项
14.3.1

IP_TTL选项
14.3.2

IP_TOS选项
14.3.3

IP_OPTIONS选项
14.3.4

IP_HDRINCL选项
本章小结
第十五章

多线程编程
15.1

线程的概念
15.1.1

线程的概念
15.1.2

线程的分类
15.1.3

线程的创建和等待函数
15.1.4

线程的属性函数
15.2

线程间的同步
15.2.1

无名信号量
15.2.2

互斥锁、条件变量和条件信号
15.2.3

线程和信号
15.3

在网络程序中应用多线程
15.3.1

线程间参数的传递
15.3.2

线程安全函数的设计
15.3.3

多进程的并发服务器和多线程的并发服务器
15.3.4

客户端进程的多线程化
本章小结
第十六章

网络售票系统的简单模拟
16.1

系统的总体设计
16.1.1

应用的说明
16.1.2

数据格式的设计
16.1.3

服务器端的设计
16.1.4

客户端的设计
16.2

程序源码和解析
16.2.1

服务器端的源码
16.2.2

客户端的源码
本章小结