为了让服务器能够处理多个用户请求,所以Linux有三种方式:多进程并发服务器、多线程并发服务器、IO复用
在学习过程中,我发现先了解整体流程,在进行梳理会记忆的更加准确和深刻,本篇文章,我首先会将流程梳理,在介绍知识点
1.多进程并发服务器
基本思路:
建立连接【socket()创建监听套接字,bind()绑定地址,listen()设置最大监听数】
在主业务while(1)循环中,accept()等待接受用户连接请求,创建fork()进程成功后
父进程关闭连接套接字,子进程关闭监听套接字
子进程处理客户请求(读写操作),父进程等待客户连接
进程:正在运行的程序及其占用的资源(CPU、内存、系统资源)叫做进程。进程这个概念是针对系统而不是针对用户的,一个程序可以执行多次,多个进程可以执行一个程序。
Linux下进程内存的分布是(自上而下):系统空间、参数区(命令行参数)、栈、堆、数据段(.bss\.data\.rodata)、文本段。
fork()函数实现多进程并发服务器:子进程先执行还是父进程先执行是不确定的,取决于系统内核的调度。
pid_t pid;
pid=fork();//调用for