自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

算法攻城狮

耐住寂寞,静下心来,专研

  • 博客(490)
  • 资源 (2)
  • 收藏
  • 关注

原创 Linux-常用软件源整理

目录1.ubuntu软件源2.Centos软件源1.ubuntu软件源步骤1:打开/etc/apt/sources.listsudo gedit /etc/apt/sources.list步骤2:在文件中添加如下软件源#添加阿里源deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiversedeb http://mirrors.aliyun.com/ubuntu/ bion.

2022-03-20 15:01:22 7398

原创 c++/c-获取随机长度的字符串

实现跨平台的实现随机长度的字符串获取,两种方法:随机字符串实现1:std::random_device rd;std::mt19937 generator(rd());std::string get_uuid(int len){ std::string out; int flag = 0, i = 0; for (i = 0; i < len - 1; i++) { flag = get_rand_num() % 3; ..

2022-02-23 22:33:42 649

原创 密码认证-SHA加盐密码

密码认证,首先是密码加密算法,然后密码咋存储 ,如图所示密码加密分为不可加密和可逆加密算法。安全存储策略,有明文保存和加盐保存,明文保持容易导致密码丢失,一般采用加盐密码保持。注册和认证流程如下:用户注册一个帐号 密码经过哈希加密储存在数据库中。只要密码被写入磁盘,任何时候都不允许是明文 当用户登录的时候,从数据库取出已经加密的密码,和经过哈希的用户输入进行对比 如果哈希值相同,用户获得登入授权,否则,会被告知输入了无效的登录信息 每当有用户尝试登录,以上两步都会重复加密过程采用sha25

2022-02-23 22:24:34 1584

原创 window下libevent编译及其使用

1.编译选项-MT/MD: 类别 说明 静态连接 多线程(/MT) 多线程Release、DLL版运行时库,只能用于Release版本 LIBCMT.lib 多线程调试(/MTd) 多线程Debug、DLL版运行时库,只能用于Debug版本 LIBCMTD.lib 多线程调试DLL(/MD) ...

2022-02-16 21:45:43 1130

原创 VS+QT下开发打包

项目是VS+QT开发,可以使用qwt工具库来打包步骤1:查找项目中使用到的qt动态链接库,QT使用windeployqt打包关于qt依赖的dll库。将打包的程序放入新的空文件夹中,然后在选择QT的终端,比如Qt 5.9.6 64-bit for Desktop (MSVC 2017),并切换到新建文件夹目录下,运行windeployqt ClientWidget.exe。步骤2:查找依赖VS的底层运行库,使用dumpin 命令:dumpbin /IMPORTS name.exe选择vs.

2022-02-10 22:51:21 1410

原创 TCP调试-16进制调试

TCP调试工具如下:使用16进制发送和接受数据TCP调试:16进制发送第一步:将发生的字符串进行base64编码第二步:base6编码字符串转16进制第三步:16进制按字节加空格import base64strInput=input("请输入格式的json字符串:")bs=str(base64.b64encode(strInput.encode('utf-8')),"utf-8")print('base64转码:'+bs)by = bytes(bs,'UTF-8')hex

2022-01-31 15:43:22 4547

原创 window开发-打包dll

目录1.查看可执行程序依赖的dll2查看dll是否为32位的还是64位3.32位程序与64位程序的区别4. Depends工具5.打包发布1.查看可执行程序依赖的dll打开用VS的dumpbin命令可以查看目标程序许的dll依赖项。Developer PowerShell for VS 2019,运行如下:dumpbin.exe /dependents .\stream_server_window.exe2查看dll是否为32位的还是64位Develo...

2021-12-26 14:32:14 1204

原创 go语言基础-牛刀小试

这段时间对go语言,感兴趣,就查资料,小学一下整理备忘,如下;练习:package mainimport ( "fmt")//函数func add(a int, b int) (int, int) { return a + b, a}func main() { //变量声明 var num int = 20 num_2 := 20 var num_3 int8 num_3 = 40 var str, str_2, str_3 string = "hello.

2021-12-09 22:53:18 333

原创 RTP确认大小-MSS&MTU

目录1.MTU和MSS基本概念2.普通应用数据TCP传输:3.RTP数据传输大小1.MTU和MSS基本概念基本概念: 基本概念 解释 MTU 最大传输单元,由硬件规定,如以太网的MTU为1500字节。 网络中一些常见链路层协议MTU的缺省数值如下: FDDI协议:4352字节 以太网(Ethernet)协议:1500字节 PPPoE(ADSL)协议:1492字节 X.25

2021-12-04 15:55:06 2954

原创 计算机网络-组播

1.组播基本知识由于设计到多播通信方法,故查阅资料学习一下,三种通信方法:类型 特点 优缺点 使用方法 单播 用于两个主机之间的端对端通信 单播解决了点对点通信的需求; TCP/UDP 广播 用于一个主机对整个局域网上所有主机上的数据通信 存在缺点: 1)只能在同一网段内实现广播; 2)不能指定目的主机,所有网段内的主机都将收到广播报文,存在带宽浪费。 UDP 多播 ...

