使用poll实现并发服务器

本文介绍了如何利用poll函数来构建并发服务器。通过初始化服务器、定义文件描述符数组、设置超时时间,然后在循环中检测感兴趣的事件,当事件发生时,处理客户端连接和通信,从而实现多客户端并发连接。
摘要由CSDN通过智能技术生成

今天给大家来分享下IO多路复用中的poll函数实现的并发服务器

我们知道,实现并发服务器的方法有多种,有多进程、多线程、IO多路复用,IO多路复用中有select并发服务器,poll并发服务器,epoll并发服务器等,今天来尝试下使用poll实现并发。

poll函数原型

      #include <poll.h>

      int poll(struct pollfd *fds, nfds_t nfds, int timeout);

参数:

fds:关心的文件描述符数组(结构体数组)

          struct pollfd {
               int   fd;         /* file descriptor */
               short events;     /* requested events */
               short revents;    /* returned events */
           };

nfds:数组中的文件描述符个数

timeout:设置超时时间

可以分为几个步骤

初始化服务器(创建套接字、绑定、监听)

定义一个结构体数组

将感兴趣的文件描述符加入到结构体数组中,并设置好自己感兴趣的事件

while(1)死循环里面用for循环检测,如果有感兴趣的事件发生,再判断是否是sockfd套接字,如果是的话接受客户端的连接,得到连接套接字connfd用于通信,将其加入到结构体数组中,下次循环进行检测,如果监测到感兴趣的事件发生,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值