自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Swallow_he的博客

终身学习,乐在其中

原创 grep 查找过滤特定字符串并进行统计

1、【得到指定log文件关键字userRunningInfo对应的日志】 grep userRunningInfo ./WebSocketServer-2020-05-15.log 2、【得到指定log文件中HELLO 的所有userRunningInfo信息】 grep HELL...

2020-05-15 10:49:12 76 0

原创 阿里云-获取实例元数据

实例元数据介绍 实例元数据包含了ECS实例在阿里云系统中的基本信息,例如实例ID、IP地址、网卡MAC地址和操作系统类型等。实例还支持动态实例元数据项,动态实例元数据是在实例初次启动以后产生或自定义的数据,目前包括系统事件、实例标识和实例自定义数据。 获取实例元数据 1、远程连接实例 2、...

2020-04-23 17:17:11 57 0

原创 AWS EC2的meta-data 配置说明(实例元数据)

在EC2实例中有一个魔法IP169.254.169.254,通过访问这个ip,能获得许多与这个实例相关的信息,这些信息被称为meta-data。 我们在EC2的实例上发送:curl http://169.254.169.254/latest/meta-data/ 就可以看到相关的meta-da...

2020-04-23 17:06:28 86 0

原创 如何得到AWS EC2 instance的外网ip

在EC2实例发送请求:http://169.254.169.254/latest/meta-data/public-ipv4

2020-04-22 17:17:38 60 0

原创 C++获取URL中主机域名

