网络编程
文章平均质量分 91
I_O_fly
身为一个喜欢算法的小菜鸡,喜欢自己自学
展开
-
关于SM2国密算法开发流程
SM2国密算法开发流程最近公司在做芯片加密项目,正好我刚入职的时候做了一个备用,拿来顶,然后改完交给对接的公司,在一开始看的时候,虽然我注释写的挺多,但是关于SM2国标算法的算法流程忘得差不多了,然后浪费了很多时间,花了2-3天才搞定项目里的Bug,好多都是忘记流程产生的,现在来写个文章记录一下。首先SM2算法介绍:SM2椭圆曲线公钥密码算法:我国自主知识产权的商用密码算法,是ECC(Elliptic Curve Cryptosystem)算法的一种,基于椭圆曲线离散对数问题,计算复杂度是指数级,求解原创 2021-04-02 14:50:56 · 4143 阅读 · 0 评论 -
同步异步与阻塞非阻塞的区别 (不定时更新)
同步异步与阻塞非阻塞的概念对于很多初学者来说是一个模糊的概念,其实我们的生活中存在着很多同步和异步的例子。同步和异步关注的是消息通信机制在计算机领域,同步就是指一个进程在执行某个请求的时候,若该请求需要一段时间才能返回信息,那么这个进程将会一直等待下去,直到收到返回信息才继续执行下去;异步是指进程不需要一直等下去,而是继续执行下面的操作,不管其他进程的状态。当有消息返回时系统会通知进程进行处...原创 2019-12-16 20:48:42 · 393 阅读 · 0 评论 -
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 · 205 阅读 · 0 评论 -
HTTP请求和MIME介绍
HTTP请求和MIME介绍HTTP请求由三部分组成,分别是:请求行,消息报头,请求正文。请求行(格式):Method Request-URI HTTP-Version CRLFMethod:方法。GET 请求获取由Request-URI所标识的资源。 POST 在Request-URI所标识的资源后附加新的...转载 2019-12-05 14:12:41 · 988 阅读 · 0 评论 -
CGICC编程
嵌入式linux项目开发(一)——CGIC编程一、CGIC简介1、CGI简介CGI(Common Gateway Interface)是外部应用扩展应用程序与WWW服务器交互的一个标准接口。按照CGI标准编写的外部扩展应用程序可以处理客户端浏览器输入的数据,从而完成客户端与服务器的交互操作。而CGI规范就定义了Web服务器如何向扩展应用程序发送消息,在收到扩展应用程序...转载 2019-12-04 12:01:40 · 1624 阅读 · 0 评论 -
fork()函数详解
我们都知道通过fork()系统调用我们可以创建一个和当前进程印象一样的新进程.我们通常将新进程称为子进程,而当前进程称为父进程.而子进程继承了父进程的整个地址空间,其中包括了进程上下文,堆栈地址,内存信息进程控制块(PCB)等. 1.父子进程 那么我们首先来先说说父进程和子进程之间的区别:父进程设置了锁,子进程不继承 进程ID不同 子进程的未决告警被清除 子进程的未决信号集设...转载 2019-11-26 17:38:56 · 642 阅读 · 0 评论 -
exec函数用法总结
1. exec函数说明fork()函数通过系统调用创建一个与原来进程(父进程)几乎完全相同的进程(子进程是父进程的副本,它将获得父进程数据空间、堆、栈等资源的副本。注意,子进程持有的是上述存储空间的“副本”,这意味着父子进程不共享这些存储空间。linux将复制父进程的地址空间内容给子进程,因此,子进程由了独立的地址空间。),也就是这两个进程做完全相同的事。在fork后的子进程中使用exec...转载 2019-11-26 17:36:38 · 1042 阅读 · 0 评论 -
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 · 11157 阅读 · 0 评论 -
minixml开发手册
库参考手册内容函数mxmlAddmxmlDeletemxmlElementDeleteAttrmxmlElementGetAttrmxmlElementSetAttrmxmlElementSetAttrfmxmlEntityAddCallbackmxmlEntityGetNamemxmlEntityGetValuemxmlEntityRemoveCallbackmxmlF...转载 2019-11-05 15:30:03 · 983 阅读 · 0 评论 -
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 · 4855 阅读 · 0 评论 -
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 · 3150 阅读 · 1 评论 -
OpenSIPS实战(七):模块开发-呼叫超频控制模块
目录前言1、模块开发介绍1.1 可选的5个export结构定义1.2 定义模块的export结构2、模块开发实战:呼叫超频控制模块2.1 代码实现2.2 加载模块并添加路由处理2.3 模块源码下载小结提示:本篇有较多代码,电脑浏览效果更佳前言OpenSIPS支持丰富的拓展...转载 2019-10-29 21:00:15 · 969 阅读 · 0 评论 -
OpenSIPS实战(六):添加自定义伪变量
目录前言1、什么是伪变量2、添加伪变量的两种方法2.1 添加伪变量$appId场景实例2.2 使用核心伪变量实现$appId2.3 使用模块伪变量实现$appId 2.4 使用脚本使用$appId伪变量小结前言伪变量在编写脚本路由逻辑的过程中起到举足轻重的作用,路由逻辑可以通过伪变量获知SIP某...转载 2019-10-29 20:59:37 · 1491 阅读 · 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 · 3693 阅读 · 0 评论 -
opensips实战教程(四): 使用自己的账号系统鉴权
目录前言1、OpenSIPS对请求进行鉴权1.1 SIP鉴权请求过程2、鉴权模块配置3、REGISTER注册请求鉴权4、Proxy代理请求鉴权前言注册鉴权和代理鉴权鉴权是RFC3261中规定的,但这不是强制要求的,事实上在实践中很多时候是不用鉴权的,一是鉴权需要耗费时间,二是很多时候已经对IP做了鉴权,所以非...转载 2019-10-29 20:57:35 · 2389 阅读 · 0 评论 -
opensips实战教程(三):路由脚本介绍与实战
目录前言1、路由脚本opensips.cfg结构简介2、脚本路由逻辑介绍与实战应用2.1 route路由和子路由实战:将用户信息存储到redis2.2 onreply_route请求响应路由:将呼叫状态上报2.3 其他路由类型介绍3、在脚本中调用自己编写的函数前言OpenSI...转载 2019-10-29 20:56:51 · 3177 阅读 · 0 评论 -
OpenSIPS实战(二):日志文件配置
简介OpenSIPS使用syslog服务写日志,所以缺省情况下日志会写入/var/log/message这个系统日志文件中的,实际应用中都需要使用独立的log文件,方便查看日志和保存日志,这时就需要配置syslog和logrotate服务。1、修改OpenSIPS日志保存路径OpenSIPS可以设置写入的设施,设施配置对应的log文件路径。默认配置的是lo...转载 2019-10-29 20:55:52 · 1759 阅读 · 0 评论 -
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 · 7103 阅读 · 0 评论 -
sip协议详解(三)
21应答代码应答码是包含了,并且扩展了HTTP/1.1应答码。并不是所有的HTTP/1.1应答码都适当应用,只有在这里指出的是适当的。其他HTTP/1.1应答码不应当使用。并且,SIP也定义了新的应答码系列,6xx。21.1临时应答1xx临时应答,也就是消息性质的应答,标志了对方服务器正在处理请求,并且还没有决定最后的应答。如果服务器处理请求需要花200ms以上才能产生终结应...转载 2019-10-29 09:45:38 · 11282 阅读 · 0 评论 -
sip协议详解(二)
13初始化一个会话13.1概览当UAC希望初始化一个会话(比如,audio,video或者游戏),它首先构造一个INVITE请求。这个INVITE请求一个服务器来建立一个会话。这个请求可能会由proxy层层转发,最后到达一个或者多个可能能够处理这个邀请的UAS。这些UAS需要看看是否用户接收这个邀请。然后UAS可以接收这个请求(也就是会话建立了),通过发送2xx应答。如果邀请被拒绝,根...转载 2019-10-29 09:45:00 · 4028 阅读 · 0 评论 -
sip协议详解(一)
1、SIP协议介绍Internet的许多应用都需要建立和管理一个会话,会话在这里的含义是在参与者之间的数据的交换。由于考虑到参与者的实际情况,这些应用的实现往往是很复杂的:参与者可能是在代理间移动,他们可能可以有多个名字,他们中间的通讯可能是基于不同的媒介(比如文本,多媒体,视频,音频等)-有时候是多种媒介一起交互。人们创造了无数种通讯协议应用于实时的多媒体会话数据比如声音,影像,或者文本。本...转载 2019-10-29 09:42:42 · 7722 阅读 · 0 评论