libevent库使用
libevent库 开源。精简。跨平台(Windows、Linux、maxos、unix)。专注于网络通信。 源码包安装: 参考 README、readme ./configure 检查安装环境 生成 makefile make 生成 .o 和 可执行文件 sudo make instal
linux网络编程-udp和本地套接字
UDP和本地套接字 TCP通信和UDP通信各自的优缺点: TCP: 面向连接的,可靠数据包传输。对于不稳定的网络层,采取完全弥补的通信方式。 丢包重传。 优点: 稳定。 数据流量稳定、速度稳定、顺序 缺点: 传输速度慢。相率低。开销大。 使用场景:数据的完整型要求较高,不追求效率。 大数据传输、文件
linux网络编程-tcp通信
socket编程 网络套接字 网络套接字: socket 一个文件描述符指向一个套接字(该套接字内部由内核借助两个缓冲区实现。) 在通信过程中, 套接字一定是成对出现的。 前置知识 网络字节序: 小端法:(pc本地存储) 高位存高地址。地位存低地址。 int a = 0x12345678 大端法:(
linux网络编程-网络协议
协议: 一组规则。 分层模型结构: OSI七层模型: 物、数、网、传、会、表、应 TCP/IP 4层模型:网(链路层/网络接口层)、网、传、应 应用层:http、ftp、nfs、ssh、telnet。。。 传输层:TCP、UDP 网络层:IP、ICMP、IGMP 链路层:以太网帧协议、ARP ARP
linux系统编程-线程同步
线程同步: 协同步调,对公共区域数据按序访问。防止数据混乱,产生与时间有关的错误。 锁的使用: 建议锁!对公共数据进行保护。所有线程【应该】在访问公共数据前先拿锁再访问。但,锁本身不具备强制性。 数据混乱原因: 1. 资源共享(独享资源则不会) 调度随机(意味着数据访问会出现竞争) 线程间缺乏必要
linux系统编程-进程组、线程
守护进程: daemon进程。通常运行与操作系统后台,脱离控制终端。一般不与用户直接交互。周期性的等待某个事件发生或周期性执行某一动作。 不受用户登录注销影响。通常采用以d结尾的命名方式。 创建会话 创建一个会话需要注意以下6点注意事项: 调用进程不能是进程组组长,该进程变成新会话首进程(sessi
linux系统编程-信号
信号共性: 简单、不能携带大量信息、满足条件才发送。 信号的特质: 信号是软件层面上的“中断”。一旦信号产生,无论程序执行到什么位置,必须立即停止运行,处理信号,处理结束,再继续执行后续指令。 所有信号的产生及处理全部都是由【内核】完成的。 信号相关的概念: 产生信号: 1. 按键产生 2.
linux系统编程-进程间通信
进程间通信 进程间通信的常用方式,特征: 管道:简单 信号:开销小 mmap映射:非血缘关系进程间 socket(本地套接字):稳定 管道: 实现原理: 内核借助环形队列机制,使用内核缓冲区实现。 特质; 伪文件 管道中的数据只能一次读取。 数据在管道中,只能单向流动。 局限性: 自己
Docker镜像备份
cat /etc/docker/daemon.json { "registry-mirrors": [ "https://hub.uuuadc.top", "https://docker.anyhub.us.kg", "https://dockerhub.jobcher.com", "https:/
linux系统编程-进程
进程 进程: 程序:死的。只占用磁盘空间。 ——剧本。 进程;活的。运行起来的程序。占用内存、cpu等系统资源。 ——戏。 PCB进程控制块: 进程id 文件描述符表 进程状态: 初始态、就绪态、运行态、挂起态、终止态。 进程工作目录位置 *umask掩码 信号相关信息资源。 用户id和组id CP