当前位置:首页 >休闲 >五分钟帮您理解Linux网络核心知识点——Socket和Epoll 进程可以通过 accept() 方法

五分钟帮您理解Linux网络核心知识点——Socket和Epoll 进程可以通过 accept() 方法

2024-06-28 15:38:27 [百科] 来源:避面尹邢网

五分钟帮您理解Linux网络核心知识点——Socket和Epoll

作者:测试开发Kevin 开发 前端 当有客户端连接服务端时,分钟服务端 Socket 文件中会写入这个客户端 Socket 的帮理文件描述符。进程可以通过 accept() 方法,网络从服务端 Socket 文件中读出客户端的核心t和 Socket 文件描述符,从而拿到客户端的知识 Socket 文件。

关于linux网络相关的分钟基础知识点,最热的帮理两个就是socket和epoll,接下来我就用最简单的网络方式把他俩说清楚便于大家理解!

Socket

Socket 是核心t和一种进程间通信的方法,它允许位于同一主机(计算机)或使用网络连接起来的知识不同主机上的应用程序之间交换数据。

五分钟帮您理解Linux网络核心知识点——Socket和Epoll 进程可以通过 accept() 方法

Socket起源于Unix,分钟而Unix/Linux基本哲学之一就是帮理“一切皆文件”,都可以用“打开open> 读写write/read > 关闭close”模式来操作。网络Socket就是核心t和该模式的一个实现,socket即是知识一种特殊的文件,一些socket函数就是对其进行的操作(读/写IO、打开、关闭)

五分钟帮您理解Linux网络核心知识点——Socket和Epoll 进程可以通过 accept() 方法

Socket实现细节

当有客户端连接服务端时,服务端 Socket 文件中会写入这个客户端 Socket 的文件描述符。进程可以通过 accept() 方法,从服务端 Socket 文件中读出客户端的 Socket 文件描述符,从而拿到客户端的 Socket 文件。

五分钟帮您理解Linux网络核心知识点——Socket和Epoll 进程可以通过 accept() 方法

程序猿实现一个网络服务器的时候,会先手动去创建一个服务端 Socket 文件。服务端的 Socket 文件依然会存在操作系统内核之中,并且会绑定到某个 IP 地址和端口上。以后凡是发送到这台机器、目标 IP 地址和端口号的连接请求,在形成了客户端 Socket 文件之后,文件的文件描述符都会被写入到服务端的 Socket 文件中。

应用只要调用 accept 方法,就可以拿到这些客户端的 Socket 文件描述符,这样服务端的应用就可以方便地知道有哪些客户端连接了进来。而每个客户端对这个应用而言,都是一个文件描述符。如果需要读取某个客户端的数据,就读取这个客户端对应的 Socket 文件。如果要向某个特定的客户端发送数据,就写入这个客户端的 Socket 文件。



epoll

与 socket 的交互,最核心的场景就是网络 IO 的处理, epoll 会协助我们高效完成。我们新建立一个网络 socket 的时候,交给 epoll 就可以了,当网络 IO 有数据到来时它会通知我们,当我们要往网络 IO 写数据时,epoll 也会自动帮我们发送,本质上epoll实现了IO 多路复用。

Epoll数据结构如下:

· rbr:被 epoll 所管理的所有 socket 都存储在红黑树中。

· rdllist:存储着所有就绪的 socket(所谓"就绪",意思指有网络数据到来,或者有数据要发送出去。)

就绪列表是 epoll 能够高效的核心,对于每一个就绪的 socket,会直接放入 rdllist 中,epoll_wait 获取到就绪的 socket 时,直接从 rdllist 中进行获取就可以了,无需再进行查找。epoll 是基于事件回调机制地,当 epoll 所管理地 socket 有数据到来时,会触发事件回调函数,将就绪的 socket 放置在 rdllist 中,并且通知 epoll_wait 所在的进程来处理数据。epoll的优点如下:

  • 支持海量并发连接。
  • 使用时间复杂度为 O(logn)的红黑树管理所有的 socket。
  • 提高 CPU 的使用率,高效地使用 CPU 时间片处理所管理的 socket 连接。
  • 基于事件回调机制处理消息,而不是主动轮询机制。

除了epoll,内核还提供了select和poll,但是二者效率较差,这里就不再进行介绍了。

最后的总结

不同的客户端与服务端通信通过Socket实现,而epoll使得通信变更加高效!

