摘要: 一、阻塞与非阻塞I/O 阻塞与非阻塞I/O 阻塞和非阻塞主要是指调用某个系统函数时,这个函数是否会导致我们的进程进入 sleep()【卡在这休眠】状态而言的; a)阻塞I/O 我调用一个函数,这个函数就卡在在这里,整个程序流程不往下走了【休眠sleep】,该函数卡在这里等待一个事情发生, 只有这个事 阅读全文
posted @ 2022-03-05 22:53 豪崽_ZH 阅读(63) 评论(0) 推荐(0)
摘要: 一、listen()队列剖析 listen():监听端口,用在 TCP连接 中的 服务器端 角色; listen()函数调用格式: int listen(int sockfd, int backlog); 要理解好backlog这个参数, “监听套接字 队列”; 监听套接字的队列 对于一个调用 li 阅读全文
posted @ 2022-03-05 22:06 豪崽_ZH 阅读(192) 评论(0) 推荐(0)
摘要: 一、三次握手 客户端理解成一个人,服务器端理解成一个人,两个人要用电话通话: 张三:你好,李四,我是张三 [syn] ,ip,端口 李四:你好,张三,我是李四 [syn/ack] 张三:你好,李四 [ack] a)\客户端给服务器发送 了一个SYN标志位置位的无包体TCP数据包,SYN被置位,就表示 阅读全文
posted @ 2022-03-05 20:55 豪崽_ZH 阅读(95) 评论(0) 推荐(0)
摘要: 一、服务器 #include <stdio.h> #include <ctype.h> #include <unistd.h> #include <sys/types.h> #include <arpa/inet.h> #include <sys/socket.h> #include <stdlib 阅读全文
posted @ 2022-03-05 17:03 豪崽_ZH 阅读(157) 评论(0) 推荐(0)
摘要: 一、如何将一个终端进程更改守护进程 问:为什么要有这个功能呢? 答:解放终端,实现项目中。特别是在后期,程序还需要设置开机自启动的功能。 //创建守护进程 if(p_config->GetIntDefault("Daemon",0) == 1) //读配置文件,拿到配置文件中是否按守护进程方式启动的 阅读全文
posted @ 2022-03-05 15:57 豪崽_ZH 阅读(158) 评论(0) 推荐(0)
摘要: 一、父子进程循环 // (i)ngx_master_process_cycle() //创建子进程等一系列动作 (i)| ngx_setproctitle() //设置进程标题 (i)| ngx_start_worker_processes() //创建worker子进程 (i)| | for (i 阅读全文
posted @ 2022-03-04 20:35 豪崽_ZH 阅读(155) 评论(0) 推荐(0)
摘要: 一、日志打印格式整理 ngx_printf.cxx以及ngx_log.cxx。 ngx_printf.cxx:放和打印格式相关的函数; ngx_log.cxx:放和日志相关的函数; **ngx_log_stderr():**往屏幕上打印一条错误信息;功能类似于printf,可变参。 printf(" 阅读全文
posted @ 2022-03-04 16:02 豪崽_ZH 阅读(555) 评论(0) 推荐(0)
摘要: 一、配置文件读取 使用配置文件,使服务器程序有了极大的灵活性,作为服务器程序开发者,必须要首先搞定的问题。 配置文件格式(内容) #[开头的表示组信息,也等价于注释行 [Socket] ListenPort = 5678 DBInfo = 127.0.0.1;1234;myr;123456;mxdb 阅读全文
posted @ 2022-03-04 10:45 豪崽_ZH 阅读(129) 评论(0) 推荐(0)
摘要: 一、工程文件目录规划 主目录名nginx a)_include目录:专门存放各种头文件;如果分散:#include "sfaf/sdafas/safd.h" b)app目录:放主应用程序.c(main()函数所在的文件)以及一些比较核心的文件; ——b.1)link_obj:临时目录,会存放临时的. 阅读全文
posted @ 2022-03-03 20:49 豪崽_ZH 阅读(195) 评论(0) 推荐(0)
摘要: #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <signal.h> #include <errno.h> //信号处理函数 void sig_usr(int signo) { if(signo == SIGUS 阅读全文
posted @ 2022-03-02 10:59 豪崽_ZH 阅读(111) 评论(0) 推荐(0)