srs rtmp从监听到接收到新连接的过程分析
:分析srs从启动开始的main入口开始。分析rtmp监听端口,然后到接收到新rtmp连接的过程分析。
目录
- 一、流程图
- 二、代码分析
- 1、srs_main_server.cpp:main()
- 2、srs_main_server.cpp:do_main()
- 3、srs_main_server.cpp:run()
- 4、srs_main_server.cpp:run_master()
- 5、srs_app_server.cpp: SrsServer::initialize_st()
- 6、srs_service_st.cpp: srs_st_init()
- 7、srs_app_server.cpp: SrsServer::listen()
- 8、srs_app_server.cpp: SrsServer::listen_rtmp()
- 9、srs_app_server.cpp: SrsBufferListener::listen()
- 10、srs_app_listener.cpp: SrsTcpListener::listen()
- 11、srs_service_st.cpp: srs_tcp_listen()
- 12、srs_service_st.cpp: do_srs_tcp_listen()
- 13、srs_app_st.cpp: SrsSTCoroutine::start()
- 14、srs_app_st.cpp: SrsSTCoroutine::pfn()
- 15、srs_app_st.cpp: SrsSTCoroutine::cycle()
- 16、srs_app_listener.cpp: SrsTcpListener::cycle()
- 17、srs_app_server.cpp: SrsBufferListener::on_tcp_client()
- 18、srs_app_server.cpp: SrsServer::accept_client()
- 19、srs_app_server.cpp: SrsServer::fd2conn()
- 20、srs_app_conn.cpp: SrsConnection::start()
- 21、srs_app_conn.cpp: SrsConnection::cycle()
- 22、srs_app_rtmp_conn.cpp: SrsRtmpConn::do_cycle()
一、流程图
二、代码分析
1、srs_main_server.cpp:main()
2、srs_main_server.cpp:do_main()
3、srs_main_server.cpp:run()
4、srs_main_server.cpp:run_master()
5、srs_app_server.cpp: SrsServer::initialize_st()
6、srs_service_st.cpp: srs_st_init()
7、srs_app_server.cpp: SrsServer::listen()
8、srs_app_server.cpp: SrsServer::listen_rtmp()
9、srs_app_server.cpp: SrsBufferListener::listen()
10、srs_app_listener.cpp: SrsTcpListener::listen()
11、srs_service_st.cpp: srs_tcp_listen()
12、srs_service_st.cpp: do_srs_tcp_listen()
13、srs_app_st.cpp: SrsSTCoroutine::start()
14、srs_app_st.cpp: SrsSTCoroutine::pfn()
15、srs_app_st.cpp: SrsSTCoroutine::cycle()
16、srs_app_listener.cpp: SrsTcpListener::cycle()
17、srs_app_server.cpp: SrsBufferListener::on_tcp_client()
18、srs_app_server.cpp: SrsServer::accept_client()
19、srs_app_server.cpp: SrsServer::fd2conn()
20、srs_app_conn.cpp: SrsConnection::start()
21、srs_app_conn.cpp: SrsConnection::cycle()
22、srs_app_rtmp_conn.cpp: SrsRtmpConn::do_cycle()
srs rtmp从监听到接收到新连接的过程分析相关推荐
- oracle 监听 无法连接,oracle监听hang,无法建立新连接TNS-12540
TNS-12518: TNS:listener could not hand off client connection TNS-12540: TNS:internal limit restricti ...
- [vue] 分别说说vue能监听到数组或对象变化的场景,还有哪些场景是监听不到的?无法监听时有什么解决方案?
[vue] 分别说说vue能监听到数组或对象变化的场景,还有哪些场景是监听不到的?无法监听时有什么解决方案? 无法监听时的方案: 数组:改变数组的值:this.$set() 改变数组长度:arr.sp ...
- 安卓短信功能全解:调用系统短信功能发送短信、彩信,使用SmsManager发送短信,并监听发送短信的投递情况,使用广播接收器监听接收的短信。
全栈工程师开发手册 (作者:栾鹏) 安卓教程全解 安卓短信功能全解:调用系统短信功能发送短信.彩信,使用SmsManager发送短信,并监听发送短信的投递情况,使用广播接收器监听接收的短信. 首先需要 ...
- oracle实例没有连到监听上6,oracle LISTENER未监听到oracle实例问题解决
oracle LISTENER未监听到oracle实例问题解决 LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = ...
- python接收邮件g_Python接收Gmail新邮件并发送到gtalk的方法
本文实例讲述了Python接收Gmail新邮件并发送到gtalk的方法.分享给大家供大家参考.具体实现方法如下: #!/usr/bin/env python # -*- coding: utf-8 - ...
- [vue] vue能监听到数组变化的方法有哪些?为什么这些方法能监听到呢?
[vue] vue能监听到数组变化的方法有哪些?为什么这些方法能监听到呢? 你说的是vue内部的源码对Array数据的中转代理嘛 好像对push, shift等通用方法都做了代理吧! 因为它对中转的数 ...
- python接收最新邮件_Python接收Gmail新邮件并发送到gtalk的方法
本文实例讲述了Python接收Gmail新邮件并发送到gtalk的方法.分享给大家供大家参考.具体实现方法如下: #!/usr/bin/env python # -*- coding: utf-8 - ...
- IMAP协议定时监听接收邮件(QQ邮箱、网易邮箱都可)
前面已介绍过SMTP协议发论文:qq邮箱,网易邮箱,smtp邮箱发邮件 本文将继续介绍如何用IMAP协议收邮件. IMAP协议:即Internet Message Access Protocol(互联 ...
- oracle数据库:ORA-12528: TNS: 监听程序: 所有适用例程都无法建立新连接
项目场景: 当我们使用sqlplus输入shutdown命令然后重启动的时候,或者在新环境就会出现下列错误 问题描述: ERROR: ORA-12528: TNS: 监听程序: 所有适用例程都无法建立 ...
最新文章
- python元组用法详解(定义、下表查找、index()、count()、len())
- 【Java集合框架】ArrayList类方法简明解析(举例说明)
- 前端面试题目及答案(欢迎拍砖)
- 单片机片外RAM,串行的
- DFT实训教程笔记1(bibili版本)- introduction to DFT DFT Architecture
- IBM服务器系统盘更换后检查,IBM服务器更换rootvg故障磁盘操作指南
- 推荐10个技术圈优质的公众号大号
- C#递归、动态规划计算斐波那契数列
- [css][移动设备]禁止横竖屏时内容自动调整
- SQLite学习总结(1)——SQLite简介及快速入门
- 博客园项目开发中的难点
- 和好几天又开战!AMD显卡老大跳槽,要帮英特尔进军GPU
- java web filter 入口_springboot 通过@WebFilter(urlPatterns )配置Filter过滤路径
- Bezier曲线及其de casteljau算法 matlab实现
- ping 命令的用法大全(图文详解)
- 【深度完美精简版 5.10】 Deepin-LiteXP-5.10
- c语言 怎么对百位数求余量,数据结构(C语言版)
- Docker实现原理之 - OverlayFS实现原理
- win7旗舰版安装telnet,报错:打开程序包 Telnet Client 的更新 TelnetClient 失败。状态为: 0x80073712。解决方案
- C语言中在常数后面加U、L、F的功能(转)
热门文章
- fatal error C1083: 无法打开预编译头文件:“Debug\a.pch”:No such file or directory
- 封装 axios 请求
- SCP 报错 not a regular file
- 利用爬虫模拟网页微信wechat
- SD/MMC相关寄存器的介绍
- 面向对象设计与构造第一次总结作业
- NOIP2017年11月9日赛前模拟
- 使用 SqlDataSource 插入、更新和删除数据49
- 孩子在华艺舞校的画画投稿-天女之梦
- BoooLee pyretoolkit -- 一个基于python re模块的在线正则表达式测试工具