std::string SplitHostDomain(const std::string& str) { if (!!str.compare(0,5,"http:")) { size_t found = str.find_fir...

2019-09-25 17:56:23 326 0

原创 wolfssl替换openssl

在嵌入式工程中,为了实现一个小的功能,引用了一个openssl,编译生成的固件太大了,flash装不下了。而wolfssl在满足基本需求的同时,又能大大减小固件的大小。wolfssl以前称为cyassl,它提供了一个针对嵌入式和rtos环境的嵌入式ssl/tls库。它具有完全的客户端和服务器支持,...

2019-09-23 15:58:40 520 0

原创 C/C++简单方法实现drop Caches——释放缓存

可以看出,/proc/sys是一个虚拟文件系统,可以通过对它的读写操作做为与kernel实体间进行通信的一种手段。也就是说可以通过修改/proc中的文件,来对当前kernel的行为做出调整。那么我们可以通过调整/proc/sys/vm/drop_caches来释放内存。其默认数值为0. 向/pro...

2019-08-22 15:50:28 218 0

原创 C/C++获取Linux系统内存使用情况

我们在Linux系统上常常会定时统计系统的Memory信息,从而排查一些其他的问题,在Linux 中,我们可以使用如下方式查看系统情况: (1)free -m (2)cat /proc/meminfo 在程序中我们可以定时统计这些信息,那么我们可以使用如下方式: 方法一:该方法比较...

2019-08-22 15:33:05 698 0

原创 Excel中按照数字和汉字列对所有列排序

今天学医的一个同学发消息说他那大量的Excel的数据想按照数字和汉字那一列数据进行排序,但是不知道怎么操作,于是我就自己给他制作了了比较粗糙的操作教程,希望能够帮助到需要帮助的人吧。也欢迎有较好的方法的留言说明。 我准备了一些用于举例的数据,以下所有的数据列都是按照该数据表而言,在操作时,需要结...

2019-08-17 11:37:26 170 0

原创 Linux编译libcurl依赖openssl和cares

在实际的应用中,我们使用libcurl来封装HttpClient,并且需要满足http,https,以及客户端指定DNS服务器的地址,那么我们需要使得libcurl依赖openssl以及cares。 1、下载源码。 2、解压后进入目录,新建两个目录; (1)mkdir deps ; 进入de...

2019-08-05 10:13:42 346 0

原创 通过https发请求时出现“curle_out_of_memory”错误

在使用libcurl封装的HTTPClient,使用https(443端口)发请求时,遇到返回CURLE_OUT_OF_MEMORY,经过验证发现原因如下: 1、在初始化curl时,有且仅有一次,使用接口:CURLcode ret_code = curl_global_init(CURL_GLO...

2019-07-26 17:41:14 397 2

原创 HTTP之put/post请求头中的Expect:100-continue

在使用curl封装的HTTPClient时,在上传文件的put方法中,通过抓包抓包数据分析,发现在每次真正传输数据之前都必须要收到Server端的响应:HTTP/1.1 100 Continue,这无疑增加了请求的时间; 使用 curl 发送 POST 请求时,如果 POST 数据大于 10...

2019-07-02 15:30:30 723 0

翻译 ios使用VoIP推送通知

过去,VoIP应用程序必须与服务器保持持续的网络连接,才能接收来电和其他数据。这意味着要编写复杂的代码,在应用程序和服务器之间来回发送定期消息,以保持连接的活动性,即使在应用程序不在使用时也是如此。这种技术导致频繁的设备唤醒浪费的能量。这也意味着,如果用户退出VoIP应用程序,将无法再收到来自服务...

2019-07-02 14:21:21 926 0

原创 autogen.sh 的使用

在linux下面的大型工程很多都是makefile管理的,但是随着工程越来越大,makefile编写又成了一个大工程,这个时候出现了两个比较流行的工具,cmake和configure,configure又衍生出来一套automake。 当我们下载第三方开源库时,我们一般使用configure和m...

2019-06-15 17:30:00 970 0

原创 HTTP请求支持keep-alive

1、HTTP短连接 &长连接 所谓短连接,就是每次请求一个资源就建立连接,请求完成后连接立马关闭。每次请求都经过“创建tcp连接->请求资源->响应资源->释放连接”这样的过程。 所谓长连接(persistent connection),就是只建立一次连接,多次资源请...

2019-05-16 11:04:55 413 0

原创 Linux永久后台启动程序nohup commmand &

今天在linux上部署服务程序,我一般想让某个程序在后台运行,于是我将常会用 & 在程序结尾来让程序自动运行,于是在SSH客户端执行./Server &,启动成功,在关闭SSH客户端后,运行的程序也同时终止了,怎样才能保证在推出SSH客户端后程序能一直执行呢?通过网上查找资料,发现...

2019-04-26 13:58:43 192 0

原创 使用c-ares进行DNS域名解析

1、c-ares是一个C语言实现的DNS非阻塞异步解析,libcurl, libevent, gevent, nodejs wireshark都使用了c-ares,因此在一般开发一些服务的客户端Client,在连接服务器Server时,需要做的工作的就是域名解析。 2、源码下载路径:https:...

2019-04-18 17:28:51 765 0

原创 srs提供的rtmp客户端srs-librtmp

1、RTMP握手协议 查看链接 : https://github.com/ossrs/srs/wiki/v1_CN_RTMPHandshake 2、下载srs-master.zip版本 下载地址:https://github.com/ossrs/srs/tree/master 3、SR...

2019-04-10 19:28:14 1472 5

原创 最好用的Hash

uint32_t hashCode(const char * guid) { const char *keys = guid; uint32_t hash = 0; uint32_t size = strlen(keys); for (uint32_t i = 0; i < si...

2019-03-29 20:31:28 108 0

原创 C/C++ windows 获取CPU数

#ifdef WIN32 #include <windows.h> #endif // WIN32 static int kProcessorNum =0; int GetProcessorNum() { #ifdef WIN32 kProcessorNum = 2; SYST...

2019-03-28 13:43:56 305 0

原创 Linux中获取CPU数目确定多线程数

在实际的项目中,尤其是服务器端,需要多线程来处理业务,我们除了可以在配置文件中配置thread number,还可以根据系统CPU 数目来确定甚至是分配线程数。 int GetProcessorNum() { FILE *fstream=NULL; char buff[1024]; m...

2019-03-28 13:35:39 187 0

原创 C++如何获取服务器内网IP地址[Windows+Linux]

在实际的项目运用中,我们往往需要绑定本机的IP和端口号,或者作为服务器需要将自己的IP信息更新至数据库中,便于其他其中通过查询数据库得到地址从而发数据,如果我们把它做成智能的获取本机的IP,这样我们的代码的可移植性就提高了。下面就介绍一种在windows和linux下面可以智能获取我们本机的局域网...

2019-03-26 20:10:35 335 0

原创 JWT之token生成和解析鉴权验证[C++]

实现Token的方式有很多,本篇介绍的是利用Json Web Token(JWT)生成的Token.JWT生成的Token有什么好处呢? 安全性比较高,加上密匙加密而且支持多种算法。 携带的信息是自定义的,而且可以做到验证token是否过期。 验证信息可以由前端保存,后端不需要为保存toke...

2019-03-20 14:00:25 760 0

原创 使用nmcli network-manager管理wifi网络

在日常的工作中,我们需要给设备连接wifi等,不同的供应商提供的配置网络的方式也不同,以nmcli为例,进行说明。 (1)使用 nmtui 可以在命令行界面进行网络配置 比如: 连接wifi:nmcli dev wifi connect wifiname password wifipassw...

2019-02-18 17:05:14 1029 0

原创 使用-section等参数实现对库的裁剪,从而减小程序体积

在实际的项目里面,产品中除去系统加载使用的空间外,留给具体的功能应用程序的空间较小,因此需要对应用程序用到的库进行裁剪。比如在实际的项目中,应用程序和库一共14M,最后进行裁剪,减少了6-7M 对于空间有限,使用的库较多(依赖的第三方开源库openssl等)占用体积较大,我们如果使用动态库(.s...

2019-02-15 18:06:42 378 1

原创 压抑的西安互联网环境,你有纠结辞职吗?

在时代的浪潮面前,依赖于外界的所谓安全感已经变得越来越脆弱。因此我们一直明白,除了内心信念这种形而上学的东西,真实的生活还是要脚踏实地。在春节回家的火车上,遇到一个从外地回西安的程序员,他也刚毕业三四年,我故意问他,有打算会西安发展的想法吗?他对我讲,西安的环境让人很压抑,目前不打算回来。他讲的还...

2019-02-13 13:30:39 299 3

原创 UDP客户端发送结构体数据,调用recvfrom函数阻塞问题

1.当我们想发送一个结构体给服务端时,如果该结构体是字节对齐,那么无需考虑大小端的转换 比如: typedef struct OpenMessage {     int32_t  SessionType;     int32_t  SessionId;     int64_t  TimeSta...

2019-01-29 16:14:06 736 0

原创 使用libcurl遇到的坑

1、当断网或者网络较差,上传文件、下载文件或者和HTTP请求等出现死锁 需要设置一些超时等参数,如下: curl_easy_setopt(curl, CURLOPT_CONNECTTIMEOUT, 10L);     /* abort if slower than 1 bytes/sec du...

2019-01-25 17:16:06 440 0

原创 产品和技术,你选对了吗?

互联网的发展史,到今天可以简短的划分为三个时代:技术驱动时代、产品驱动时代、运营驱动时代。三个时代对应的三股不同的驱动力量。 当一项技术刚刚问世的时候,我们是不能期望它是否方便使用的,因为此时关注的焦点是“有还是没有”,而不会“丑还是美”。Email没有界面和交互可言,但它代表着两台电脑的连接和...

2019-01-25 16:00:14 256 1

原创 Linux 虚拟内存和物理内存

         操作系统为了屏蔽I/O底层的差异,创建了VFS(虚拟文件系统),为了屏蔽I/O层与内存之间的差异,产生了虚拟内存。为了屏蔽cpu与内存之间的差异,创建了进程。每个程序运行起来都会拥有一个自己的虚拟地址空间,32位cpu的操作系统,它是一个4GB的内存地址块,其地址线也为32位,所...

2018-12-28 17:37:05 609 0

原创 TinyXml2解析xml用法例子

1、认识 在使用之前,先大致了解一下TinyXml2结构,只有清楚地知道这些类都指什么内容,那么在解析任何xml时,都可以很好利用TinyXml2中提供的API。 比如如下的xml: <?xml version="1.0" encoding="UTF-...

2018-12-25 14:44:40 410 0

原创 MQTT的实际应用

1、MQTT简介 MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议),是一种基于发布/订阅(publish/subscribe)模式的轻量级协议,该协议构建于TCP/IP协议之上,MQTT是一个基于客户端-服务器的消息发布/订阅传输协议。 ...

2018-12-22 15:45:07 1417 0

原创 LTE基本认识

1、LTE网络的构成 主要包括4部分:UE(User Equipment,比如手机端或者其他可以利用LTE上网的设备)、E-UTRAN(各个基站)、EPC(运营商的核心网服务器)和 PDN(网络上的服务器)  (1)eNB(eNodeB)   为用户提供空中接口(air interfac...

2018-12-13 10:46:31 721 0

原创 C++类里面定义一个指向自己的静态成员指针变量(实现单例)

1、使用方法 我们在头文件中声明一个如下的类,定义一个指向该类自己的静态成员指针变量kpHttpClientInstance; class CHttpClient { public:       CHttpClient();     ~CHttpClient();     static CH...

2018-11-26 18:17:39 2505 0

原创 TCP/UDP的接收缓冲区和发送缓冲区

1、TCP. SO_RCVBUF &amp; TCP. SO_SNDBUF 每个TCP socket在内核中都有一个发送缓冲区和一个接收缓冲区,TCP的全双工的工作模式以及TCP的流量(拥塞)控制便是依赖于这两个独立的buffer以及buffer的填充状态。 1.1 接收端冲区 接收...

2018-11-23 15:25:30 2853 0

原创 C++设计技巧(一)之两个类互相拥有对方的对象指针

1、在实际的运用中我们也会用到如下的类关系: class B; class A { int i; B *lpb; } class B { int i; A* lpa; } 注意:一般来说,两者的定义,至少有一方是使用指针,或两者都使用指针,但是决不能两者都定义实体对象。 这样的实现,通...

2018-11-22 21:40:39 459 0

原创 跨平台方法(一):获取文件大小(参数为文件url)

在一些实际的项目中,我们需要去计算某目录下的某个文件的大小,从而继续后续的业务; 如下的方法是各个平台通用的方法,简洁实用,已经验证和测试过: #include &lt;stdint.h&gt; #include &lt;stdio.h&gt; #includ...

2018-11-20 18:11:58 368 0

原创 Windows中使用socket实现网络编程

1、客户端和服务端最基本的数据交互过程如下图所示,按照图中的API调用顺序: 2、最简单的测试用例: (1)客户端 #include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; #include &lt;W...

2018-11-19 18:42:49 377 1

原创 Linux中Netlink实现热插拔监控——内核与用户空间通信

1、什么是NetLink?  它 是一种特殊的 socket,它是 Linux 所特有的,由于传送的消息是暂存在socket接收缓存中,并不被接收者立即处理,所以netlink是一种异步通信机制。 系统调用和 ioctl 则是同步通信机制。Netlink是面向数据包的服务,为内核与用户层搭建了一...

2018-11-14 21:05:10 3116 0

原创 【万圣狂欢夜】“状”神弄鬼,一起“妖”约

嗨,伙伴们,每个人都有机会写一次公司活动的通讯稿,这不,这一次该我啦; 如果你也需要写万圣节的通讯稿,可以参考喔❤,我真是小机灵鬼,那你是什么鬼?为何在我心里阴魂不散啦,哈哈;                                                           ...

2018-11-08 20:40:38 184 0

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