责任编辑:武晓燕 来源: 今日头条 Socket文件描述符

(责任编辑:休闲)

    推荐文章
    • 股票熔断什么意思?上证指数跌多少触发熔断?

      股票熔断什么意思?上证指数跌多少触发熔断?股票熔断什么意思?股票熔断是指自动停盘机制,当股指波幅达到规定的熔断点时,交易所为控制风险采取的暂停交易措施,具体是对标的物设置一个熔断价格,使合约买卖报价在一段时间内只能在这一价格范围内交易的机制。 ...[详细]
    • 怪我咯?手机已卡死还没告诉你用KingRoot

      怪我咯?手机已卡死还没告诉你用KingRoot《天天酷跑》又更新了,随之而来的就是众多的玩家开始在各个地方抱怨手机已经跑不下去了,又卡又慢。有多少个安卓手机的游戏玩家会碰到游戏一更新就卡慢?他们或许是游戏大神,但在面对卡慢之时,只能去论坛求助。其 ...[详细]
    • 每日产品辣评:耳机也要比,小米魅族不愧是死冤家

      每日产品辣评:耳机也要比,小米魅族不愧是死冤家小米和魅族这对相爱相杀的对手,他们的故事在科技圈人尽皆知,只要一家出产品,另一家必定针锋相对,时不时还扯破脸皮上个头条。这不,小米在11月4号刚发布了”年度旗舰“小米圈铁耳机,魅族立马宣布在9号发布年 ...[详细]
    • 创新智能充,麦逗•月光宝盒桌面智能充电器评测

      创新智能充,麦逗•月光宝盒桌面智能充电器评测手机、平板、智能手表等移动设备越来越多,正常的插线板已经“不堪重负”,出门时携带多个不同设备充电器也并不方便, 最近冒出一些多口USB智能充电器产品,麦逗的月光宝盒就是其中之一。麦逗medox)是智能 ...[详细]
    • 天保基建(000965.SZ):2020年净利降49.78% 基本每股收益0.0859元

      天保基建(000965.SZ):2020年净利降49.78% 基本每股收益0.0859元天保基建(000965.SZ)披露2020年年度报告,实现营业收入8.2亿元,同比下降32.59%;归属于上市公司股东的净利润9529.34万元,同比下降49.78%;归属于上市公司股东的扣除非经常性 ...[详细]
    • 金立S6新机将至 欲制定时尚手机行业标准?

      金立S6新机将至 欲制定时尚手机行业标准?智能手机发展至今时今日,已经逐渐涌现出主打音乐、拍照、续航等诸多细分市场的产品线,而2000元以内价位的时尚手机市场,一直都是国内厂商的兵家必争之地。金立作为国内最早的手机厂牌之一,拥有相当庞大的线下 ...[详细]
    • “机器人——颠覆工厂,重构生活”

      “机器人——颠覆工厂,重构生活”机器人如何入侵人类生活?机器人产业的投资机会在哪里?制造业危机频现,转型迫在眉睫。工业机器人是否可以力挽狂澜?智慧服务,重构生活,服务机器人是否会是新的风口?未来的世界应该怎样?无数的创业者和风险投资 ...[详细]
    • 光大是不够的 蓝魔抢跑手机大屏3.0时代

      光大是不够的  蓝魔抢跑手机大屏3.0时代从塞班到安卓,从3.5吋到5.5吋,从单核到八核,从500万到2100万,从塑料到金属,从和弦到HiFi,从QVGA到FHD,从电阻屏到电容屏,从面部解锁到指纹识别,从物理按键到3D Touch,从大 ...[详细]
    • 险企“补血”渠道有望拓宽 永续债可补充核心二级资本

      险企“补血”渠道有望拓宽 永续债可补充核心二级资本继商业银行永续债后,保险版永续债也要来了。11月21日,北京商报记者获悉,近日,央行联合银保监会起草了《关于保险公司发行无固定期限资本债券有关事项的通知(征求意见稿)》(以下简称《意见稿》),并向社会 ...[详细]
    • ZUK Z1渲染图再曝光:指纹识别+全网通

      ZUK Z1渲染图再曝光:指纹识别+全网通7月27日消息,在ZUKZ1的首张渲染图曝光不久,ZUK官方微博昨天下午又对外放出了两张渲染图,之前一直没有曝光的U-Touch按键在此次的渲染图中出现,摄像图则在另外一张渲染图中出镜。在此次放出的渲 ...[详细]
    热点阅读