自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(48)
  • 收藏
  • 关注

原创 编译报错“/usr/bin/ld: 找不到 -lm /usr/bin/ld: 找不到 -lpthread /usr/bin/ld: 找不到 -lxxx ”的解决办法

​编译报错...gcc -pthread -g -O2 -static -o ndpiReader ndpiReader.o ndpi_util.o ../src/lib/libndpi.a -lpcap -lm /usr/bin/ld: 找不到 -lm/usr/bin/ld: 找不到 -lpthread/usr/bin/ld: 找不到 -lc解决办法:yum ...

2018-12-04 10:54:20 5246 2

转载 修改docker0默认ip

Docker 服务启动后默认会创建一个 docker0 网桥(其上有一个 docker0 内部接口),它在内核层连通了其他的物理或虚拟网卡,这就将所有容器和本地主机都放到同一个物理网络。  Docker 默认指定了 docker0 接口 的 IP 地址和子网掩码,让主机和容器之间可以通过网桥相互通信,它还给出了 MTU(接口允许接收的最大传输单元),通常是 1500 Bytes,或宿主主机网络...

2018-11-16 14:52:10 2330

原创 bfd部署实例

BFD简介         双向转发检测BFD(Bidirectional Forwarding Detection)是一套全网统一的检测机制,用于快速检测、监控网络中链路或者IP路由的转发连通状况。为改善网络性能,相邻系统之间应能快速检测到通信故障,更快地建立起备用通道恢复通信。现网场景说明,拓扑图如下:企业网出口路由器R1存在两条访问互联网的线路,一个是连接到电信,另一个是连接...

2018-07-20 14:47:01 9345

原创 bfd简介

  BFD(双向转发检测)一、背景1、IGP路由的收敛时间构成:(1). 失效链路检测时间。(2). 报告拓扑变化的新LSA/LSP的泛洪时间。(3). 各路由器的路由表计算时间(包括SPF计算时间和路由表计算及线卡FIB更新时间)。 2、一般路由协议的慢Hello机制,故障检测只是其功能之一。比如ospf协议hello报文作用:(1)、  发现 OSPF ...

2018-07-20 14:01:15 23145

转载 A记录和CNAME记录的区别

1、什么是域名解析?域名解析就是国际域名或者国内域名以及中文域名等域名申请后做的到IP地址的转换过程。IP地址是网路上标识您站点的数字地址,为了简单好记,采用域名来代替ip地址标识站点地址。域名的解析工作由DNS服务器完成。2、什么是A记录?A (Address) 记录是用来指定主机名(或域名)对应的IP地址记录。用户可以将该域名下的网站服务器指向到自己的web server上。同时也可以设置您域...

2018-07-09 15:57:23 310

转载 C++数学、信号处理相关库

C++数学、信号处理相关库C++数学、信号处理相关库1.Eigen2.Armadillo3.GNU Scientific Library (GSL)4.IT++5.Template Signal Processing Library6.FFTW7.FLINT8.C语言开发中支持正则表达式前言:因需要对信号进行处理,收集一些相关库。1.Eigen是一个线性算术的C++模板库,包括:vectors, ...

2018-07-09 15:56:55 4123

转载 C++中istream的使用

在项目中会经常用到读取一些配置数据,这些数据根据实际需要有可能会调整,如果将这些数据直接嵌入进代码中会非常不便,需要经常调整代码。将这些数据写入配置文件中然后在读入,如果需要调整,只需修改配置文件,code不用作任何改动,这样会非常方便。最常用到的读取配置文件的方式是使用istream类。std::istream: input stream. Input stream objects can re...

2018-07-09 15:56:27 10160

原创 centos /dev/mapper/cl-root 100% 解决方法

find / -type f -size +1024000k -exec du -h {} \;查看大文件,然后暴力删除

2018-05-30 11:09:03 6970

转载 c编译时的错误:程序中有游离的‘\240’‘\302’‘\XXX 时解决方案

偶尔从网上看到不错的源码,想研究下,不幸编译时遇到“错误:程序中有游离的‘\240’‘\302’”之类的错误,大量的源码不可能再全部重敲一遍,经过一番研究,终于让我找到简单的解决方案,还是本着让后人少走弯路的想法,分享下:首先,编译器提示的\xxx,都是8进制的编码,使用sed做下全文替换,命令如下:sed -i 's/\o240\|\o302//g'  filename.cpp

