gpt4 book ai didi

c - C 中带有套接字的事件驱动模型

转载 作者:IT王子 更新时间:2023-10-29 00:21:52 25 4
gpt4 key购买 nike

我对 C 中的事件驱动编程非常感兴趣,尤其是套接字,因此我将花一些时间进行研究。

假设我想构建一个具有大量文件和网络 I/O 的程序,例如客户端/服务器应用程序,基本上,第一个问题是该模型背后的理念是什么。虽然在正常编程中我会生成新进程,但为什么单个进程实际上可以服务于许多其他请求。例如,有一些网络服务器可以在不创建线程或其他进程的情况下处理连接,只需一个主进程。

我知道这很复杂,但了解不同解决方案的工作原理总是很高兴。

最佳答案

您绝对必须阅读以下内容:http://www.kegel.com/c10k.html .该页面是对事件驱动和异步技术的完美概述。

然而,一个快速而肮脏的答案:事件驱动既不是非阻塞的,也不是异步的。

事件驱动的意思是,进程将监视其文件描述符(和套接字),并且仅当某些描述符上发生某些事件时才采取行动(事件是:接收到数据、错误、变得可写,...)。

BSD 套接字具有“select()”函数。调用时,操作系统将监视描述符,并在其中一个描述符上发生某个事件时立即返回进程。

但是,上面的网站有更好的描述(以及关于不同 API 的详细信息)。

关于c - C 中带有套接字的事件驱动模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11062674/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com