2021-12-02 00:57:42 2521

原创 设计模式-单例模式

设计模式-单例模式特点:只能实例化一次的特殊类,这个实例被所有的模块所共享应用:只能有一个对象的使用场景,如日志,显卡等设备总结工作中使用到的:懒汉式(非线程安全),改进懒汉式(线程安全),饿汉式(线程安全)方法 特点 特点 懒汉式 时间换空间 1.单线程没有问题 2.多线程使用,可能产生多个对象 改进懒汉式 改进懒汉式方法,做到线程安全 饿汉式 空间换时间 初始化就创建,保证线程安全 1.懒汉式特点:懒汉式对于

2021-11-27 12:48:10 102

原创 Linux-目录函数

Linux-目录函数:方便以后查找序号 功能 函数 示例 1 获取当前工作目录 函数声明: #include <unistd.h> char *getcwd(char * buf,size_t size); 函数参数: char * buf:当前工作目录 size_t size: 指定长度 返回值:当当前路径不超过size则返回buf,否则NULL char cur_path[128]; char* te...

2021-11-26 19:45:05 353

原创 音视频工具-VLC测试基本使用

目录1.RTSP拉流保存2.RTSP模拟推流3.RTSP实时播放1.RTSP拉流保存步骤1:点击VLC软件,如下:步骤2:选择相对于RTSP的URL:格式为:rtsp://***,如rtsp://192.168.0.100:8000/hello,然后选择播放中的转换步骤3:进入如下界面,设置文件名,其他的都默认,点击开始步骤4:看到界面上一片黑,这是在开始保持视频,直到点击视频视频停止。2.RTSP模拟推流读取文件形成RTSP步骤1:打开串流,

2021-11-26 19:27:34 1714

原创 Jenkins+maven+SVN自动化构建打包

1.软件安装步骤1:在 Ubuntu 使用apt安装 Maven 非常简单直接。sudo apt updatesudo apt install maven想要验证安装是否成功,运行mvn -version步骤2:安装jenkins插件maven进入配置界面--->【系统管理】--->【插件管理】下检索Maven Integration plugin并点击安装(我选择无重启安装),安装成功如下2.全局配置2.1 jdk环境进入配置界面---&g.

2021-11-21 12:06:01 870

原创 SVN服务器和客户端部署和使用

1.安装SVN服务端apt-get updateapt-get install subversion如图所示:验证一下版本:​​​​​​​2.创建SVN版本库步骤1:新建目录svn并在此目录下存放repository目录步骤2:创建版本库:svnadmin create /home/hot/svn/repository步骤3:验证一下生成的文件步骤4:对db进入权限设置:chmod -R 777 db3.设置访问权限步骤1: 修改权...

2021-11-21 01:00:29 948

原创 ubuntu20.04-Jenkins安装部署

jenkins 是最流行的,开源的,基于 Java 的自动化服务器,它允许你很容易地设置一个持续集成和持续发布的管道。持续集成 (CI)是团队正常提交代码到版本控制仓库时,会运行自动化构建和测试。持续发布(CD)是一系列实践,当代码修改后,自动构建,测试,并且发布到生产环境中。Jenkins可以部署以容器方式部署,也可以直接在宿主机上部署,接下来将介绍在ubuntu20.04上部署。1.安装 JavaJenkins 是一个 Java 应用,并且要求在系统上安装了 Java 8 或者之后的

2021-11-19 01:52:50 2516

原创 音视频学习整理

