自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

I_O_fly的博客

在走向大牛的路上奋斗

原创 Noip知识点体系

加*号是选学,加粗为重点,重要值排序不分先后 基础算法 贪心、枚举、分治、二分、倍增、*构造、高精、模拟 图论 图 最短路(dijkstra、spfa、floyd),差分约束 最小生成树(kruskal、prim) 并查集(扩展域) 拓扑排序 二分图染色,*二分图匹配 tarjan找scc、桥、割点,缩点 *分数规划 树 树上倍增(LCA) 树的直径、树的重心 dfs序 *树链剖分 ...

2020-06-10 08:30:55 51

原创 同步异步与阻塞非阻塞的区别 (不定时更新)

同步异步与阻塞非阻塞的概念对于很多初学者来说是一个模糊的概念,其实我们的生活中存在着很多同步和异步的例子。同步和异步关注的是消息通信机制在计算机领域,同步就是指一个进程在执行某个请求的时候,若该请求需要一段时间才能返回信息,那么这个进程将会一直等待下去,直到收到返回信息才继续执行下去;异步是指进程不需要一直等下去,而是继续执行下面的操作,不管其他进程的状态。当有消息返回时系统会通知进程进行处...

2019-12-16 20:48:42 79

转载 C柔性数组

#include<stdio.h>typedef struct _SoftArray{ int len; int array[];}SoftArray;int main(){ int len = 10; printf("The struct's size is %d\n",sizeof(SoftArray));}我们可以看出...

2019-12-16 11:43:41 46

转载 sscanf的使用方法

sscanf的作用:从一个字符串中读进于指定格式相符的数据。利用它可以从字符串中取出整数、浮点数和字符串。sscanf和scanf的区别:scanf是以键盘作为输入源,sscanf是以字符串作为输入源。sscanf:原型:int sscanf(const char *str, const char *format,......);说明:sscanf()会将参数str的...

2019-12-05 15:35:43 37

转载 HTTP请求和MIME介绍

HTTP请求和MIME介绍HTTP请求由三部分组成,分别是:请求行,消息报头,请求正文。请求行(格式):Method Request-URI HTTP-Version CRLFMethod:方法。GET 请求获取由Request-URI所标识的资源。 POST 在Request-URI所标识的资源后附加新的...

2019-12-05 14:12:41 52

转载 值得学习的C语言开源项目

- 1. WebbenchWebbench是一个在Linux下使用的非常简单的网站压测工具。它使用fork()模拟多个客户端同时访问我们设定的URL,测试网站在压力下工作的性能,最多可以模拟3万个并发连接去测试网站的负载能力。Webbench使用C语言编写, 代码实在太简洁,源码加起来不到600行。下载链接:http://home.tiscali.cz/~cz210552/webbench...

2019-12-04 16:24:27 103

转载 回车符和 换行符的区别

首先介绍一下“回车”(carriage return,’\r’)和“换行”(line feed,’\n’)这两个概念的来历和区别。在计算机还没有出现之前,有一种叫做电传打字机(Teletype Model 33)的玩意,每秒钟可以打10个字符。但是它有一个问题,就是打完一行换行的时候,要用去0.2秒,正好可以打两个字符。要是在这0.2秒里面,又有新的字符传过来,那么这个字符将丢失。于是,研制人...

2019-12-04 14:28:09 46

转载 CGICC编程

嵌入式linux项目开发(一)——CGIC编程一、CGIC简介1、CGI简介CGI(Common Gateway Interface)是外部应用扩展应用程序与WWW服务器交互的一个标准接口。按照CGI标准编写的外部扩展应用程序可以处理客户端浏览器输入的数据,从而完成客户端与服务器的交互操作。而CGI规范就定义了Web服务器如何向扩展应用程序发送消息,在收到扩展应用程序...

2019-12-04 12:01:40 109

转载 fork()函数详解

我们都知道通过fork()系统调用我们可以创建一个和当前进程印象一样的新进程.我们通常将新进程称为子进程,而当前进程称为父进程.而子进程继承了父进程的整个地址空间,其中包括了进程上下文,堆栈地址,内存信息进程控制块(PCB)等.  1.父子进程  那么我们首先来先说说父进程和子进程之间的区别:父进程设置了锁,子进程不继承 进程ID不同 子进程的未决告警被清除 子进程的未决信号集设...

2019-11-26 17:38:56 34

转载 exec函数用法总结

1. exec函数说明fork()函数通过系统调用创建一个与原来进程(父进程)几乎完全相同的进程(子进程是父进程的副本,它将获得父进程数据空间、堆、栈等资源的副本。注意,子进程持有的是上述存储空间的“副本”,这意味着父子进程不共享这些存储空间。linux将复制父进程的地址空间内容给子进程,因此,子进程由了独立的地址空间。),也就是这两个进程做完全相同的事。在fork后的子进程中使用exec...

