LinuxC编程一站式学习
文章平均质量分 84
Damage233
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
信号
参见:Linux C编程一站式学习 (一)信号的基本概念 为了理解信号,先从我们最熟悉的场景说起: 用户输入命令,在Shell下启动一个前台进程。 用户按下Ctrl-C,这个键盘输入产生一个硬件中断。 如果CPU当前正在执行这个进程的代码,则该进程的用户空间代码暂停执行,CPU从用户态切换到内核态处理硬件中断。 终端驱动程序将Ctr...转载 2018-07-16 13:44:25 · 465 阅读 · 0 评论 -
进程
参见:Linux C编程一站式学习 1.进程控制 1)fork函数: fork函数的特点概括起来就是“调用一次,返回两次”,在父进程中调用一次,在父进程和子进程中各返回一次。从上图可以看出,一开始是一个控制流程,调用fork之后发生了分叉,变成两个控制流程,这也就是“fork”(分叉)这个名字的由来了。子进程中fork的返回值是0,而父进程中fork的返回值则是子进程...转载 2018-07-18 10:37:30 · 500 阅读 · 0 评论 -
线程
参见:Linux C编程一站式学习 1.线程的概念我们知道,进程在各自独立的地址空间中运行,进程之间共享数据需要用mmap或者进程间通信机制,本节我们学习如何在一个进程的地址空间中执行多个线程。有些情况需要在一个进程中同时执行多个控制流程,这时候线程就派上了用场,比如实现一个图形界面的下载软件,一方面需要和用户交互,等待和处理用户的鼠标键盘事件,另一方面又需要同时下载多个文件,等...转载 2018-07-18 15:36:03 · 1257 阅读 · 0 评论 -
TCP/IP协议栈与数据包封装
参见:Linux C编程一站式学习 TCP/IP协议栈与数据包封装TCP/IP网络协议栈分为应用层(Application)、传输层(Transport)、网络层(Network)和链路层(Link)四层。如下图所示(该图出自[TCPIP])。图 36.1. TCP/IP协议栈 两台计算机通过TCP/IP协议通讯的过程如下所示(该图出自[TCPIP])。图 ...转载 2018-07-19 09:12:34 · 1442 阅读 · 0 评论 -
TCP/IP协议基础
参见:Linux C编程一站式学习 1. 以太网(RFC 894)帧格式 以太网的帧格式如下所示(该图出自[TCPIP]):图 36.6. 以太网帧格式 其中的源地址和目的地址是指网卡的硬件地址(也叫MAC地址),长度是48位,是在网卡出厂时固化的。用ifconfig命令看一下,“HWaddr 00:15:F2:14:9E:3F”部分就是硬件地址。协议字段有三...转载 2018-07-19 11:44:36 · 1404 阅读 · 0 评论 -
socket编程基础
参见:Linux C编程一站式学习 socket这个词可以表示很多概念: 在TCP/IP协议中,“IP地址+TCP或UDP端口号”唯一标识网络通讯中的一个进程,“IP地址+端口号”就称为socket。 在TCP协议中,建立连接的两个进程各自有一个socket来标识,那么这两个socket组成的socket pair就唯一标识一个连接。socket本身有“插座”的意思,因此...转载 2018-07-19 20:54:58 · 312 阅读 · 0 评论 -
基于TCP协议的网络程序
参见:Linux C编程一站式学习 下图是基于TCP协议的客户端/服务器程序的一般流程(该图出自[UNPv13e]):图 37.2. TCP协议通讯流程 建立连接的过程(该图出自[UNPv13e]):图 37.3. 建立连接的过程 服务器调用socket()、bind()、listen()完成初始化后,调用accept()阻塞等待,处于监听端口的状...转载 2018-07-20 10:00:13 · 711 阅读 · 0 评论
分享