之前写了篇文章 C语言网络编程-tcp服务器实现 里面有讲到了select模型以及epoll模型的区别,但是没有讲到各自的优缺点
所以水一篇文章说明下:
select模型
优点
1:实现简单
2:兼容性好,可以跨平台使用,windows,linux,macos都支持select
缺点
1:处理连接需要一直遍历,消耗资源
2:连接数量受到了限制
epoll模型
优点:
1:连接数理论没有上线
2:只会返回有变动的socket,处理效果好
3:有阻塞非阻塞2种实现方案,并发效果好
缺点:
1:开发比较困难