3.1 Socket网络编程基础 3.1.1套接字概述 套接字就是网络编程的ID。网络通信,归根到底还是进程间的通信(不同计算机上的进程间的通信)。在网络中,每一个节点(计算机或路…
Read More分类: Linux高级编程
《Linux – Linux高级编程 – 第三部分 网络编程》第2章 TCP/IP讲解
2.1 TCP/IP 数据包格式解析 TCP/IP 数据包格式解析如下所示: 图1 图中括号中的数字代表的是当前域所占的空间大小,单位是bit位。 橙色的是数据链路层的头部,一共1…
Read More《Linux – Linux高级编程 – 第三部分 网络编程》第1章 网络基础知识
1.1 OSI模型和TCP/IP 模型 网络体系结构指的是网络的分层结构以及每层使用的协议的集合。其中最著名的就是OSI协议参考模型,他是基于国际标准化组织(OSI)的建议发展起来…
Read More《Linux – Linux高级编程 – 第二部分 进程与线程》第4章 守护进程详解
4.1守护进程概述 4.1.1守护进程的概念 Linux Daemon(守护进程)是运行在后台的一种特殊进程。它独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事件。它不…
Read More《Linux – Linux高级编程 – 第二部分 进程与线程》第3章 进程间通信(IPC通信)
3.3 IPC 机制 在前面,我们学习了传统的进程间通信方式——无名管道(pipe)、有名管道(fifo)和信号(signal)。接下来看看更高级别的进程间通信(Inter-Pro…
Read More《Linux – Linux高级编程 – 第二部分 进程与线程》第3章 进程间通信(信号通信)
3.2信号通信 信号是在软件层次上对中断机制的一种模拟。在原理上,一个进程收到一个信号与处理器收到一个中断请求可以说是一样的。信号是异步的:一个进程不必通过任何操作在等待信号的到达…
Read More《Linux – Linux高级编程 – 第二部分 进程与线程》第3章 进程间通信(管道)
3.1管道通信 管道是Linux 中进程间通信的一种方式,它把一个程序的输出直接连接到另一个程序的输入,Linux 的管道主要包括两种:无名管道和有名管道。 3.1.1无名管道 无…
Read More《Linux – Linux高级编程 – 第二部分 进程与线程》第2章 线程(四)
4 多线程经典问题(生产者-消费者) “生产者——消费者”问题是Linux多线程编程中的经典问题,主要是利用信号量处理线程间的同步和互斥问题。 “生产者——消费者”问题描述如下: …
Read More《Linux – Linux高级编程 – 第二部分 进程与线程》第2章 线程(三)
3 线程高级属性 3.1 线程一次性初始化 有些事需要且只能执行一次(比如互斥量初始化)。通常当初始化应用程序时,可以比较容易地将其放在main函数中。 但当你写一个库函数时,就不…
Read More《Linux – Linux高级编程 – 第二部分 进程与线程》第2章 线程(二)
2 线程同步与互斥 先来了解同步和互斥的基本概念: 临界资源:某些资源来说,其在同一时间只能被一段机器指令序列所占用。这些一次只能被一段指令序列所占用的资源就是所谓的临界资源。 临…
Read More