静态函数

基于Nginx的媒体服务器技术-线上公开课

荒凉一梦 提交于 2020-03-26 01:25:52
国内应用比较多的开源流媒体服务器nginx-rtmp-module一直存在功能少、集群化难度大等问题。在LiveVideoStack线上分享中,PingOS 开源项目组开发工程师、UCloud RTC研发工程师朱建平详细介绍了基于nginx-rtmp-module的PingOS流媒体服务器在http-flv、http-ts、hls+、多进程、转推、回源以及集群化部署方面的技术实现细节。 文 / 朱建平 整理 / LiveVideoStack 直播回放 https://www2.tutormeetplus.com/v2/render/playback?mode=playback&token=006643cdea15499d96f19ab676924e88 1. Nginx流媒体扩展:http-flv、http-ts、hls+ 最初始的nginx-rtmp-module相关模型与包括SRS在内的多数流媒体服务器实际上是一样的(1个生产者,n个消费者)。Nginx存一个问题:它仅仅做了RTMP的消费模型,如果想扩展 http-flv或http-ts的形式会较为困难。由于rtmp-session仅供RTMP协议使用,如果想扩展http-flv,首先我们需要了解其基础分发模型(如上图所示):所有的生产者与消费者都会被挂载到同一个stream中,生产者负责从网络端接收数据

成员变量和局部变量有什么区别?