2019-11-26 17:36:38 105

转载 curl库中curl_easy_setopt函数详解

#include <curl/curl.h>CURLcodecurl_easy_setopt(CURL *handle, CURLoption option, parameter);说明:此函数用来告诉 libcurl 执行什么样的动作。该函数有 3 个参数(该函数的可设置选项非常之多):第 1 个参数 handle 是由 curl_easy_init() 返回的句柄;...

2019-11-21 11:15:24 68

转载 Linux curl最详细命令详解

curl是一个非常实用的、用来与服务器之间传输数据的工具;支持的协议包括 (DICT, FILE, FTP, FTPS, GOPHER, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMTP, SMTPS, TELNET and TFTP),curl设计为无用户交互下完成工作;curl提供了一...

2019-11-18 15:10:05 125

转载 彻头彻尾的理解kmp

作者:July时间:最初写于2011年12月,2014年7月21日晚10点 全部删除重写成此文,随后的半个多月不断反复改进。1. 引言 本KMP原文最初写于2年多前的2011年12月,因当时初次接触KMP,思路混乱导致写也写得混乱。所以一直想找机会重新写下KMP,但苦于一直以来对KMP的理解始终不够,故才迟迟没有修改本文。 然近期因开了个算法班,班上专门讲解数据结...

2019-11-15 12:04:09 31

原创 Ubantu VS code安装

sudo dpkg -i + 安装包名字

2019-11-14 16:52:01 25

转载 C/C++调用sqlite3接口详解

