探讨下live555用的编程设计模式

这篇具有很好参考价值的文章主要介绍了探讨下live555用的编程设计模式。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

这个应该放到这里
7.live555mediaserver-第1阶段小结(完整对象图和思维导图)
https://blog.csdn.net/yhb1206/article/details/127330771

但是想想,还是拿出来吧。
从这第1阶段就能发现,它实质用到了reactor网络编程模式,具体点是单Reactor服务器模型

该文章说的很不错。Reactor模式介绍https://zhuanlan.zhihu.com/p/428693405
如文中所述——“Reacor模式是一种事件驱动机制,他逆转了事件处理的流程,不再是主动地等事件就绪,而是它提前注册好的回调函数,当有对应事件发生时就调用回调函数。 由陈硕所述,Reactor即为非阻塞IO + IO复用。”,这大概可以对reactor模式有个简单认识。

“单Reactor服务器模型就是只有一个主线程运行Reactor。整个线程有一个epoll句柄,用于管理所有的套接字。服务器将listenfd的读事件注册到epoll上,当epoll_wait返回时说明listenfd可读,即有新的连接建立。此时再调用accept函数获取新连接clientfd,然后将clientfd的读写事件也注册到这个epoll上,等待clientfd发生读写事件从epoll_wait返回后,再处理clientfd的事件。”
其文章中对单Reactor服务器模型的图,截图如下
探讨下live555用的编程设计模式,手把手一起学live555,学习,网络协议,服务器

而live555例程live555mediaserver.cpp用的是就是这个单Reactor服务器模型,只不过不是epoll而是select,因为epoll是linux独有的,而live555mediaserver.cpp这个例程是跨平台的,所以用了select,通用点吧。其他的客户端socket和服务端监听socket都是放到一起监听的,

拿来之前画的图来说明,如下
探讨下live555用的编程设计模式,手把手一起学live555,学习,网络协议,服务器

之前7.live555mediaserver-第1阶段小结(完整对象图和思维导图)
https://blog.csdn.net/yhb1206/article/details/127330771也讲过这里面是服务端和客户端socket都同时监听的。文章来源地址https://www.toymoban.com/news/detail-704878.html

到了这里,关于探讨下live555用的编程设计模式的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Python进阶编程】python编程高手常用的设计模式(持续更新中)

    Python编程高手通常熟练运用各种设计模式,这些设计模式有助于提高代码的可维护性、可扩展性和重用性。 以下是一些Python编程高手常用的设计模式: 确保一个类只有一个实例,并提供全局访问点。适用于需要共享资源或控制特定资源访问的情景。 其他实现单例模式的方法

    2024年01月24日
    浏览(46)
  • 设计模式之“接口隔离原则“:打破僵化,实现灵活编程

    在现代软件开发中,设计模式是解决常见问题的最佳实践。其中,接口隔离原则(Interface Segregation Principle,简称ISP)是面向对象设计模式中的重要原则之一。本文将深入解析接口隔离原则,帮助您理解其重要性,以及如何在实践中应用这一原则,提升代码的可维护性和可扩展

    2024年01月19日
    浏览(40)
  • live555交叉编译(ubuntu+arm平台)

    1.下载源码 ​​​​​​http://live555.com/liveMedia/public/live555-latest.tar.gz 2.解压 tar -zxvf live555-latest.tar.gz 3.修改配置文件 1)进入live文件夹 2)复制一份配置文件 cp config.armlinux config.myarmlinux chmod 777 config.myarmlinux 3) vim config.myarmlinux 命令行-删除全部配置 4) 修改为 5.编译执行

    2024年02月05日
    浏览(60)
  • 实时流媒体传输开源库——Live555

    Live555(LiveMedia Libraries)是一个开源的多媒体流处理库,主要用于实现基于标准网络协议的实时流媒体传输。Live555提供了一套 C++ 类库,可以用于开发支持 RTP/RTCP、RTSP、SIP 等协议的流媒体服务器和客户端应用程序。它广泛用于视频监控、视频会议、音视频直播等流媒体传输领

    2024年01月22日
    浏览(47)
  • 基于Live555实现数据流的推送

    Live555是使用c++编写的RTSP开源库,以文件为载体进行推流,其中实现了多种类型的音频以及视频的流化。 RTSP是一种媒体传输协议,基于TCP协议,主要功能为媒体播放的控制以及开始连接时的握手操作。时间流传输走的时RTP协议,流传输控制协议走的是RTCP,RTP和RTCP具体使用

    2024年02月12日
    浏览(43)
  • 探索设计模式的魅力:“感受单例模式的力量与神秘” - 掌握编程的王牌技巧

          在软件开发的赛场上,单例模式以其独特的魅力长期占据着重要的地位。作为设计模式中的一员,它在整个软件工程的棋盘上扮演着关键性角色。本文将带你深入探索单例模式的神秘面纱,从历史渊源到现代应用,从基础实现到高级技巧,经过戏剧性的转折和层层推进

    2024年01月20日
    浏览(56)
  • 嵌入式ARM设计编程(三) 处理器工作模式

    文章和代码已归档至【Github仓库:hardware-tutorial】,需要的朋友们自取。或者公众号【AIShareLab】回复 嵌入式 也可获取。 (1) 通过实验掌握学会使用msr/mrs 指令实现ARM 处理器工作模式的切换,观察不同模式下的寄存器,加深对CPU 结构的理解; (2) 通过实验掌握ld 中如何使

    2024年02月03日
    浏览(66)
  • 设计模式学习笔记 - 开源实战三(下):借助Google Guava学习三大编程范式中的函数式编程

    现在主流的编程范式主要有三种,面向过程、面向对象和函数式编程。在理论部分,已经介绍了前面两种编程范式。本章再讲讲剩下的编程范式,函数式编程。 函数式编程并非是一个很新的东西,早在 50 年前就已经出现。近几年,函数式编程越来越被人关注,出现了很多新

    2024年04月22日
    浏览(55)
  • 【Java基础教程】(十八)包及访问权限篇 · 下:Java编程中的权限控制修饰符、单例设计模式 (Singleton)和多例设计模式的综合探析~

    掌握Java 中的4种访问权限; 掌握Java 语言的命名规范; 掌握单例设计模式与多例设计模式的定义结构; 对于封装性,实际上之前只详细讲解了 private , 而封装性如果要想讲解完整,必须结合全部4种访问权限来看,这4种访问权限的定义如下表所示。 范围 private default protected

    2024年02月16日
    浏览(48)
  • java的面向对象编程(oop)——static概述及初始单例设计模式

    过了入门阶段,开始学习进阶语法了。每天进步一点点,打好基础,daydayup! 什么是面向对象编程(oop),可以看这篇 java的面向对象编程(oop)概述及案例  static的意思为静态,用于修饰成员变量及成员方法。 成员变量根据有无static可以分为两种 ——类变量及实例变量 1,类

    2024年01月19日
    浏览(53)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包