
c++
得意霄尽欢
人生得意须尽欢,莫使金樽空对月。
展开
-
libevent异步事件处理库
它其实是封装的epoll 几个重要的函数 event_base_new 对应epoll的create,还初始化所有的管理方面的如队列 event_base_dispatch 对应epoll中的wait 对应epoll中ctl的如下 event_new event_add event_del event_free evconnlistener_new_bind 不用像epoll单独的绑定添加事件 type原创 2021-08-03 17:08:05 · 351 阅读 · 0 评论 -
socket编程之Epoll
使用Epoll相较select的好处 没有文件描述符的限制(MAX_FILES),select默认的1024. 工作效率不会随着描述符的增加而下降(没有改变的描述符不会返回,也就是不会遍历) 经过内核级优化的 Epoll的事件触发模式 Level Trigger 水平触发,如果数据没有一次性处理完毕,会再次发送 Edge Trigger 边沿触发,不管数据有没有一次性处理完毕,都不会再次发送(效率最高,难度大) Epoll重要的API int epoll_create();原创 2021-08-03 12:39:16 · 888 阅读 · 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 · 307 阅读 · 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 · 247 阅读 · 0 评论 -
Linux下的信号及捕获操作
什么是信号? 比如当服务器与浏览器客户端建立起了一个socket连接,当浏览器主动断掉了这个连接,下次服务器给这个浏览器发消息的时候就会收到浏览器的一个已断开socket连接的一个信号,这个信号的意思一般是关闭服务器socket。如果不对这个信号处理,就会很不安全。 信号的处理方式 忽略 捕获 默认处理 信号有哪些? man 7 signal # 查看信号 几个重要的信号 SIGPIPE 管道中止信号 当写入无人读的管道时产生该信号,默认终止信号 必须要处理,比如原创 2021-08-02 11:35:32 · 476 阅读 · 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 · 193 阅读 · 0 评论