编辑推荐:
内容简介: 《高等学校计算机科学与技术教材:TCP/IP网络编程技术基础》是一本基于tcp/ip协议进行计算机网络编程的教科书。《高等学校计算机科学与技术教材:TCP/IP网络编程技术基础》通过原理介绍与例程剖析的形式,系统介绍了linux环境下如何使用c语言基于tcp/ip协议进行网络编程的详细步骤与过程。
与国内外出版的同类教材相比,本书主要的特点为:在注重阐述tcp/ip网络通信原理与套接字api编程原理的基础上,通过对例程的深人剖析,深入浅出地介绍服务器与客户软件的编程技巧;同时,在章节的编排上更加富有衔接性。本书第1章和第2章主要介绍tcp/ip网络通信原理与套接字api编程原理,第3章和第4章主要介绍循环服务器软件的设计方法,第5章介绍服务器的并发机制,第6章到第8章则主要介绍并发服务器的设计方法,第9章主要介绍服务器并发性的统一与高效管理技术,第10章主要介绍客户进程中的并发机制,第11章主要介绍客户-服务器系统中的死锁问题,第12章则介绍了gcc编译器的安装与使用方法,整个12章按照“原理→循环服务器软件设计→并发服务器软件设计→并发客户软件设计→客户-服务器系统中的死锁问题→客户-服务器软件编译环境”的顺序,通过c语言例程剖析,由浅入深地介绍了基于tcp/ip协议进行计算机网络编程的方法。通过以上连贯的章节编排,使得读者能够更加简洁、系统地掌握网络编程技术。
《tcp/ip网络编程技术基础》可供计算机与通信专业的本科生、从事计算机网络编程的技术人与网络编程爱好者使用,同时,也可供其他专业的学生、计算机网络技术的爱好者,以及计算机应用技术相关的工程技术人员参考。
作者简介:
目录:第1章 tcp/ip网络通信原理
1.1 tcp/ip协议概述
1.1.1 tcp/ip参考模型
1.1.2 tcp/ip参考模型的通信原理
1.1.3 linux系统实现网络通信的基本原理
1.2 tcp/ip网络通信中的客户-服务器模型
1.2.1 客户-服务器模型
1.2.2 客户-服务器模型中的汇聚点问题及其解决方法
1.2.3 客户-服务器模型中服务器设计与实现的复杂性
1.2.4 服务器中的并发问题
1.2.5 服务器并发性的实现方法
1.2.6 服务器的分类
1.3 tcp/ip网络通信中的客户软件的设计流程
1.3.1 tcp客户算法
1.3.2 udp客户算法
1.3.3 客户算法中服务器套接字端点地址的查找问题
1.3.4 客户算法中本地端点地址的选择问题
1.4 tcp/ip网络通信中的服务器软件的设计流程
1.4.1 主动套接字与被动套接字
1.4.2 tcp服务器算法
1.4.3 udp服务器算法
1.4.4 服务器算法中熟知端口的绑定问题
1.5 本章 小结
本章 习题
第2章 套接字api
2.1 套接字api概述
2.2 套接字an中的主要系统函数
2.2.1 socket()函数
2.2.2 connect()函数
2.2.3 bind()函数
2.2.4 listen()函数
2.2.5 accept()函数
2.2.6 send()函数
2.2.8 sendto()函数
2.2.9 recvfrom()函数
2.2.10 close()函数
2.2.11 shutdown()函数
2.2.12 getpeername()函数
2.2.13 setsockopt()函数
2.2.14 getsockopt()函数
2.3 基于套接字api的c/s网络通信模型
2.3.1 基于udp的c/s网络通信模型
2.3.2 基于tcp的c/s网络通信模型
2.4 本章 小结
本章 习题
第3章 循环服务器例程剖析
3.1 循环服务器进程结构
3.1.1 循环的udp服务器进程结构
3.1.2 循环的tcp服务器进程结构
3.2 循环服务器软件设计流程
3.2.1 循环的udp服务器软件设计流程
3.2.2 循环的tcp服务器软件设计流程
3.3 循环的五连接的nme服务器例程
3.3.1 相关系统函数及其调用方法简介
3.3.2 服务器例程剖析
3.4 访问nme服务的吴连接的客户端例程
3.5 循环的面向连接的daynme服务器例程
3.6 访问daynme服务的面向连接的客户端例程
3.7 本章 小结
本章 习题
第4章 服务器中的并发机制
4.1 服务器中的并发概念
4.1.1 循环服务器与并发服务器
4.1.2 基于多进程或多线程的服务器并发概念
4.1.3 并发等级
4.2 基于多进程的服务器并发机制
4.2.1 创建一个新进程
4.2.2 终止一个进程
4.2.3 获得一个进程的进程标识
4.2.4 获得一个进程的父进程的进程标识
4.2.5 僵尸进程的清除
4.3 基于多线程的服务器并发机制
4.3.1 创建一个新线程
4.3.2 设置线程的运行属性
4.3.3 终止一个线程
4.3.4 获得一个线程的线程标识
4.3.5 多线程例程剖析
4.4 从线程/进程分配技术
4.4.1 从线程/进程预分配技术
4.4.2 延迟的从线程/进程分配技术
4.4.3 两种从线程/进程分配技术的结合
4.5 基于多进程与基于多线程的并发机制的性能比较
4.5.1 多进程与多线程的任务执行效率比较
4.5.2 多进程与多线程的创建与销毁效率比较
4.6 本章 小结
本章 习题
第5章 基于多进程并发的面向连接服务器例程剖析
5.1 基于多进程并发的面向连接服务器的进程结构
5.2 基于多进程并发的面向连接服务器软件的设计流程
5.2.1 不固定进程数的并发模型设计流程
5.2.2 固定进程数的并发模型设计流程
5.3 基于多进程并发的面向连接服务器例程
5.3.1 例程一
5.3.2 例程二
5.4 本章 小结
本章 习题
第6章 基于多线程并发的面向连接服务器例程剖析
6.1 线程之间的协调与同步
6.1.1 互斥锁
6.1.2 信号量
6.1.3 条件变量
6.2 基于多线程并发的面向连接服务器软件的设计流程
6.3 基于多线程并发的面向连接服务器例程
6.4 本章 小结
本章 习题
第7章 基于单线程并发的面向连接服务器例程剖析
7.1 单线程并发服务器的线程结构
7.2 单线程并发服务器程序设计流程
7.3 基于单线程并发的面向连接服务器例程
7.4 本章 小结
本章 习题
第8章 基于线程池并发的面向连接服务器例程剖析
8.1 线程池简介
8.1.1 线程池定义
8.1.2 线程池的基本工作原理
8.1.3 线程池的应用范围
8.1.4 使用线程池的风险
8.2 一个linux下线程池的c语言实现
8.3 基于线程池并发的面向连接服务器例程
8.4 本章 小结
本章 习题
第9章 基于epoll的并发的面向连接服务器例程剖析
9.1 于epoll简介
9.2 于epoll的工作原理与调用方法
9.2.1 于epoll的基本接口函数
9.2.2 于epoll的事件模式
9.2.3 于epoll的工作原理
9.3 基于于epoll线程池的c语言例程
9.4 基于epoll的并发的面向连接服务器例程
9.5 本章 小结
本章 习题
第10章 客户进程中的并发机制
10.1 实现并发客户的意义与进程结构
10.1.1 实现并发客户的意义
10.1.2 基于多线程/多进程的并发客户的进程结构
10.1.3 基于单线程的并发客户的进程结构
10.2 基于多线程的并发客户例程
10.3 基于单线程的并发客户例程
10.4 基于多进程的并发客户例程
10.5 本章 小结
本章 习题
第11章 客户-服务器系统中的死锁问题
11.1 死锁的定义
11.2 产生死锁的原因
11.2.1 竞争资源引起进程死锁
11.2.2 进程推进顺序不当引起死锁
11.3 产生死锁的必要条件
11.4 处理死锁的基本方法
11.6 本章 小结
本章 习题
第12章 gcc编译器简介
12.1 gcc编译器所支持的源程序格式
12.2 gcc编译选项解析
12.2.1 ccc编译选项分类
12.2.2 ccc编译过程解析
12.2.3 多个程序文件的编译
12.3 gcc编译器的安装
12.4 本章 小结
本章 习题
参考文献