2018-05-02 19:14:06 490

原创 Failed to start OpenSSH server daemon.

ssh

2018-04-26 11:12:24 3699

原创 sys/capability.h :没有那个文件或目录

安装开发库 开发库libcap-devel

2018-04-23 09:44:14 8545 2

转载 boost------asio库的使用2(Boost程序库完全开发指南)读书笔记

网络通信 asio库支持TCP、UDP、ICMP通信协议,它在名字空间boost::asio::ip里提供了大量的网络通信方面的函数和类,很好地封装了原始的Berkeley Socket Api,展现给asio用户一个方便易用且健壮的网络通信库。ip::tcp类是asio网络通信(TCP)部分主要的类,但它本身并没有太多的功能,而是定义了数个用于TCP通信的typedef类型,用来协作完成网络通信

2018-04-04 14:16:34 265

转载 boost::asio编程-同步UDP

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/anda0109/article/details/41981799同步UDP比较简单,直接看例子:#include "stdafx.h" #include "boost/asio.hpp" #include "boost/shared_ptr.hpp" #include "boost/thr

2018-04-04 11:18:10 742

转载 boost::thread编程-线程组

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/anda0109/article/details/41944927thread库提供thread_group类用于管理一组线程,就像一个线程池,它内部使用std::listclass thread_group::private noncopyable { public: templa

2018-04-04 11:14:39 485

转载 boost::thread编程-线程本地存储

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/anda0109/article/details/41960615有时候函数使用了局部静态变量或全局静态变量,因此不能用于多线程环境,因此无法保证静态变量在多线程重入时的正确操作。 boost::thread库使用thread_specific_ptr实现了可移植的线程本地存储机制(thread lo

2018-04-04 11:12:40 410

转载 boost::asio编程-同步TCP

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/anda0109/article/details/41978775boost.asio库是一个跨平台的网络及底层IO的C++编程库,它使用现代C++手法实现了统一的异步调用模型。 boost.asio库支持TCP、UDP、ICMP通信协议。 下面介绍同步TCP模式:大家好!我是同步方式!我的主要特点

2018-04-04 10:43:30 264

转载 boost::asio编程-异步TCP

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/anda0109/article/details/41979627大家好,我是异步方式和同步方式不同,我从来不花时间去等那些龟速的IO操作,我只是向系统说一声要做什么,然后就可以做其它事去了。如果系统完成了操作, 系统就会通过我之前给它的回调对象来通知我。在ASIO库中,异步方式的函数或方法名称前面都有

2018-04-04 10:35:38 358

转载 BitTorrent协议规范(BitTorrent Protocol Specification)之Tracker HTTP/HTTPS Protocol-第三部分

Tracker HTTP/HTTPS Protocol Tracker是一个响应HTTP GET请求的HTTP/HTTPS服务。这个请求包含来自客户端的度量信息,这些信息能够帮助Tracker全面地统计torrent。Tracker的响应包含一个peers列表,这个列表能够帮助客户端加入到torrent中。Base URL由元数据文件(即以.torrent为后缀的文件)中定义的announce U

2018-04-02 09:59:08 660

转载 大端模式与小端模式

大端模式与小端模式  一、概念及详解  在各种体系的计算机中通常采用的字节存储机制主要有两种: big-endian和little-endian,即大端模式和小端模式。  先回顾两个关键词,MSB和LSB:  MSB:Most Significant Bit ——- 最高有效位 LSB:Least Significant Bit ——- 最低有效位  大端模式(big-edian)

2018-03-29 09:46:10 252

转载 boost库asio详解5——resolver与endpoint使用说明

tcp::resolver一般和tcp::resolver::query结合用,通过query这个词顾名思义就知道它是用来查询socket的相应信息,一般而言我们关心socket的东东有address,port而已,通过tcp::resolver很容易实现设置和查询,它通过query把字符串格式的ip如192.168.0.200或主机名http://localhost,端口“8080”等转化成soc

2018-03-28 09:42:44 7884

转载 getifaddrs()和struct ifaddrs的使用,获取本机IP

ifaddrs结构体定义如下:struct ifaddrs { struct ifaddrs *ifa_next; /* Next item in list */ char *ifa_name; /* Name of interface */ unsigned int ifa_flags; /* Flag

2018-03-21 13:54:11 733

转载 主机序和网络序

不同的CPU有不同的字节序类型 这些字节序是指整数在内存中保存的顺序 这个叫做主机序 最常见的有两种: 1. Little endian:将低序字节存储在起始地址 2. Big endian:将高序字节存储在起始地址 LE little-endian 最符合人的思维的字节序 地址低位存储值的低位 地址高位存储值的高位 怎么讲是最符合人的思维的字节序,是因为从人的第一观感来说

2018-03-20 10:27:03 1700

转载 boost::program_options 用法详解

一 program options是一系列pair//linux系统下,编译选项需加上 -lboost_program_options#include <iostream>#include <string>#include <boost/program_options.hpp>namespace bpo = boost::program_options;int main(int argc,

2018-03-20 10:16:33 2723

转载 pugixml例子

<?xml version="1.0" encoding="UTF-8" standalone="no" ?> <Profile FormatVersion="1"> <Tools> <Tool Filename="jam" AllowIntercept="true"> <Description>Jamplus build system

2018-03-20 10:10:33 1013

转载 pugixml 1.8快速入门

pugixml是一个轻量级的C ++ XML操作库。Pugixml包含三个文件pugixml.cpp、 pugixml.hpp 、 pugiconfig.hpp。pugixml.hpp是主头文件,要使用pugixml类及其方法必须将它包含到工程中。pugiconfig.hpp是pugixml的配置文件,例如配置是否使用宽字符模式(#define PUGIXML_WCHAR_MODE)pugixml.

2018-03-19 14:14:42 1493

转载 利用libpcap抓取数据包

概述 libpcap是一个网络数据包捕获函数库,tcpdump就是以libpcap为基础的。 主要作用: 捕获各种数据包,例如:网络流量统计 过滤网络数据包,例如:过滤掉本地上的一些数据,类似防火墙 分析网络数据包,例如:分析网络协议,数据的采集 存储网络数据包,例如:保存捕获的数据以为将来进行分析libpcap的抓包框架 pcap_lookupdev():函数用来查找网络设备,返回可

2018-03-16 16:22:26 917

转载 [进程]capget()/capset() -- 获得/设置进程的权能

#undef _POSIX_SOURCE#include <sys/capability.h>int capget(cap_user_header_t hdrp, cap_user_data_t datap);int capset(cap_user_header_t hdrp, const cap_user_data_t datap);说明: capget() 用来获得进程的权能;capse

2018-03-16 16:10:06 5841

转载 getifaddrs()和struct ifaddrs的使用,获取本机IP

http://canlynet.iteye.com/blog/1440054ifaddrs结构体定义如下: struct ifaddrs { struct ifaddrs ifa_next; / Next item in list */ char ifa_name; / Name of interface */ unsigned

2018-03-15 10:40:01 304

转载 inet_pton()和inet_ntop()函数详解

http://blog.csdn.net/zyy617532750/article/details/58595700 1.把ip地址转化为用于网络传输的二进制数值 int inet_aton(const char *cp, struct in_addr *inp);inet_aton() 转换网络主机地址ip(如192.168.1.10)为二进制数值,并存储在struct in_addr结构中,即

2018-03-15 10:28:23 2909

转载 assert()函数用法总结

http://blog.csdn.net/qq_32175379/article/details/70312657 assert宏的原型定义在<assert.h>中,其作用是如果它的条件返回错误,则终止程序执行,原型定义:#include <assert.h>void assert( int expression );  assert的作用是现计算表达式 expression ,如果其值为假(

2018-03-15 10:01:51 939

转载 stringstream用法总结

http://blog.csdn.net/xw20084898/article/details/21939811 C++引入了ostringstream、istringstream、stringstream这三个类,要使用他们创建对象就必须包含sstream.h头文件。  istringstream类用于执行C++风格的串流的输入操作。 ostringstream类用于执行C风格的串流的输出操

2018-03-14 15:11:36 447

转载 大端字节序和小端字节序

对表示一个对象的字节序列排序,有两个通用的规则。有些机器选择在存储器中按照从最低有效字节到最高有效字节的顺序存储对象,而另一些机器按照从最高有效字节到最低有效字节的顺序存储。前一种规则——最低有效字节在最前面的 方式称为小端法(little endian)。大多数源自以前的Digital Equipment公司(现在是Compaq公司的一部分)的机器,以及Intel的机器都采用这种规则。后一种规则(

2018-03-14 10:30:59 313

转载 socket编程为什么需要htons(), ntohl(), ntohs(),htons() 函数

在C/C++写网络程序的时候,往往会遇到字节的网络顺序和主机顺序的问题。这是就可能用到htons(), ntohl(), ntohs(),htons()这4个函数。网络字节顺序与本地字节顺序之间的转换函数: htonl()--"Host to Network Long" ntohl()--"Network to Host Long" htons()--"Host to Netw

2018-03-13 09:49:29 311

转载 boost::system::error_code ec 用法

// setp 1: 创建一个 io_service实例 boost::asio::io_service svc; // step 2: 创建一个 tcp::socket对象,现在还不能用于收发数据 tcp::socket sock(svc); // step 3: 创建一个指向服务器的地址对象,用于 socket.connect()操作 tcp::endpoint addr(add

2018-03-08 10:18:34 6736

转载 pcap编程深入解析

首先,该文章不限定OS不单针对Winpcap或者libpcap,对于Winpcap的特殊扩展使用了PS标示。       我以前使用过Winpcap,但并没有对pcap开发进行过深入解析。希望这篇文章可以深入浅出的讲清楚这个问题。Pcap是什么?它是个监视器,或者发生器,它可以监视,也可以发生,但它不能拦截。它可以在网络上增加一些消息,但不能阻止已经存在的消息。      获取设备列表

2018-03-07 18:06:31 3707

转载 DPDK与RDMA

DPDK DPDK网络层:硬件中断->放弃中断流程;用户层通过设备映射取包->进入用户层协议栈->逻辑层->业务层;核心技术:1)将协议栈上移到用户态,利用UIO技术直接将设备数据映射拷贝到用户态2)利用大页技术,降低TLB cache miss,提高TLB访问命中率3)通过CPU亲和性,绑定网卡和线程到固定的core,减少cpu任务切换4)通过无锁队列,减少资源的竞争优势:1)减少中断次数;2)

