
C++
文章平均质量分 74
dream1909
热爱IT
展开
-
基于libevent的socket服务端开发【Linux】
Libevent是一个用C语言编写的、轻量级的开源高性能事件通知库,主要有以下几个特点:事件驱动,高性能;轻量级,专注于网络,不像ACE那么臃肿庞大;源代码相当精炼、易读;跨平台,支持Windows、Linux、*BSD和MacOs;支持多种I/O多路复用技术,如epoll,poll,dev/poll,select和kqueue等;支持I/O,定时器和信号等事件;注册事件优先级。原创 2024-01-23 20:42:37 · 1266 阅读 · 0 评论 -
基于epoll的socket服务端通信【Linux】
epoll是Linux内核中的一种可扩展I/O事件处理机制,最早在Linux2.5.44内核中引入,可以用于代替POSIX select和pll系统调用,并且在具有大量应用程序请求时能够获得较好的性能(此时被监视的文件描述符数量非常大,与旧的select和poll系统调用完成所需O(n)不同,epoll能够在O(1)时间内完成操作,所以性能相当好),epoll与FreeBSD的kqueue类似,都面向用户空间提供了自己的文件描述符来操作。原创 2024-01-20 15:04:06 · 675 阅读 · 0 评论 -
基于select系统调用的Linux Socket通信【服务端】
选择(select)服务器是一种比较常见的服务器模型。使用select可以当执行操作的套接字满足可读或者可写条件时,给应用程序发送通知。收到这个通知后,应用程序再去调用相应的收发函数进行数据的接收或发送。 当用户进程调用了select,那么整个进程会被阻塞。与此同时,内核会“监视”所有select负责的socket,当人格一个socket中的数据准备好时,select就会返回。这时用户进程再调用read操作,将数据从内核拷贝到用户进程。基于select系统调用的服务端开发代码。原创 2024-01-14 01:34:46 · 592 阅读 · 0 评论