前言

教学和阅读建议

第1章 TCP/IP网络编程基础

1.1 网络和网络互联

1.1.1 ISO/OSI网络模型和TCP/IP协议栈

1.1.2 IP地址和端口

1.2 客户端/服务器编程模型

1.2.1 循环式服务器

1.2.2 并发式服务器

1.3 本章小结

习题

第2章 Linux下的C编程环境

2.1 进程

2.1.1 进程标识

2.1.2 创建进程

2.1.3 终止进程

2.1.4 僵死进程

2.1.5 子进程退出的异步善后处理

2.2 线程

2.2.1 线程标识

2.2.2 创建线程

2.2.3 终止线程

2.2.4 线程同步

2.3 信号

2.3.1 信号的概念

2.3.2 常用信号及其含义

2.3.3 信号集和信号掩码

2.3.4 信号处理

2.3.5 可重入函数

2.4 时间

2.4.1 时间表示

2.4.2 获得时间

2.4.3 休眠时间

2.4.4 间隔定时器

2.5 文件

2.6 本章小结

习题

第3章 网络编程中常用的典型知识

3.1 结构体大小的计算

3.2 数据存储与字节序

3.3 常用数据结构

3.3.1 Linux链表

3.3.2 Linux散列链表

3.4 函数指针

3.5 校验和

3.6 用户态下多定时器的实现

3.7 本章小结

习题

第4章 基础套接字

4.1 套接字基本概念

4.1.1 创建套接字

4.1.2 域和地址族

4.1.3 套接字地址

4.1.4 流式套接字和数据报套接字

4.1.5 使用套接字

4.1.6 套接字编程常用基本函数和数据类型

4.1.7 客户端/服务器通信方式

4.2 流式套接字客户端/服务器编程

4.3 并发流式套接字服务器编程

4.3.1 服务器主进程

4.3.2 服务器子进程

4.3.3 服务器子进程终止

4.4 数据报套接字客户端/服务器编程

4.5 本章小结

习题

第5章 高级套接字

5.1 套接字选项

5.1.1 getsockopt和setsockopt

5.1.2 套接字通用选项示例

5.2 I/O多路复用

5.2.1 I/O多路复用模型

5.2.2 select函数

5.2.3 文件描述符集合的使用

5.2.4 文件描述符的可读写状态

5.2.5 最大文件描述符个数

5.2.6 select函数的应用

5.3 非阻塞I/O

5.3.1 非阻塞I/O模型

5.3.2 fcntl函数设置非阻塞模式

5.3.3 非阻塞模式下的read和write

5.3.4 非阻塞模式下的connect

5.3.5 非阻塞模式下的accept

5.4 信号驱动I/O

5.4.1 信号驱动I/O模型

5.4.2 设置套接字工作于信号驱动I/O模式

5.4.3 信号驱动I/O示例

5.5 事件I/O

5.5.1 创建epoll上下文环境epoll_create

5.5.2 epoll设置epoll_ctl

5.5.3 等待事件发生epoll_wait

5.5.4 epoll程序示例

5.5.5 边沿触发ET和水平触发LT

5.6 原始套接字

5.6.1 创建原始套接字

5.6.2 原始套接字数据发送

5.6.3 原始套接字数据接收

5.7 本章小结

习题

第6章 网络协议

6.1 IP协议

6.1.1 IP协议格式

6.1.2 IP协议头的C语言定义

6.1.3 IP报文分段

6.1.4 IP报文分段重组

6.2 ICMP协议

6.2.1 ICMP消息类型

6.2.2 ICMP消息通用格式

6.2.3 ICMP查询请求和应答消息格式

6.2.4 ICMP消息格式的C语言定义

6.3 FTP协议

6.3.1 FTP连接管理

6.3.2 FTP通信过程

6.3.3 FTP命令处理

6.3.4 数据(文件)传输过程

6.3.5 数据传输端口

6.4 一个简单应用层协议示例

6.5 分层协议示例—IP报文分段和重组模拟

6.5.1 程序功能描述

6.5.2 分层协议栈

6.5.3 分层协议定义

6.6 本章小结

习题

第7章 ICMP协议程序设计

7.1 Ping程序功能模块

7.2 回应请求和应答实例分析

7.3 Ping程序实现

7.4 Ping程序的编译和测试

7.5 本章小结

习题

第8章 FTP协议程序设计

8.1 FTP交互命令实例分析

8.2 FTP客户端程序功能模块

8.3 FTP客户端程序实现

8.4 FTP客户端程序的编译和测试

8.5 本章小结

习题

第9章 IP报文分段和重组模拟程序设计

9.1 主机工作流程

9.2 转发服务器工作流程

9.3 消息分段

9.4 主机程序功能模块

9.5 转发服务器程序功能模块

9.6 消息分段的错序和丢失模拟

9.7 关键数据结构

9.8 主机程序实现

9.9 转发服务器程序实现

9.10 IP报文分段和重组模拟程序的编译和运行

9.11 本章小结

习题

附录A C/C++源文件编辑

附录B C/C++源文件编译

附录C C/C++源文件调试

参考文献