工作涉及到相关的知识,系统接触到音视频相关的知识点,项目即将结束。抽空整理一下已备忘,如果有兴趣,可以找我一起探讨一些,欢迎批评指导。 音视频学习整理:(后期将会按照这个一步步写博客)qt+ffmpeg下window开发环境搭建 基本概念-音视频基础知识框架 采集,处理,渲染 基本概念-音频基础知识 基本概念-视频基础知识 基本概念-推流和拉流基础过程 命令行-ffmpeg基本命令行 ffmpeg实践-音频采集 ffmpeg实践-视频采集 ffmpeg实践-音频编码 ffmp..

2021-11-17 23:41:12 237

原创 Linux-动态库和静态库生成和使用

目录2.动态库和静态库3.静态库生成和使用3.1静态库的生成4.动态库生成和使用4.1动态库的生成4.2 动态库的使用4.2.1 动态链接4.2.2 动态加载5.工具使用5.1 nm工具5.2ldd命令1.GCC编译流程gcc可以让程序员通过它能够更好地控制整个编译过程。1.预处理阶段(预处理器cpp)生成i的文件2.编译阶段(编译器egcs)将预处理后的文件转换成汇编语言, 生成文件.s3.汇编阶段(汇编器as)有汇编变为目标..

2021-11-17 02:06:23 1328

原创 Linux安装包-run制作

run程序安装包实质上是一个安装脚本加要安装的程序,结构如下:详细步骤:(以智能中间件取流模块为例)步骤1:安装脚本书写,如下#!/bin/bashlines=8 #脚本总行数加1sudo tail +$lines $0 >streamServer.tar.gz #将从第七行输入到新的tar包tar jxvf streamServer.tar.gzcp -rf streamServer /opt/rm streamServer.tar.gz &&...

2021-11-11 20:49:30 2316

原创 Makefile规则学习整理

参考:书写规则 — 跟我一起写Makefile 1.0 文档https://seisman.github.io/how-to-write-makefile/rules.html

2021-11-09 01:31:16 162

原创 C语言-程序耗时计算

算法耗时处理:1.time_t:获取1970年1月1日到现在的0区秒数,精确到stime.h函数声明:time_t time(time_t *t);代码示例:time_t start,end;time(&start);...time(&end);2.clock_t:计时所表示的是占用CPU的时钟单元time.h:函数声明:clock_t clock(void) ;clock()返回单位是毫秒。如果想返用秒为单位可以用代码示例:duration = (finish

2021-10-14 20:45:36 2558 2

原创 Linux_ffmpeg编译

Linux_ffmpeg编译涉及到文件如上,可能与版本不一样,需要自己下载,编译代码如下:#openh264tar -zxvf openh264-2.1.1.tar.gzcd openh264-2.1.1BUILD_LIBS=${HOME}/telecom/build_libsexport PATH=${BUILD_LIBS}/bin:${PATH}make ENABLE64BIT=Yesmake install DESTDIR=${BUILD_LIBS} LIBDIR_NAME...

2021-10-14 19:25:14 141

原创 Linux-环境变量区分

环境变量 含义 设置方法 PATH 可执行文件路径 1.临时设置:export PATH=$PATH:/XXX 2.永久设置:添加 export PATH=$PATH:/XXX到 ~/.bashrc 或 ~/.bash_profile或系统级别的/etc/profile 然后source 一下 LD_LIBRARY_PATH 编译期间找动态链接库 方法1与方法2与上面雷同:方法3如下: 1.添加 库目录到:/etc/ld.so.conf .

2021-10-13 13:47:50 68

原创 python实践-最小二乘拟合

实现对数据x=[ 2,0.2 ,0.02 ,0.002 ,0.0002 ,0.00002])y=[3 , 4 , 6 , 7 , 9, 12 ]最小二乘拟合并预测。代码如下:import numpy as npimport matplotlib.pyplot as plt# 核心代码,求斜率w,截距b:拟合直线方程为y=wx+b :这里x代表logxdef fit(data_x, data_y): m = len(data_y) x_bar = np.mean(dat

2021-10-09 19:06:44 2901

原创 Linux系统安装盘制作

