- 博客(25)
- 资源 (3)
- 收藏
- 关注
原创 gcc 编译程序4步骤
gcc 编译可执行程序4步骤预处理、编译、汇编、链接-o 是指定文件的名字的gcc 参数1、指定头文件(当头文件和源码不在一个目录下的时候)...
2022-07-27 07:21:18 459
转载 基于openssl的单向和双向认证
1、前言 最近工作涉及到https,需要修改nginx的openssl模块,引入keyless方案。关于keyless可以参考CloudFlare的官方博客:https://blog.cloudflare.com/keyless-ssl-the-nitty-gritty-technical-details/?utm_source=tuicool&utm_medium=referral。在openssl的基础上修改私钥校验过程,因此需要对openssl的认证认证流程需要熟悉一下。SSL
2022-07-27 07:20:50 2980
转载 FileZilla FTP服务器源代码分析1
FileZilla是开源的FTP服务器,用C++写的,通过分析它的源代码,可以掌握C++网络编程以及高并发服务器的设计。FileZilla 是http://sourceforge.net上的项 目,主页是FileZilla® download | SourceForge.net, 我们要研究的版本是:FileZilla Server 0_9_18,其实FileZilla还包括客户端软件。下载后安装,安装时选择安装source,即安装了源代码。安装完成后,可以直接打开工程自带的FileZilla s
2022-02-25 21:18:50 1090
转载 《完美C/C++》之windows守护进程
#include <stdio.h>#include <stdlib.h>#include <Windows.h>#include <io.h>#include <iostream>LPCTSTR szAppClassName = TEXT("Print Service");LPCTSTR szAppWindowName = TEXT("Print Service");using namespace std;//隐藏DOS黑窗口.
2021-11-03 14:28:32 1185
转载 SSL协议解析及密码算法
SSL/TLS算法http://www.cnblogs.com/my_life/articles/5857614.htmlhttps://www.zhihu.com/question/37640500image第一步,爱丽丝给出协议版本号、一个客户端生成的随机数(Client random),以及客户端支持的加密方法。第二步,鲍勃确认双方使用的加密方法,并给出数字证书、以及一个服务器生成的随机数(Server random)。第三步,爱丽丝确认数字证书有效,然后生成一个新的随机数(Pre
2020-07-03 17:25:54 3388
原创 指针(三) 指针数组
指针数组定义一维指针数组的定义形式 类型名 *数组名[数组长度]; char *p[5];一个数组,若其元素均为指针类型数据,称为指针数组,指针数组中的每一个元素都相当于一个指针变量。指针数组的初始化使用地址为指针数组初始化char*p[5]={“wangxiao”,”zhangyi”,”wenhua”,”chenxu”,”liming”};指针数组...
2019-09-05 13:52:11 480
转载 通过管道传输快速将MySQL的数据导入Redis
通过管道传输pipe将MySQL数据批量导入Redis 自Redis2.6以上版本起,Redis支持快速大批量导入数据,即官网的RedisMassInsertion,即Pipe传输,通过将要导入的命令转换为Resp格式,然后通过MySQL的concat()来整理出最终导入的命令集合,以达到快速导入的目的。1. 根据需求设计好Redis的hash结构,关键是Key的设计...
2019-09-03 16:45:43 1206
转载 调试多线程 & 查死锁的bug & gcore命令 & gdb对多线程的调试 & gcore & pstack & 调试常用命令
gdbthread apply all bt如果你发现有那么几个栈停在pthread_wait或者类似调用上,大致就可以得出结论:就是它们几个儿女情长,耽误了整个进程。注意gdb的版本要高于7.0,之前使用过gdb6.3调试多线程是不行的。从上图可以看出两个线程都阻塞在wait上,而且还给出了在哪一行代码中,很容易就定位到产生死锁的位置。有时候...
2019-08-28 15:51:52 597
转载 gdb 调试(二) 分析code文件
借鉴学习https://blog.csdn.net/hanchaoman/article/details/5583457 博文当遇到段错误的情况方法1 :短小代码中单步调试我们用gdb的step, 一步一步寻找.这放在短小的代码中是可行的, 但要让你step一个上万行的代码, 我想你会从此厌恶程序员这个名字, 而把他叫做调试员.我们还有更好的办法, 这就是core file....
2019-08-20 15:32:07 729
原创 CRC校验学习
上面文字是来自一个 版本的介绍crc校验方式的介绍,下面截图是一个视频crc校验原理的讲解。通过这两部分才彻底弄清楚了crc是怎么计算的。上部分来自https://blog.csdn.net/weicao1990/article/details/51669853视频来自https://v.qq.com/x/page/l0812ydj8i2.html1. CRC校验原理 ...
2019-08-16 14:47:51 427
原创 makfile 学习(一)
makefile命名: makefile Makefile1个规则 目标:依赖条件 (一个tab缩进)命令 1、目标的时间必须晚于依赖条件的时间,否则,更新目录 2、依赖条件如果不存在,找寻新的规则去产生依赖 ALL :指定makefile 的终极目标2个函数src = $(wildcard *.c)找到当前...
2019-08-02 17:23:16 209
原创 gdb调试常用(一)
-g 使用该参数编译可执行文件,得到调试表gdb a.outlist 1 列出源码,根据源码指定行号设置断点b: b 20 在20行设置断点run/r: 运行程序n/next: 执行下一条指令(会越过函数)s/step: 执行下一条执行(会进入函数)p/print: p i 查看变量的值c/continue: 继续执行断点后续命令。quit: 退...
2019-08-02 16:10:15 158
转载 tcp学习(一)非阻塞connect和accept
1 非阻塞connect1.1 阻塞模式与非阻塞调用connect会发起三次连接。阻塞模式下,connect的返回结果:发出syn分节后,对方没有收到对端的syn分节,这时会返回ETIMEOUT。超时时间大概在75秒左右。 发出syn分节后,对方没有在监听指定的端口,便会回复RST。这时返回ECONNREFUSED。 发出syn分节后,引发路由器一个ICMP目的不可达的错误。多...
2019-08-02 11:04:22 920
转载 常见开源产品epoll网络事件模型分析(附200万QPS实现长连接echo server方案)
转载:https://blog.csdn.net/answer3y/article/details/48276687摘要:redis、thrift-noblocking-server、memcached、nginx等开源产品 四种不同场景下不同网络模型 分析最近利用业余时间对基于epoll的网络服务模型做了一些调研和测试,既是复习也是一次再学习。在调研过程中,结合现有的开源产品的方案...
2019-08-02 11:03:39 551
转载 Linux Inotify详解和使用
本文部分摘自 https://blog.csdn.net/longwang155069/article/details/54016789适用场景:Inotify 反应灵敏,用法非常简单,并且比 cron 任务的繁忙轮询高效得多日志采集系统中,日志文件的改动。文件系统中文件或者目录是否变动。监控ftp服务器收到的文件,(这种情况可以监控mask的写关闭事件IN_CLOSE_WR...
2019-07-29 14:28:48 10890
转载 va_start和va_end使用详解
转载于:http://www.cnblogs.com/hanyonglu/archive/2011/05/07/2039916.html本文主要介绍va_start和va_end的使用及原理。 在以前的一篇帖子Format MessageBox 详解中曾使用到va_start和va_end这两个宏,但对它们也只是泛泛的了解。 介绍这两个宏之前先看一下C中传递函数的参数时的用...
2019-07-23 17:30:36 103
原创 阿里云centos7 安装gitlab
1.先安装相关依赖yum -y install policycoreutils openssh-server openssh-clients postfix 2、启动postfix,并设置为开机启动目的:支持gitlab邮件发送 systemctl start postfixJob for postfix.service failed because the control ...
2019-02-22 14:56:33 875
原创 c语言 知识点
递归方法:递归相比循环时间上快些,但是 递归比较占用空间,(如果递归的次数超过十万次后会导致资源占用完毕)。标准的代码优化技巧:消除循环、函数循环、函数代码就地扩展、公共子表达式消除、改进寄存器分配、省略运行时对数组边界的检查、循环不变量代码移动、操作符长度消减(把指数操作符转变为乘法操作、把乘法操作变为移位操作或者加法操作)。总线错误: 由于未对齐的读或者写引起的 ...
2019-02-14 14:17:41 102
原创 cJSON 的使用与解析-复杂二维数组替换
实例:{"FENCE_CONFIG": { "CHANNEL_INTERVAL": "100" "CHANNEL_ENABLE": [["1", "0", "0", "0", "0", "0", "0", "0&qu
2019-01-04 13:49:15 3886 3
原创 python中列表 元组 字典 集合的区别
列表 元组 集合 字典 英文 list tuple set dict 定义 定义[],数据之间使用,分割 定义(),数据之间用,分割 定义用 {} 或 set() 字典的每个键值 key=>value 对用冒号 : 分割,每个键值对之间用逗号 , 分割 是否可读写 读写 只读 读写 ...
2018-12-14 10:23:23 2443 2
原创 I/O复用
I/O复用典型使用网络应用场所1、当客户处理多个描述符(通常是交互式输入和网络套接字)时,必须使用I/O复用,2、一个客户同时处理多个套接字是可能的 3、如果一个TCP服务器既要处理监听套接字,又要处理已连接套接字4、一个服务器既要处理TCP,又要处理UDP5、如果一个服务器要处理多个服务或者多个协议I/O模型阻塞式I/O非阻塞式I/OI/O复用(select和poll)信号驱动式I/O(SIGI...
2018-06-08 17:56:05 161
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人