qlite3的C/C++接口用法可分为两种:回调形式与非回调形式。所谓回调形式其实就是通过回调的方式处理sql语句执行结果,非回调形式就是待sql语句执行完毕后再通过返回值和相关函数来判断、获取执行结果。一、sqlite3非回调形式接口用法1、sqlite3_open 打开sqlite3数据库的连接在sqlite3数据库管理系统中,用结构体sqlite3来表示一个打开的数据库对象(...

2019-11-13 09:04:37 77

原创 项目开发中用到的一些宏定义总结(不定时 更新)

#ifdefDEBUG#defineDBG(...)fprintf(stderr,"DBG(%s,%s(),%d):",__FILE__,__FUNCTION__,__LINE__);fprintf(stderr,__VA_ARGS__)#else#defineDBG(...)#endifintmain(){...

2019-11-07 10:51:54 84

转载 minixml开发手册

库参考手册内容函数mxmlAddmxmlDeletemxmlElementDeleteAttrmxmlElementGetAttrmxmlElementSetAttrmxmlElementSetAttrfmxmlEntityAddCallbackmxmlEntityGetNamemxmlEntityGetValuemxmlEntityRemoveCallbackmxmlF...

2019-11-05 15:30:03 146

转载 OpenSIPS实战九:跨NAT通信

目录前言1、NAT问题简介2、解决终端NAT问题2.1 使用终端的外网地址通信2.2 保活终端NAT路由映射3、 媒体NAT处理小结前言跨NAT通信在VOIP通信中常会出现问题,由其原生基于UDP传输导致。虽然现在也有基于websocket这样的基于TCP的传输方式,但整体上还是基于UDP的。而VOIP的很重要的应用...

2019-10-30 09:05:22 1076

转载 OpenSIPS实战(八):修改sip消息-使用lumps system

目录前言1、lumps system简介2、lumps system函数接口2.1 创建指定被操作lumps的函数2.2 创建用于新插入或替换lumps的函数3、修改Contact头域与lump操作图解3.1 使用lumps实现FixContact函数3.2图解FixContact函数的lumps操作过程小结...

2019-10-30 09:04:40 383

转载 OpenSIPS实战(七):模块开发-呼叫超频控制模块

目录前言1、模块开发介绍1.1 可选的5个export结构定义1.2 定义模块的export结构2、模块开发实战:呼叫超频控制模块2.1 代码实现2.2 加载模块并添加路由处理2.3 模块源码下载小结提示:本篇有较多代码,电脑浏览效果更佳前言OpenSIPS支持丰富的拓展...

2019-10-29 21:00:15 161

转载 OpenSIPS实战(六):添加自定义伪变量

目录前言1、什么是伪变量2、添加伪变量的两种方法2.1 添加伪变量$appId场景实例2.2 使用核心伪变量实现$appId2.3 使用模块伪变量实现$appId 2.4 使用脚本使用$appId伪变量小结前言伪变量在编写脚本路由逻辑的过程中起到举足轻重的作用,路由逻辑可以通过伪变量获知SIP某...

2019-10-29 20:59:37 312 2

转载 opensips实战教程(五)负载均衡配置与应用

目录前言1、OpenSIPS两种常用场景1.1 SIP注册服务器1.2 SIP代理服务器2、OpenSIPS负载均衡2.1 配置负载均衡目的地集2.2 负载均衡相关函数2.3 探测负载目的地服务器可用性2.4 使用MI接口查看负载均衡信息3、负载均衡实战应用3.1 目的集的配置3.2 ...

2019-10-29 20:58:59 686

转载 opensips实战教程(四): 使用自己的账号系统鉴权

目录前言1、OpenSIPS对请求进行鉴权1.1 SIP鉴权请求过程2、鉴权模块配置3、REGISTER注册请求鉴权4、Proxy代理请求鉴权前言注册鉴权和代理鉴权鉴权是RFC3261中规定的,但这不是强制要求的,事实上在实践中很多时候是不用鉴权的,一是鉴权需要耗费时间,二是很多时候已经对IP做了鉴权,所以非...

2019-10-29 20:57:35 421

转载 opensips实战教程(三):路由脚本介绍与实战

目录前言1、路由脚本opensips.cfg结构简介2、脚本路由逻辑介绍与实战应用2.1 route路由和子路由实战:将用户信息存储到redis2.2 onreply_route请求响应路由:将呼叫状态上报2.3 其他路由类型介绍3、在脚本中调用自己编写的函数前言OpenSI...

2019-10-29 20:56:51 329

转载 OpenSIPS实战(二):日志文件配置

简介OpenSIPS使用syslog服务写日志,所以缺省情况下日志会写入/var/log/message这个系统日志文件中的,实际应用中都需要使用独立的log文件,方便查看日志和保存日志,这时就需要配置syslog和logrotate服务。1、修改OpenSIPS日志保存路径OpenSIPS可以设置写入的设施,设施配置对应的log文件路径。默认配置的是lo...

2019-10-29 20:55:52 337

转载 OpenSIPS实战(一):OpenSIPS使用简介

目录1、OpenSIPS是什么2、编译安装方法3、安装目录和文件介绍4、启动与停止5、OpenSIPS的MI操作6、OpenSIPS的数据库1、OpenSIPS是什么OpenSIPS(Open SIP Server)是一个成熟的开源SIP服务器实现,可以作为SIP代理/路由器。 但OpenSIPS不仅仅是一个SIP代理/路...

2019-10-29 20:54:22 2320

转载 sip协议详解(三)

21应答代码应答码是包含了,并且扩展了HTTP/1.1应答码。并不是所有的HTTP/1.1应答码都适当应用,只有在这里指出的是适当的。其他HTTP/1.1应答码不应当使用。并且,SIP也定义了新的应答码系列,6xx。21.1临时应答1xx临时应答,也就是消息性质的应答,标志了对方服务器正在处理请求,并且还没有决定最后的应答。如果服务器处理请求需要花200ms以上才能产生终结应...

2019-10-29 09:45:38 574

转载 sip协议详解(二)

13初始化一个会话13.1概览当UAC希望初始化一个会话(比如,audio,video或者游戏),它首先构造一个INVITE请求。这个INVITE请求一个服务器来建立一个会话。这个请求可能会由proxy层层转发,最后到达一个或者多个可能能够处理这个邀请的UAS。这些UAS需要看看是否用户接收这个邀请。然后UAS可以接收这个请求(也就是会话建立了),通过发送2xx应答。如果邀请被拒绝,根...

2019-10-29 09:45:00 222

转载 sip协议详解(一)

1、SIP协议介绍Internet的许多应用都需要建立和管理一个会话,会话在这里的含义是在参与者之间的数据的交换。由于考虑到参与者的实际情况,这些应用的实现往往是很复杂的:参与者可能是在代理间移动,他们可能可以有多个名字,他们中间的通讯可能是基于不同的媒介(比如文本,多媒体,视频,音频等)-有时候是多种媒介一起交互。人们创造了无数种通讯协议应用于实时的多媒体会话数据比如声音,影像,或者文本。本...

2019-10-29 09:42:42 1741

转载 C/C++typedef

第一、四个用途用途一:定义一种类型的别名,而不只是简单的宏替换。可以用作同时声明指针型的多个对象。比如:char* pa, pb; // 这多数不符合我们的意图,它只声明了一个指向字符变量的指针,// 和一个字符变量;以下则可行:typedef char* PCHAR; // 一般用大写PCHAR pa, pb; // 可行,同时声明了两个指向字符变量的指针虽然:char ...

2019-08-28 17:04:58 40

转载 浅谈极限编程

为什么出现极限编程 ?敏捷方法论有一个共同的特点,那就是都将矛头指向了“文档”,它们认为传统的软件工程方法文档量太“重”了,称为“重量级”方法,而相应的敏捷方法则是“轻量级”方法。正是因为“轻量级”感觉没有什么力量,不但不能够有效体现灵活性,反而显得是不解决问题的方法论似的。因此,就有了一次划时代的会议,创建了敏捷联盟。在敏捷方法论领域中,比较知名的、有影响力的,是拥有与 Microsof...

2019-08-10 14:24:55 213 1

原创 内蒙古ACM暑假训练第一次题解(初级组)

题目列表:Problem A小姐姐的程序设计题Problem B小A的刷题训练Problem C小A折千纸鹤Problem D小A与小姐姐玩游戏Problem E小A赚取奖金Problem F小A与小姐姐给气球涂色Problem G小A的约会Problem A 小姐姐的程序设计题主要算法:暴力模拟 解题思路:四个for循环直接模拟即可. ...

2019-07-26 20:43:22 103

原创 leetcode2.俩数相加

给出两个非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照逆序的方式存储的,并且它们的每个节点只能存储一位数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0开头。示例:输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)输出:7 -> 0 -&...