2018-02-05 14:27:08 5016

转载 使用Nginx做负载均衡

原文出处: Steven Vaughan-nichols 译文出处: ChenYi 当然,除非你想干掉你的机器。蜘蛛侠有这样的一句信条,“权力越大,责任越大。” 对于 Linux 系统管理员们来说,这也是一种应当采用的明智态度。不,真的,真心感谢 DevOps 的沟通协作和云编排技术,让一个 Linux 管理员不仅能掌控一台服务器,甚者能控制成千上万台服务器实例。只需要一个愚蠢的举动,你甚至可

2018-01-11 16:01:36 367

转载 绝不要用的 Linux 命令 !

原文出处: Steven Vaughan-nichols 译文出处: ChenYi 当然,除非你想干掉你的机器。蜘蛛侠有这样的一句信条,“权力越大,责任越大。” 对于 Linux 系统管理员们来说,这也是一种应当采用的明智态度。不,真的,真心感谢 DevOps 的沟通协作和云编排技术,让一个 Linux 管理员不仅能掌控一台服务器,甚者能控制成千上万台服务器实例。只需要一个愚蠢的举动,你甚至可

2018-01-09 13:49:01 266

转载 零复制(zero copy)技术

1.1 背景说明:网络数据传输的全过程 在每一次网络io过程,数据都要经过几个缓存,再发送出去。如下图: I/O between OSs以右侧为浏览器,左侧为httpd服务器为例。当httpd服务收到浏览器发送的index.html文件的请求时,负责处理请求的httpd子进程/线程总是会先发起系统调用,让内核将index.html从存储设备中加载出来。但是加载到的位置是内核空间的缓冲区ker

2018-01-09 11:08:31 320

原创 Heartbeat介绍

Heartbeat介绍一、 Heartbeat作用 通过它可以将资源(IP及程序服务等资源)从一台故障计算机快速转移到另一台运转正常的机器继续提供服务,在实际生产应用场景中,heartbeat的功能和另一个高可用开源软件keepalived有很多相同之处。二、 Heartbeat工作原理 通过修改配置文件,指定哪一台Heartbeat服务器作为主服务器,则另一台将自动成为备份服务器。然后在指定备

2018-01-05 16:00:33 3188 1

空空如也

空空如也

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

TA关注的人

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