window环境下,Linux系统盘的安装分为以下步骤:前提:先格式化U盘,选择Fat32可行工具:UltraISO软件,最新UltraISO官方免费下载 - UltraISO软碟通中文官方网站步骤1 : 点击 文件 — 打开 找到Linux系统ISO文件步骤2: :点击 “启动”->“写入硬盘镜像”步骤3: 在打开的对话框中选择写入的U盘和写入方式,选择好后点击"写入",写入方式 “USB-HDD+”。刻录成功,点击"返回"步骤4...

2021-09-23 11:58:47 2478

原创 c语言-window开发问题总结

1.链接库版本出现问题错误 25 error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”问题分析:_ITERATOR_DEBUG_LEVEL是记录编译模式的系统变量,0表示当前工程是 Debug 版本,2表示当前工程是 Release 版本。产生这个问题的原因是当前工程是Debug版本,而引用的库文件时Release版本。...

2021-09-15 10:33:50 127

原创 C语言进阶-程序变量规范书写

向大佬学习,规范自己代码备忘,哈哈加油/*设置属性_WIN32:windows的32系统_WIN64:windows的64系统__linux__:linux系统__APPLE__:apple系统*/#if defined(_WIN32)||defined(_WIN64)#define API exetern "C" __desclpec(dllexport)#elif defined(__linux__)||defined(__APPLE__)#define API exe

2021-09-14 21:16:14 239

原创 工具-VsCode插件koroFileHeader

VsCode插件koroFileHeader设置文件头注释和函数注释在线安装 离线安装本文档讲离线安装第一步:下载https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE第二步:2.文件->首选项->设置->搜索fileheader->settings.json编辑{"fileheader.Author": "lishuwei",// 插件配置选项,readme:https:/

2021-09-06 11:35:13 852

原创 C++进阶-空指针和野指针

空指针空指针类型是void*,它指向任何类型的对象,它是个指针,与地址有关系,不知道内容什么数据类型,当取空类型指针所指向的值的时候,应将空类型指针转换为对应的指针类型。否则直接使用将会发生错误。1)空指针支持的操作a. 与另一个指针比较b. 向函数传递void *指针c. 在函数里返回void *指针d. 给另一个void *指针赋值2)空指针不支持的操作a. 不支持解引用,不能获取指向对象的值b. 不能进行指针运算,比如移位操作野指针指向一个非法的或已销毁的内

2021-09-04 11:14:49 252

原创 调试技巧#1-coredump

经常和linux开发程序,不免会遇到程序发生segement fault 错误,特别是运行一段时间后的程序发生这样的错错误,这个时候gdb实时运行可能就不太合适,这个时候使用core文件是比较合适的,core文件是coredump,又称又称为核心转储,它是操作系统进程在接受到信号发生终止时,将此时进程地址空间的内容以及有关进程状态的其他信息写出的一个磁盘文件。coredump文件含有当进程被终止时内存、CPU寄存器和各种函数调用堆栈信息等,方便开发人员复现问题。下面从几个方面来谈coredu...

2021-09-04 10:38:28 753

原创 C++进阶-结构体占用空间大小以及考虑字节对齐

结构体占用空间大小是所有的变量占用空间大小的之和,非也,如果结构体不是一个变量,则考虑字节对齐,如果是一个变量,不涉及到字节对齐结构体字节对齐规则:先介绍三个概念:自身对齐值、指定对齐值、有效对齐值。自身对齐值:数据类型本身的对齐值,例如char类型的自身对齐值是1,short类型是2;指定对齐值:编译器或程序员指定的对齐值,32位单片机的指定对齐值默认是4;有效对齐值:自身对齐值和指定对齐值中较小的那个。对齐两个规则:1、不但结构体的成员有有效对齐值,结构体本身也有对齐值,

2021-09-03 09:40:46 1009

转载 tcpdump与Wireshark基础入门

1 起因前段时间,一直在调线上的一个问题:线上应用接受POST请求,请求body中的参数获取不全,存在丢失的状况。这个问题是偶发性的,大概发生的几率为5%-10%左右,这个概率已经相当高了。在排查问题的过程中使用到了tcpdump和Wireshark进行抓包分析。感觉这两个工具搭配起来干活,非常完美。所有的网络传输在这两个工具搭配下,都无处遁形。为了更好、更顺手地能够用好这两个工具,特整理本篇文章,希望也能给大家带来收获。为大家之后排查问题,添一利器。2 tcpdump与Wireshark介绍

2021-09-02 00:10:39 1332