此生再无相见时 提交于 2020-03-25 15:00:34
3 月,跳不动了?>>> FAQ2.13 成员变量和局部变量有什么区别? class A { int a;// 成员变量 public static void main(String[] args) { int b;// 局部变量 } } ———————————————————————————————————————————————————————————————————————————————————————— 类体由 2 部分构成 : 一部分是变量的定义 ; 一部分是方法的定义 ( 一个类中可以有多个方法 ) 在变量定义部分定义的变量叫做类的成员变量 , 成员变量在整个类中都有效 . ( 全局变量应该是成员变量的俗称 ) 在方法体中定义的变量叫做局部变量 , 局部变量只在定义它的方法中有效 . 成员变量又分为 实例变量 和 类变量 (static 静态变量 ). class One { float x; //x 为实例变量 static int y; // 只要有关键字 static,y 为类变量 } ———————————————————————————————————————————————————————————————————————————————————————— 1. 成员变量可以被 public , protect , private , static

静态方法和类方法之间的区别

*爱你&永不变心* 提交于 2020-03-25 00:52:21
3 月,跳不动了?>>> 问题: 用 @staticmethod 装饰的函数和用 @staticmethod 装饰的函数有 @staticmethod @classmethod ? 解决方案: 参考一: https://stackoom.com/question/ZP7/静态方法和类方法之间的区别 参考二: https://oldbug.net/q/ZP7/Difference-between-staticmethod-and-classmethod 来源: oschina 链接: https://my.oschina.net/stackoom/blog/3210465

JavaSE复习日记 : 多态

时光毁灭记忆、已成空白 提交于 2020-03-24 11:36:22
/** * 里氏替换原则 : * 能使用父类的地方,一定可以使用子类 * 什么是多态 : * 父类的引用,指向子类的对象 * 多态的前提条件 : * 有继承关系的两个类 * 多态的目的 : * ☆☆☆ 代码的重用 * 多态发什么在什么时候 : * 赋值的时候 * * !!!!!!!!! 多态中的 ☆☆☆ 覆写 是特指的 成员方法!!!!!!!!! * 什么是覆写 : * 就是在子类有个和父类相同的方法 : 方法名 , 参数列表 , 返回值类型 (和修饰符列表没关系) * 1 方法名相同 : 不相同,就是两个不一样的方法了 不是覆写 * 2 参数列表相同 : 参数列表不同,就是方法的重载了,也不是覆写 * 参数列表的 个数 和 数据类型 都相同 才叫相同吧 * 3 返回值类型相同 ; 返回值代表函数(方法)的功能,覆写是为了功能更强大,不能降低功能,所以必须相同 * 覆写之后 不能比原有的方法有更低的访问权限 ( 权限的降低 就意味着 功能的降低 ) * 覆写之后 不能比原有的方法有更宽泛的异常 ( 只能异常越来越低 ) * *!!!!! ☆☆☆ 父类的属性列表是在编译的时候就生成了 : 就是javac的时候☆☆☆ *!!!!! ☆☆☆ 子类的属性列表是在运行时才生成 : 就是java运行的时候☆☆☆ * * 父类和子类的调用有两种形式 : * 1 多态 父类引用指向子类的对象

Linux编程简介——静态链接库

℡╲_俬逩灬. 提交于 2020-03-23 13:44:51
有时我们需要将一组代码编成一个库,从而方便其复用。例如,我们调用的STL和系统函数都是以这种方式提供的。另外,当项目工程较大时,为了使其模块化方便分工,有时也需要将其创建自己的链接库。 链接库按照其链接方式可以分为动态链接库和静态链接库两种,本文主要介绍一下静态链接库的创建方式。 以一个简单的代码为例,这里有两个文件main.c和stack.c,这里打算把stack.c作为一个lib供main.c调用。 /* stack.c */ char stack[512]; int top = -1; char pop( void ) { return stack[top--]; } void push( char c ) { stack[++top] = c ; } /* main.c */ #include <stdio.h> char pop(); void push( char c); void main( void ) { push( 'a' ); push( 'b' ); printf( "%c\n" , pop()); } 要把stack.c编成lib,需要经过如下两个步骤: 通过gcc –c命令将stack.c编成stack.o 通过ar命令将stack.o封装成libstack.a gcc -c stack.c ar cr libstack.a stack.o

Asp .Net core 2 学习笔记(2) —— 中间件

一个人想着一个人 提交于 2020-03-23 07:32:35
这个系列的初衷是便于自己总结与回顾,把笔记本上面的东西转移到这里,态度不由得谨慎许多,下面是我参考的资源: ASP.NET Core 中文文档目录 官方文档 记在这里的东西我会不断的完善丰满,对于文章里面一些局限于我自己知识积累的观点,希望没有跳走坚持看完的朋友,能够予以指正和鼓励. 系列目录 (1)Starup (2)中间件 (3)静态文件 中间件 中间件是一种装配到应用管道以处理请求和响应的软件。 每个组件: 选择是否将请求传递到管道中的下一个组件 可在管道中的下一个组件前后执行工作 请求委托用于生成请求管道。 请求委托处理每个 HTTP 请求。 请求委托通过使用 IApplicationBuilder 类型的 Run、Map 以及 Use 扩展方法来配置,并在Starup类中传给configure方法 。每个单独的请求委托都可以被指定为一个 内嵌匿名方法,或其定义在一个可重用的类中。这些可重用的类被称作中间件或中间件组件。每个位于请求管道内的中间件组件负责调用管道中下一个组件,或适时短路调用链。 使用 IApplicationBuilder 创建中间件管道 ASP.NET Core 请求管道包含一系列请求委托,依次调用 这系列委托并不是一条路走到底:每个委托均可在下一个委托前后执行操作,使得请求管道短路. 短路的方式存在两种: 1任何委托都能选择停止传递到下一个委托

c++ static

强颜欢笑 提交于 2020-03-23 05:07:07
静态全局变量 #include <iostream> using namespace std; static size_t ctr = 0; size_t count_calls() { return ++ctr; } int main() { for(size_t i=0; i < 10; ++i) { cout << "times:" << count_calls() << endl;; } } 特点 该 变量 在全局数据区分配内存 未经初始化的静态全局变量会被程序自动初始化为0 静态 全局变量 在声明它的整个文件都是可见的,而在文件之外是不可见的 结果 全局变量和全局静态变量的区别 1)全局变量是不显式用static修饰的全局变量,但全局变量默认是动态的,作用域是 整个工程 ,在一个文件内定义的全局变量,在另一个文件中,通过extern 全局变量名的声明,就可以使用全局变量。 2)全局静态变量是显式用static修饰的全局变量,作用域是声明此变量 所在的文件 ,其他的文件即使用extern声明也不能使用。 静态局部变量 #include <iostream> using namespace std; size_t count_calls() { static size_t ctr = 0; return ++ctr; } int main() { for(size_t i=0

.NET中如何生成静态页

时光怂恿深爱的人放手 提交于 2020-03-22 11:27:02
如何生成静态页: 方案1: /// <summary> /// 传入URL返回网页的html代码 /// </summary> /// <param name="Url">URL</param> /// <returns></returns> public static string getUrltoHtml(string Url) { errorMsg = ""; try { System.Net.WebRequest wReq = System.Net.WebRequest.Create(Url); // Get the response instance. System.Net.WebResponse wResp =wReq.GetResponse(); // Read an HTTP-specific property //if (wResp.GetType() ==HttpWebResponse) //{ //DateTime updated =((System.Net.HttpWebResponse)wResp).LastModified; //} // Get the response stream. System.IO.Stream respStream = wResp.GetResponseStream(); // Dim reader As

.NET中如何生成静态页

怎甘沉沦 提交于 2020-03-22 08:59:20
如何生成静态页: 方案1: /**/ /// <summary> /// 传入URL返回网页的html代码 /// </summary> /// <param name="Url"> URL </param> /// <returns></returns> public static string getUrltoHtml( string Url) { errorMsg = "" ; try { System.Net.WebRequest wReq = System.Net.WebRequest.Create(Url); // Get the response instance. System.Net.WebResponse wResp = wReq.GetResponse(); // Read an HTTP-specific property // if (wResp.GetType() ==HttpWebResponse) // { // DateTime updated =((System.Net.HttpWebResponse)wResp).LastModified; // } // Get the response stream. System.IO.Stream respStream = wResp.GetResponseStream(); // Dim reader

[转贴]ASP.Net生成静态HTML页面

不羁岁月 提交于 2020-03-22 08:45:19
环境:Microsoft .NET Framework SDK v1.1 OS:Windows Server 2003 中文版 ASP.Net生成静态HTML页 在Asp中实现的生成静态页用到的FileSystemObject对象! 在.Net中涉及此类操作的是System.IO 以下是程序代码 注:此代码非原创!参考别人代码 Code: //生成HTML页 public static bool WriteFile(string strText,string strContent,string strAuthor) { string path = HttpContext.Current.Server.MapPath("/news/"); Encoding code = Encoding.GetEncoding("gb2312"); // 读取模板文件 string temp = HttpContext.Current.Server.MapPath("/news/text.html"); StreamReader sr=null; StreamWriter sw=null; string str=""; try { sr = new StreamReader(temp, code); str = sr.ReadToEnd(); // 读取文件 } catch(Exception