![](https://img-blog.csdnimg.cn/20190918140145169.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
网络编程
文章平均质量分 83
网络编程
海岸星的清风
这个作者很懒,什么都没留下…
展开
-
大话「事件处理模式」
文章目录服务器编程基本框架两种高效的事件处理模式Reactor模式Proactor模式模拟 Proactor 模式服务器编程基本框架虽然服务器程序种类繁多,但其基本框架都一样,不同之处在于逻辑处理。模块功能I/O 处理单元处理客户连接,读写网络数据逻辑单元业务进程或线程网络存储单元数据库、文件或缓存请求队列各单元之间的通信方式I/O 处理单元是服务器管理客户连接的模块。它通常要完成以下工作:等待并接受新的客户连接,接收客户数据,将服务器响应数据返回原创 2022-03-17 18:45:29 · 256 阅读 · 0 评论 -
大话「I/O多路复用」
文章目录selectpollepollI/O多路复用使得程序能同时监听多个文件描述符,能够提高程序的性能,Linux 下实现 I/O 多路复用的系统调用主要有 select、poll 和 epoll。select函数调用过程:首先要构造一个关于文件描述符的列表,将要监听的文件描述符添加到该列表中。调用一个系统函数,监听该列表中的文件描述符,直到这些描述符中的一个或者多个进行I/O操作时,该函数才返回。这个函数是阻塞函数对文件描述符的检测的操作是由内核完成的在返回时,它会告诉进程有多原创 2022-03-17 11:11:05 · 526 阅读 · 0 评论 -
大话「socket 编程」
文章目录Socket 介绍字节序简介字节序转换函数socket 地址通用 socket 地址专用 socket 地址IP地址转换TCP 通信流程socket 函数TCP 通信实现Socket 介绍所谓 socket(套接字),就是对网络中不同主机上的应用进程之间进行双向通信的端点的抽象。一个套接字就是网络上进程通信的一端,提供了应用层进程利用网络协议交换数据的机制。从所处的地位来讲,套接字上联应用进程,下联网络协议栈,是应用程序通过网络协议进行通信的接口,是应用程序与网络协议根进行交互的接口。soc原创 2022-03-13 20:08:45 · 2288 阅读 · 0 评论 -
大话「线程同步」
文章目录初始线程同步互斥量互斥量相关操作函数死锁读写锁读写锁相关操作函数生产者和消费者模型信号量初始线程同步线程的主要优势在于,能够通过全局变量来共享信息。不过,这种便捷的共享是有代价的:必须确保多个线程不会同时修改同一变量,或者某一线程不会读取正在由其他线程修改的变量。临界区是指访问某一共享资源的代码片段,并且这段代码的执行应为原子操作,也就是同时访问同一共享资源的其他线程不应终端该片段的执行。线程同步即当有一个线程在对内存进行操作时,其他线程都不可以对这个内存地址进行操作,直到该线程完成操作,其原创 2022-03-12 20:44:26 · 410 阅读 · 0 评论 -
大话「线程」
文章目录认识线程何为线程线程和进程区别线程之间共享和非共享资源共享资源(内核)非共享资源线程操作相关函数pthread_createpthread_exitpthread_selfpthread_equalpthread_joinpthread_detachpthread_cancel线程属性相关函数认识线程何为线程与进程(process)类似,线程(thread)是允许应用程序并发执行多个任务的一种机制,一个进程可以包含多个线程。同一个程序中的所有线程均会独立执行相同程序,且共享同一份全局内存区域原创 2022-03-12 19:53:15 · 551 阅读 · 0 评论 -
大话「守护进程」
文章目录终端进程组会话进程组、会话操作函数守护进程守护进程的创建终端在 UNIX 系统中,用户通过终端登录系统后得到一个 shell 进程,这个终端成为 shell 进程的控制终端(Controlling Terminal),进程中,控制终端是保存在 PCB 中的信息,而 fork() 会复制 PCB 中的信息,因此由 shell 进程启动的其它进程的控制终端也是这个终端。默认情况下(没有重定向),每个进程的标准输入、标准输出和标准错误输出都指向控制终端,进程从标准输入读也就是读用户的键盘输入,进程往原创 2022-03-12 16:44:27 · 1668 阅读 · 0 评论 -
一文掌握「共享内存」
文章目录共享内存共享内存的使用共享内存操作函数shmgetshmatshmdtshmctlftok共享内存操作命令ipcs 用法ipcrm 用法TIPS共享内存共享内存允许两个或者多个进程共享物理内存的同一块区域(通常被称为段)。由于一个共享内存段会称为一个进程用户空间的一部分,因此这种 IPC 机制无需内核介入。所有需要做的就是让一个进程将数据复制进共享内存中,并且这部分数据会对其他所有共享同一个段的进程可用。与管道等要求发送进程将数据从用户空间的缓冲区复制进内核内存和接收进程将数据从内核内存复制进原创 2022-03-12 15:45:41 · 383 阅读 · 0 评论 -
一文搞懂「信号」和「信号集」
文章目录信号是啥信号相关函数killraiseabortalarmsetitimersignal信号集信号集相关函数sigemptysetsigfillsetsigaddsetsigdelsetsigismembersigprocmasksigpendingsigactionSIGCHLD 信号信号是啥信号是 Linux 进程间通信的最古老的方式之一,是事件发生时对进程的通知机制,有时也称之为软件中断,它是在软件层次上对中断机制的一种模拟,是一种异步通信的方式。信号可以导致一个正在运行的进程被另一个正在原创 2022-03-12 14:49:29 · 3397 阅读 · 0 评论 -
一文学会「内存映射」
文章目录内存映射介绍相关函数函数使用说明使用内存映射实现进程间通信案例TIPS内存映射介绍内存映射(Memory-mapped I/O)是将磁盘文件的数据映射到内存,用户通过修改内存就能修改磁盘文件。相关函数#include <sys/mman.h>void *mmap(void *addr, size_t length, int prot, int flags,int fd, off_t offset);int munmap(void *addr, size_t length原创 2022-03-12 10:13:29 · 2573 阅读 · 0 评论 -
一文搞懂「匿名管道」与「有名管道」
文章目录进程间通信方式管道的特点匿名管道的使用管道的读写特点有名管道啥是有名管道怎么用有名管道用有名管道实现聊天功能进程间通信方式管道的特点管道其实是一个在内核内存中维护的缓冲器,这个缓冲器的存储能力是有限的,不同的操作系统大小不一定相同。管道拥有文件的特质:读操作、写操作,匿名管道没有文件实体,有名管道有文件实体,但不存储数据。可以按照操作文件的方式对管道进行操作。一个管道是一个字节流,使用管道时不存在消息或者消息边界的概念,从管道读取数据的进程可以读取任意大小的数据块,而不管写入进程写入管道原创 2022-03-11 20:49:29 · 1381 阅读 · 0 评论 -
一文搞懂「进程」常用函数
文章目录进程的状态进程相关命令ps 查看进程top 实时显示进程动态kill 杀死进程进程号和相关函数进程创建fork 函数exec 函数族execlexeclp execv execve进程控制exit 进程退出孤儿进程僵尸进程进程回收waitwaitpid进程的状态运⾏状态(Runing):该时刻进程占⽤ CPU;就绪状态(Ready):可运⾏,由于其他进程处于运⾏状态⽽暂时停⽌运⾏;阻塞状态(Blocked):该进程正在等待某⼀事件发⽣(如等待输⼊/输出操作的完成)⽽暂时停⽌运⾏,这时,即使原创 2022-03-07 20:34:02 · 928 阅读 · 0 评论 -
一文掌握「文件 I/O」 常用函数
文章目录文件操作函数openreadwritelseekstat, lstat函数文件属性操作函数accesschmodchowntruncate目录操作函数renamemkdirchdir 和 getcwd目录遍历函数opendirreaddirclosedir文件描述符相关函数dupdup2fcntl文件操作函数open //头文件 #include <sys/types.h> #include <sys/stat.h> #include &l原创 2022-03-06 20:39:15 · 1153 阅读 · 0 评论