原创 KVM安装window虚拟机

1.验证是否支持虚拟机技术如果结果中有vmx(Intel)或svm(AMD)字样,就说明CPU支持的。egrep '(vmx|svm)' /proc/cpuinfo2.安装KVMyum install qemu-kvm libvirt virt-install bridge-utils virt-manager -y验证是否成功:lsmod | grep kvm开启kvm服务,并且设置其开机自动启动systemctl start libvirtd开机启动systemctl

2021-08-20 09:28:50 792

原创 音视频基础-IPB帧

视频压缩中,每帧代表一幅静止的图像。而在实际压缩时,会采取各种算法减少数据的容量,其中IPB就是最常见的。整理中

2021-08-17 11:51:28 229

原创 音视频基础-YUV颜色空间

YUV是指亮度参量和色度参量分开表示的像素格式,其中“Y”表示明亮度(Luminance或Luma),也就是灰度值;而“U”和“V”表示的则是色度(Chrominance或Chroma),作用是描述影像色彩及饱和度,用于指定像素的颜色。继续整理中...

2021-08-17 11:32:52 85

原创 libcurl实战-Get请求

ibcurl作为是一个多协议的便于客户端使用的URL传输库,基于C语言,提供C语言的API接口,支持DICT, FILE, FTP, FTPS, Gopher, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMTP, SMTPS, Telnet and TFTP这些协议,同时支持使用SSL证书的安全文件传输:HTTP POST, HTTP PUT, FTP 上传, 基于HTTP形式的上传...

2021-08-17 01:12:07 3011

原创 C语言基础-预处理

预处理1.预定义符号__FILE__ : 进行编译的源文件名__LINE__ : 文件当前行的行号__DATE__ : 文件被编译的日期__TIME__ : 文件被编译的时间__STDC__ : 如果编译器遵循ANSI_C,其值为1(Liunx),否则为定义(VS)2.防止重复包含#pragma once (前者) 和 #ifndef #define #endif (后者)的区别:相同点:都是防止同一个文件被#include被多次使用不同点:1. 可移植性 :...

2021-08-08 10:39:40 93

原创 C语言基础-IO输入输出

IO操作:c语言提供IO操作,头文件在stdio.h序号 原型 备注 fopen函数 FILE *fopen(const char *filename, const char *mode); 打开文件 fread函数 size_t fread(void *ptr, size_t size, size_t nitems, FILE *stream); 读文件 fwrite函数 size_t fwri.

2021-08-08 10:35:30 609

原创 C语言基础-动态内存分配

内存分配函数涉及到函数,C 语言为内存的分配和管理提供了几个函数。这些函数可以在<stdlib.h>头文件中找到函数名 声明 备注 malloc void * malloc(size_t size) 开辟连续空间大小 calloc void * calloc (size_t num,size_t size) 开辟连续空间num个size大小空间 realloc void * realloc ( void * ptr, size_t ...

2021-08-08 10:34:25 72

原创 C语言基础-函数

函数1.函数的定义和声明 声明:函数使用一般先在头文件中声明再使用,声明是告诉编译器有一个函数叫什么,返回类型和参数是什么 定义:定义是函数的具体实现,交代函数的功能实现2.库函数 & 自定义函数 库函数:<>为引用库函数,从标准路径中搜索 自定义函数:“ ”为引用自己定义的函数,从用户自定义的路径搜索3.函数的参数 实参:真实传给函数的参数叫实参 形参:形参在函数调...

2021-08-08 10:32:00 50

ROS入门基础(1).pdf

主要包含以下内容 一、ROS介绍 1.ROS发展与现状 2.ROS系统安装 3.ROS简单介绍 二、 ROS基础 1.常用命令行 2.通信机制 3.关键组件 三、 ROS编程实例 例1.简单话题 例2.简单服务 例3.简单调试

2020-04-25

程序设计实习课程整理.pdf

【北京大学】程序设计实习总结 (C++版) 郭炜/刘家瑛老师, 108页,总结 第一章 从C走进C++ 第二章 类和对象初探 第三章 类和对象进阶 第四章 运算符重载 第五章 继承与派生 第六章 多态与虚函数 第七章 输入输出,文件操作和模板 第八章 标准模板库STL (1) 第九章 标准模板库STL (2)

2019-12-14

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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