【Linux网络编程】IO模型与服务器模型

本文探讨了Linux网络编程中的IO模型,包括阻塞IO、非阻塞IO和多路复用IO。非阻塞IO使用轮询方式处理数据,多路复用IO则允许在多个描述符间灵活切换。在服务器模型上,介绍了传统的循环查询方式的不足,并提出了并发服务器的概念,通过父子进程或线程实现高效服务,其中线程方式通过值传递acceptfd来处理客户端通信。
摘要由CSDN通过智能技术生成

IO模型

阻塞IO

一般系统默认的IO为阻塞IO,等待IO时进程或线程睡眠。

非阻塞IO

就在执行到IO操作时,没有从缓冲区读到数据,就会从IO操作下面继续执行
注意:对于这种操作一般采用轮询(循环)的方式

fcntl 处理描述符相关联的操作方式

int fcntl(int fd, int cmd, ... /* arg */ );
          功能:  文件描述符的控制操作函数,具体操作有命令来决定
          参数:
                fd    要操作哪一个已经存在的描述符
                cmd   文件描述符的控制操作命令
                       F_GETFL    获取文件描述符的状态标志,可以不用第三个参数
                       F_SETFL    设置文件描述符的状态标志,必须设置第三个参数
                arg    命令对应的具体操作是什么,具体找到手册,查看命令对应的选项
          返回值:
                     F_DUPFD  The new descriptor.

                     F_GETFD  Value of file descriptor flags.

                     F_GETFL  Value 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值