c++
得意霄尽欢
人生得意须尽欢,莫使金樽空对月。
展开
-
libevent异步事件处理库
它其实是封装的epoll几个重要的函数event_base_new 对应epoll的create,还初始化所有的管理方面的如队列event_base_dispatch 对应epoll中的wait对应epoll中ctl的如下event_newevent_addevent_delevent_freeevconnlistener_new_bind 不用像epoll单独的绑定添加事件type原创 2021-08-03 17:08:05 · 323 阅读 · 0 评论 -
socket编程之Epoll
使用Epoll相较select的好处没有文件描述符的限制(MAX_FILES),select默认的1024.工作效率不会随着描述符的增加而下降(没有改变的描述符不会返回,也就是不会遍历)经过内核级优化的Epoll的事件触发模式Level Trigger 水平触发,如果数据没有一次性处理完毕,会再次发送Edge Trigger 边沿触发,不管数据有没有一次性处理完毕,都不会再次发送(效率最高,难度大)Epoll重要的APIint epoll_create();原创 2021-08-03 12:39:16 · 840 阅读 · 0 评论 -
socket基础编程
俩个重要结构体struct sockaddr_in{ sa_family_t sin_family;//协议 uint16_t sin_port;//端口 struct in_addr sin_addr;//ip地址 char sin_zero[8]}struct in_addr{ in_addr_t s_addr;//整型}struct sockaddr{ sa_family_t sin_family;//ipv4等 char .原创 2021-08-02 17:02:37 · 288 阅读 · 0 评论 -
Linux进程到后台运行操作
概述Linux上跑的程序都是以后端执行的。即关闭终端,进程仍在运行。这才是服务器需要的。实现进程后台运行的方式1.fork 方式fork一个子进程,父进程退出,子进程成为孤儿进程,被init进程接管调用setid建立新的进程会话 ,因为原来父进程标记需要手动去除切换当前工作目录到根目录将标准输入,输出,出错重定向到 /dev/null代码#include <iostream>#include <fcntl.h>#include <unistd.h&g原创 2021-08-02 12:52:02 · 226 阅读 · 0 评论 -
Linux下的信号及捕获操作
什么是信号?比如当服务器与浏览器客户端建立起了一个socket连接,当浏览器主动断掉了这个连接,下次服务器给这个浏览器发消息的时候就会收到浏览器的一个已断开socket连接的一个信号,这个信号的意思一般是关闭服务器socket。如果不对这个信号处理,就会很不安全。信号的处理方式忽略 捕获 默认处理信号有哪些? man 7 signal # 查看信号几个重要的信号SIGPIPE 管道中止信号 当写入无人读的管道时产生该信号,默认终止信号必须要处理,比如原创 2021-08-02 11:35:32 · 461 阅读 · 0 评论 -
c++接口实现demo
server.h 用来定义接口/** * Server class * * @author xiaowuqin * @date 2021-08-02 * */#ifndef _SERVER_H_#define _SERVER_H_namespace avdance {class Server{ public: Server(); ~Server(); public: .原创 2021-08-02 10:13:08 · 180 阅读 · 0 评论