2019-07-26 20:27:21 27

转载 C语言中的null定义

用C语言编程不能不说指针,说道指针又不能不提NULL,那么NULL究竟是个什么东西呢? C语言中又定义,定义如下:#undef NULL#if defined(__cplusplus)#define NULL 0#else#define NULL ((void *)0)#endif所以我觉得,如果一个指针被赋予NULL,应该就相当于这个指针执行了0x0000这个逻辑地址...

2019-07-26 11:39:24 2473

转载 如何用vs2015调试器

转载自:https://www.cnblogs.com/chenxinblogs/p/5298032.html为什么要学习调试? 调试(Debug)是作为一个程序员必须要学会的东西,学会调试可以极大的提高开发效率,排错时间,很多人不喜欢调试,但我认为这是一个很不可取的选择,调试的时候能让我们看到程序的执行顺序、步骤以及过程等,调试的时候可以让我们监视代码中各个变量的情况,调试...

2019-07-23 21:00:41 221

转载 行为树(Behavior Tree)实践(2)– 进一步的讨论

转载自:作者:FinneyBlog:AI分享站(http://www.aisharing.com/)Email:finneytang@gmail.com本文欢迎转载和引用,请保留本说明并注明出处上次提到了一些行为树的基本概念,包括行为节点,控制节点(选择,序列,并行),这次来更多,更深入的讨论行为树的一些东西,如果对行为树不是很了解,请参看这里。一. 关于选择节点的讨论我们说...

2019-07-22 14:53:16 61

转载 行为树(Behavior Tree)实践(1)– 基本概念

转载自:作者:FinneyBlog:AI分享站(http://www.aisharing.com/)Email:finneytang@gmail.com本文欢迎转载和引用,请保留本说明并注明出处自从开博以来,每天都会关心一下博客的访问情况,看到一些朋友的订阅或者访问,不胜欣喜,也促使我去写一些更好的博文,来和大家分享和交流,从访问统计来看,有相当一部分是来自于搜索引擎的流量,关...

2019-07-22 14:40:32 37

原创 关于蓝图通信

在公司实习,这几天在啃ue4涉及到蓝图通信的一个学习,因此把官网的文档项目拿来做了一遍首先是创建,选择第一人称模板,然后打开新关卡,在内容浏览器里打开SM_Rock点下那个方形图标然后保存如果没有这个选项打开在项目设置里的physics里的APEX选项选上,然后在点创建可破坏的rock然后创建蓝图命名为BP_rock然后打开添加一个移动组件 projectileMoveement然后把...

2019-07-19 15:09:51 68

转载 UE4常用蓝图总结(转载)

流程控制节点:1.Branch2.Delay3.DoN4.DoOnce5.DoOnce Multilnput6.FlipFlop7.ForLoop8.ForLoopWithBreak9.Gate10.MultiGate11.Retriggerable Delay12.Sequence13.WhileLoop下面来介绍1.Branch功能:IF判断,成功T...

2019-07-19 11:39:45 487

原创 UE4的UI学习初级入门

在公司已经上班6天了,老大给身为实习生的我留了个任务,在我们项目组做的项目上添加一个按钮按下之后对于我所属的英雄会掉血并且把数据发到服务器,通过这几天的不停翻官方文档知道了思路剩下的就是熟悉基本操作了。记录一下学习过程。在控制面板选择text然后在细节面板控制参数,锚点可以选择在尺寸变换的时候更新位置,我选择的是中间,然后就是UI类的蓝图代码设计。打开关卡蓝图设计在我按下回车...

2019-07-13 16:51:41 109

提示
确定要删除当前文章?
取消 删除