网络编程与分层协议设计:基于linux平台实现,网络编程与分层协议设计基于Linux平台实现[按需印刷]...相关推荐

  1. 网络编程与分层协议设计:基于linux平台实现,网络编程与分层协议设计:基于Linux平台实现...

    图书简介 本书以Linux网络套接字编程和网络分层协议的设计与程序实现为主题,详细介绍如何在Linux平台下进行套接字程序设计,并给出了一个基于分层协议的应用实例,用于模拟Linux网络协议栈中IP层 ...

  2. 基于Linux的嵌入式网络视频监控系统研究与设计

    http://www.nesr.lingd.net/article-4364839-1.html 摘 要:网络视频监控已经在嵌入式领域得到了发展,但目前视频监控硬件设施比较昂贵,不能普遍使用.本文提出 ...

  3. linux点对点聊天室的实现与设计心得,基于Socket接口的Linux与Windows网络聊天室设计与实现...

    陈洁 孟晓景 摘要:为了实现Linux与Windows跨平台通信,及时共享信息,构建了一个适用于跨平台的网络聊天室通信程序.先搭建跨平台通信环境,然后使用Socket套接字网络编程接口实现通信.整个系 ...

  4. linux 远程挂载摄像头_基于Linux的嵌入式网络摄像机设计

    本嵌入式网络摄像机采用高性能ARM9芯片微处理器,内置嵌入式Web服务器. 通过嵌入式多任务操作系统采集摄像机视频数据:采集的视频信号数字化后经MJPEG算法压缩,再通过内部总线送到内置的Web服务器 ...

  5. arm linux嵌入式网络控制系统,基于ARMLinux的嵌入式网络控制系统的研究与设计

    摘要: 随着计算机技术.控制技术和网络技术的蓬勃发展,嵌入式系统与网络控制系统的应用越来越广阔.当前控制系统正经历一场前所未有的变革,远程监控和智能控制成为控制系统发展的重要方向.通过嵌入式网络控制系 ...

  6. 基于Linux的socket网络编程项目——游侠手机商城

    基于Linux的socket网络编程项目--游侠手机商城 一.项目说明 二.项目使用的技术 三.客户端搭建 四.服务器端搭建 一.项目说明 本项目是一个仿真手机商城类系统,基本功能: 登录界面功能:用 ...

  7. 《Linux多线程服务端编程:使用muduo C++网络库》书摘6.6.2节

    6.6.2 常见的并发网络服务程序设计方案 W. Richard Stevens 的<UNIX 网络编程(第2 版)>第27 章"Client-ServerDesign Alte ...

  8. 系统架构设计笔记(15)—— 网络架构与协议

    网络架构是指计算机网络的各层及其协议的集合.计算机之间要交换数据,就必须遵守一些事先约定好的规则,用于规定信息的格式及如何发送和接收信息的一套规则就称为网络协议.为了减少网络协议设计的复杂性,网络设计 ...

  9. 《Linux多线程服务端编程:使用muduoC++网络库》学习笔记

    文章目录 第1章 线程安全的对象生命期管理 1.1 当析构函数遇到多线程 1.1.1 线程安全的定义 1.1.3 线程安全实例 1.2 对象的创建很简单 1.3 销毁很难 1.4 线程安全的Obser ...

  10. 毕业论文开题报告 - 基于Linux的无线网络渗透测试研究

    目录 开题报告填写要求 1.毕业论文综述(题目背景.研究意义及国内外相关研究情况) 1.1 题目背景 1.2研究意义 1.3现阶段相关研究情况 2.本课题研究的主要内容和拟采用的研究方案.研究方法或措 ...

最新文章

  1. Oracle开发:normal ,sysdba,sysoper区别
  2. centos 7 包管理工具 snap 安装部署
  3. 第一章:前端视角——js运行环境之node.js基础入门
  4. 创建VLAN的两种方法
  5. c++ long 转 short_C精品编程之——C语言的数据类型、运算符、表达式,精品课程...
  6. 【Python】pysnooper模块对代码进行调试
  7. Android 源码分析 Activity的启动模式
  8. mysql函数commit_phpmysqli_commit()函数和mysqli_autocommit()函数比较
  9. 机器人学从理论、设计到建模仿真零基础入门教程(硬核、偏零基础)
  10. 西门子S7-200PLC基本入门编程
  11. MyBatis官方文档-简介
  12. RS485/RS422接线图
  13. 矩阵卷积运算的三种方式及C语言实现
  14. 八、线性规划 顶点、极值点和基本可行解决方案
  15. 小程序结合腾讯地图(QQMapWX)SDK做位置周边搜索展示
  16. Asta:是什么终结了我的鸽王生涯?Go 1.13 发布!
  17. 神经网络模型如何应用到实际 - 神经网络模型数学建模案例
  18. SpringBoot项目目录结构(工程结构)
  19. Fiddler抓包软件[一]下载与安装
  20. 让我摘下星星送给你_有一首歌,歌词是,摘下星星送给你,摘下月亮送给你……什么歌...

热门文章

  1. php 从1累加到50,javascript - 一个数每隔一秒执行加1并打印出来,一直加到50停止,用js如何实现?...
  2. 【路径规划】基于matlab蚁群算法求解公交车路径规划问题【含Matlab源码 930期】
  3. 【树叶识别】基于matlab BP神经网络树叶类别【含Matlab源码 799期】
  4. 【混凝土强度预测】基于matlab BP神经网络混凝土强度预测【含Matlab源码 695期】
  5. 【数字信号调制】基于matlab GUI FSK调制+解调【含Matlab源码 645期】
  6. xftp传输文件报错
  7. hibernate java内存一次能取多少条_Hibernate性能测试(load10000条记录的简单测试 仅供参考)(转)...
  8. eclipse neon php插件,Eclipse Neon安装Tomcat插件
  9. syslog可能引起得问题_电动车控制器经常出现的问题分析
  10. delphi7 增加管理员权限_EHR系统的权限设计