自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

fei的专栏

C/C++/Go Linux/Web 全栈之路

  • 博客(39)
  • 资源 (9)
  • 收藏
  • 关注

转载 LVS的DR模式

1.LVS集群采用IP负载均衡技术和基于内容请求分发技术。调度器具有很好的吞吐率,将请求均衡地转移到不同的服务器上执行,且调度器自动屏蔽掉服务器的故障,从而将一组服务器构成一个高性能的、高可用的虚拟服务器。2.三个主要组成部分:负载调度器(load balancer),它是整个集群对外面的前端机,负责将客户的请求发送到一组服务器上执行,而客户认为服务是来自一个IP地址上的。它可以是

2016-04-12 16:34:49 972

原创 FTP连接报错530 Permission denied解决方法

虚拟机装好RedHat后,准备使用filezilla连接,输入IP地址,root用户,密码,快速连接,报错: 530 Permission denied。 故障排除: 1.首先检查系统是否开启了vsftp服务,如果没有开启,先开启该服务。2.查看配置 vsftpd的配置,配置文件中限定了vsftpd用户连接控制配置。vsftpd.ftpusers:位于/etc/vsftpd

2016-04-30 11:00:38 125949 1

原创 C++友元类

1. 如何在一个模板类中访问一个具体实例类中的私有成员?举例如下模板类定义:#ifndef __N_H__#define __N_H__#include #include #include using namespace std; template class N{public: void fun(T&t); N(int sn);private:

2016-04-28 09:28:47 446

原创 面试题---博客

http://blog.csdn.net/Hackbuteer1/article/category/899947

2016-04-27 20:49:50 399

转载 线程安全的inet_ntop

找到一个线程安全的函数inet_ntopNAME       inet_ntop - Parse network address structuresSYNOPSIS       #include        #include        #include        const char *inet_ntop(int af, const void *sr

2016-04-26 11:49:30 3003

转载 list容器介绍

list容器介绍相对于vector容器的连续线性空间,list是一个双向链表,它有一个重要性质:插入操作和删除操作都不会造成原有的list迭代器失效,每次插入或删除一个元素就配置或释放一个元素空间。也就是说,对于任何位置的元素插入或删除,list永远是常数时间。常用函数(1)    构造函数list c:创建一个空的listlist c1(c2):复制另一个

2016-04-26 09:10:10 420

转载 HTTP响应头和请求头信息对照表

HTTP请求头提供了关于请求,响应或者其他的发送实体的信息。HTTP的头信息包括通用头、请求头、响应头和实体头四个部分。每个头域由一个域名,冒号(:)和域值三部分组成。通用头标:即可用于请求,也可用于响应,是作为一个整体而不是特定资源与事务相关联。请求头标:允许客户端传递关于自身的信息和希望的响应形式。响应头标:服务器和于传递自身信息的响应。实体头标:定义被传送资源的信息。即可用于请求

2016-04-18 16:16:59 512

转载 Go项目目录管理

在Go的官网文档How to Write Go Code中,已经介绍了Go的项目目录一般包含以下几个:src 包含项目的源代码文件;pkg 包含编译后生成的包/库文件;bin 包含编译后生成的可执行文件。可以通过下面的例子来说明工程目录的组织管理。(Windows 7 64位,go version go1.3.3 windows/amd64)1. 创建一个库文件

2016-04-15 14:20:21 2034

转载 Go项目的目录结构

项目目录结构如何组织,一般语言都是没有规定。但Go语言这方面做了规定,这样可以保持一致性1、一般的,一个Go项目在GOPATH下,会有如下三个目录:|--bin|--pkg|--src其中,bin存放编译后的可执行文件;pkg存放编译后的包文件;src存放项目源文件。一般,bin和pkg目录可以不创建,go命令会自动创建(如 go install),只需要创建src目录即可

2016-04-15 14:18:35 3254

转载 在Linux系统中安装Go语言的详细教程

Go (也叫 "golang")是一款由Google最初开发的编程语言。它自诞生就有几个设计原则:简单性、安全性和速度。Go语言发行版拥有各种调试、测试、调优和代码审查工具。如今Go语言和它的工具链在大多数Linux发行版的基础仓库都可用,用默认的包管理器就可以安装。在Ubuntu、Debian 或者 Linux Mint上安装Go语言下面是在基于Debian的发行版上使用apt-get来

2016-04-15 11:37:15 4127

转载 GO语言LiteIDE的安装使用

一、安装golang1.2.21.3及1.3.1编译生成的二进制文件,无法使用LiteIDE23.2携带的gdb7.7进行调试。二、安装及配置LiteIDE将liteidex23.2.windows.7z解压到D:\即完成安装。 2.1 设置编辑环境因为是64位环境,所以选择“win64”。查看->编辑环境变量,确认G

2016-04-15 11:35:22 3177

转载 关于GOROOT、GOPATH、GOBIN、project目录

GOROOT、GOPATH、GOBIN、project目录前言:我觉得java程序员学golang很容易上手。关于GOROOT、GOPATH、GOBIN这些环境变量的设置,我隐约感觉到了java的影子(尽管我是一个C++程序员),唯一和java不同的是不能设置“.”。另外,golang的设计也很明显的透露着“约定优于配置”的原则。这在java很多框架里面很常见。golang的环

2016-04-15 11:34:22 2394

转载 epoll网络编程实例

在前面已经经过了PPC、TPC、select之类( TPC就是使用进程处理data,TPC就是使用线程处理 ),前面两个的缺点大家应该都是知道的是吧,对于select( 其实poll和他差不多 ),缺点是能同时连接的fd是在是不多,在linux中一般是1024/2048,对于很大的服务器来说是不够的!当然我们可以自己修改其值!但是效率上就会下降!       对于改进poll的epoll来

2016-04-14 20:42:44 756

原创 N个数,求第K大数

今天同学给我出了一道题是这样的:有n个不重复的数,这n个数可以放入内存中,让你用最快的方法找到第k大的数。解答:一般情况我们可能考虑,先将n个数排序(快排序、堆排序),然后可以得到结果。但是当n很大时这样做的效率会很低。所以我们提出一种更高效的方法:利用快速排序的特点:第一遍排序会确定一个数的位置,这个数左边都比它大,右边都比他小(降序),当左边区间大于K时,说明我

2016-04-14 20:40:22 1151 1

转载 C++中 vector、list、deque、set、map的底层实现

stl容器区别: vector list deque set map-底层实现stl容器区别: vector list deque set map (转)在STL中基本容器有: vector、list、deque、set、mapset 和map都是无序的保存元素,只能通过它提供的接口对里面的元素进行访问set:集合, 用来判断某一个元素是不是在一个组里面,使

2016-04-14 20:30:24 6654

转载 MySQL Create Table语句的应用与语法

以下的文章主要介绍的是MySQL Create Table语句的实际用法与MySQL Create Table语句的基本语法的介绍,如果你对其具体的操作步骤感兴趣的话,你就可以对以下的文章来一个“大阅兵”。MySQL中create table语句的基本语法是:CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name [(crea

2016-04-14 20:26:35 1578

转载 std::map::erase的用法及陷阱

方法一:std::map mapTest;bool TestVal(const std::string & val);......std::map::iterator it = mapTest.begin();while(it != mapTest.end()){ if(TestVal(it->second)) {

2016-04-14 20:24:27 2596

转载 深入理解C++的动态绑定和静态绑定

为了支持c++的多态性,才用了动态绑定和静态绑定。理解他们的区别有助于更好的理解多态性,以及在编程的过程中避免犯错误,需要理解四个名词:1、对象的静态类型:对象在声明时采用的类型。是在编译期确定的。2、对象的动态类型:目前所指对象的类型。是在运行期决定的。对象的动态类型可以更改,但是静态类型无法更改。关于对象的静态类型和动态类型,看一个示例:[C++] view

2016-04-14 20:16:17 425

转载 C++匿名命名空间

今天得到来自google的老大的指点,学习了一个新的用法:匿名命名空间。C++另外有一种匿名的命名空间,来保证生成的符号是局部的,这样对于匿名空间中的变量等,外部都是不可见的.//test3.cppstatic void bar(){}namespace //匿名的命名空间{ float bar2; int foo;}//test4.cppextern

2016-04-14 20:14:02 1249

转载 __attribute__((packed))的作用

__attribute__((packed))的作用  在结构体变量的声明中,经常可以看到__attribute__((packed))修饰符。这是做什么用的呢?请看一下程序:#define u8 unsigned char#define u16 unsigned short#define u32 unsigned intint main(){ struc

2016-04-14 20:12:27 541

转载 tcp_tw_recycle和tcp_timestamps导致connect失败问题

近来线上陆续出现了一些connect失败的问题,经过分析试验,最终确认和proc参数tcp_tw_recycle/tcp_timestamps相关; 1. 现象     第一个现象:模块A通过NAT网关访问服务S成功,而模块B通过NAT网关访问服务S经常性出现connect失败,抓包发现:服务S端已经收到了syn包,但没有回复synack;另外,模块A关闭了tcp timestamp,而模

2016-04-14 20:09:11 2113

转载 epoll介绍

在linux的网络编程中,很长的时间都在使用select来做事件触发。在linux新的内核中,有了一种替换它的机制,就是epoll。相比于select,epoll最大的好处在于它不会随着监听fd数目的增长而降低效率。因为在内核中的select实现中,它是采用轮询来处理的,轮询的fd数目越多,自然耗时越多。并且,在linux/posix_types.h头文件有这样的声明:#define __

2016-04-14 20:03:52 455

转载 领导者-追随者模型介绍

领导者-追随者模型介绍这几天翻了些文章,发现对领导者/追随者模型说的比较少,下面就这个模型打个比方:话说一个地方有一群有组织无纪律的人从事山贼这个很有前途的职业。一般就是有一个山贼在山路口察看,其他人在林子里面睡觉。假如发现有落单的过往客商,望风的山贼就会弄醒一个睡觉的山贼,然后自己去打劫。醒来的山贼接替作望风的事情。打劫的山贼搞定以后,就会去睡觉,直到被其他望风的山贼叫醒来望

2016-04-14 19:45:36 2685

转载 几种经典的网络服务器架构模型的分析与比较

前言事件驱动为广大的程序员所熟悉,其最为人津津乐道的是在图形化界面编程中的应用;事实上,在网络编程中事件驱动也被广泛使用,并大规模部署在高连接 数高吞吐量的服务器程序中,如 http 服务器程序、ftp 服务器程序等。相比于传统的网络编程方式,事件驱动能够极大的降低资源占用,增大服务接待能力,并提高网络传输效率。关于本文提及的服务器模型,搜索网络可以查阅到很多的实现代码,所以,本文

2016-04-14 19:44:19 561

转载 使用 libevent 和 libev 提高网络应用性能

构建现代的服务器应用程序需要以某种方法同时接收数百、数千甚至数万个事件,无论它们是内部请求还是网络连接,都要有效地处理它们的操作。有许多解决方 案,但是 libevent 库和 libev 库能够大大提高性能和事件处理能力。在本文中,我们要讨论在 UNIX® 应用程序中使用和部署这些解决方案所用的基本结构和方法。libev 和 libevent 都可以在高性能应用程序中使用,包括部署在 IBM C

2016-04-14 19:43:20 424

原创 centos下configure zeromq-4.1.2时错误解决方法

1、前言  MQ(message queue)是消息队列的简称,可在多个线程、内核和主机盒之间弹性伸缩。ZMQ的明确目标是“成为标准网络协议栈的一部分,之后进入Linux内核”。现在还未看到它们的成功。但是,它无疑是极具前景的、并且是人们更加需要的“传统”BSD套接字之上的一 层封装。ZMQ让编写高性能网络应用程序极为简单和有趣。2、安装过程(1)下载最新的ZeroMQ:h

2016-04-14 19:31:42 938

转载 亿级Web系统搭建——单机到分布式集群

当一个Web系统从日访问量10万逐步增长到1000万,甚至超过1亿的过程中,Web系统承受的压力会越来越大,在这个过程中,我们会遇到很多的问题。为了解决这些性能压力带来问题,我们需要在Web系统架构层面搭建多个层次的缓存机制。在不同的压力阶段,我们会遇到不同的问题,通过搭建不同的服务和架构来解决。  Web负载均衡  Web负载均衡(Load Balancing),简单地说就是给我

2016-04-14 17:21:31 473

转载 windows下nginx安装、配置与使用

目前国内各大门户网站已经部署了Nginx,如新浪、网易、腾讯等;国内几个重要的视频分享网站也部署了Nginx,如六房间、酷6等。新近发现Nginx 技术在国内日趋火热,越来越多的网站开始部署Nginx。    相比apeach、iis,nginx以轻量级、高性能、稳定、配置简单、资源占用少等优势广受欢迎。1)下载地址:  http://nginx.org2)启动

2016-04-14 16:39:03 462

转载 NAT原理

这是做路由器的时候,学习网络地址转换Network Address Translation后的一些理解整理,主要通过实例和图表的方式展示了NAT的工作原理和每个阶段的状态。本文的NAT是基本于Linux下的iptables命令实现。1 概述1.1 简介NAT英文全称是“Network Address Translation”,中文意思是“网络地址转换”,它是一个IETF(I

2016-04-13 11:50:17 3739

转载 TCP的TIME_WAIT快速回收与重用

声明一点:Linux中是无法修改tcp的TIME_WAIT值的,除非重新编译,起码我是没有找到怎么改。值得注意的是,net.ipv4.tcp_fin_timeout这个参数是FIN_WAIT_2的值,而不是TIME_WAIT的值。我不知道为何很多人都会把它当成是TIME_WAIT的值,想了一下,我觉得是两点:1.TIME_WAIT过于耀眼,以至于所有出现timeout,加上里面有个tcp的

2016-04-13 00:25:57 1496

转载 TCP协议疑难杂症全景解析

说明:1).本文以TCP的发展历程解析容易引起混淆,误会的方方面面2).本文不会贴大量的源码,大多数是以文字形式描述,我相信文字看起来是要比代码更轻松的3).针对对象:对TCP已经有了全面了解的人。因为本文不会解析TCP头里面的每一个字段或者3次握手的细节,也不会解释慢启动和快速重传的定义4).除了《TCP/IP详解》(卷一,卷二)以及《Unix网络编程》以及Linux源代码之外,

2016-04-13 00:20:39 625

转载 C++ 对象的内存布局(下)

C++ 对象的内存布局(下) 陈皓http://blog.csdn.net/haoel  <<<点击这里查看上篇 重复继承 下面我们再来看看,发生重复继承的情况。所谓重复继承,也就是某个基类被间接地重复继承了多次。 下图是一个继承图,我们重载了父类的f()函数。  其类继承的源代码如下所示。其中,每个类都有两个变量,一个是整形(4字节

2016-04-12 21:45:28 244

转载 C++ 对象的内存布局(上)

C++ 对象的内存布局(上) 陈皓http://blog.csdn.net/haoel  点击这里查看下篇>>>前言 07年12月,我写了一篇《C++虚函数表解析》的文章,引起了大家的兴趣。有很多朋友对我的文章留了言,有鼓励我的,有批评我的,还有很多问问题的。我在这里一并对大家的留言表示感谢。这也是我为什么再写一篇续言的原因。因为,在上一篇文章中,我用了的示例都是非

2016-04-12 21:43:40 253

转载 C++ 虚函数表解析

C++ 虚函数表解析 陈皓http://blog.csdn.net/haoel  前言 C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是一种泛型技术。所谓泛型技术,说白了就是试图使用不变的代码来实现可变的算法。比如:模板技术,R

2016-04-12 21:41:04 309

转载 C++中虚函数的作用是什么?它应该怎么用呢?

虚函数联系到多态,多态联系到继承。所以本文中都是在继承层次上做文章。没了继承,什么都没得谈。下面是对C++的虚函数这玩意儿的理解。一, 什么是虚函数(如果不知道虚函数为何物,但有急切的想知道,那你就应该从这里开始)简单地说,那些被virtual关键字修饰的成员函数,就是虚函数。虚函数的作用,用专业术语来解释就是实现多态性(Polymorphism),多态性是将接口与实现进行分离;用形象的语言来解释

2016-04-12 21:25:47 2447

转载 非阻塞connect()

如何设置socket的Connect超时(linux)  [From]http://dev.cbw.com/c/c/200510195601_4292587.shtml1.首先将标志位设为Non-blocking模式,准备在非阻塞模式下调用connect函数2.调用connect,正常情况下,因为TCP三次

2016-04-12 21:23:30 945

原创 tcpcopy

项目地址https://github.com/wangbin579/tcpcopy

2016-04-12 17:19:02 640

转载 linux下C与C++混合编程

首先,混合编程不是指在同一个文件里写C与C++。 比如说想在同意文件里同时 弱类型检查,又强类型检查,那真够呛。混合编程包括:1,C++引用C的头文件;2,g++生成的.o与gcc生成的.o相链接。1,在用C语言写的头文件中,经常加上如下 保护宏定义:/*    example.h*/#ifndef EXAMPLE_H_#define

2016-04-05 16:28:39 4125 3

原创 Makefile通用模板

假设目录结构如下src    |-------include    |-------Makefile============================CC=gccCXX=g++CFLAGS=-IincludeCXXFLAGS=-IincludeLDFLAGS=-lpthread -lrt -lmSRCDIRS=srcOBJP

2016-04-01 10:42:56 828

zeromq-Use ZeroMQ and learn how to apply different message patterns.pdf

zeromq-Use ZeroMQ and learn how to apply different message patterns.pdf

2016-01-03

Go Programming Blueprints - Mat Ryer - 2015 (1).pdf

Go Programming Blueprints - Mat Ryer - 2015 (1).pdf

2015-11-26

The-Golang-Standard-Library-by-Example-master.zip

The-Golang-Standard-Library-by-Example-master.zip

2015-11-26

Effective Go (中文版).pdf

Effective Go (中文版).pdf

2015-11-26

makefile说明手册

makefile说明手册,

2014-10-26

利用剪贴板实现进程之间的通信

该程序包括一个发送端和一个接收端窗口,发送端窗口将数据放到剪贴板中,然后接收端窗口就可以从剪贴板将数据读出,进而实现了两个进程之间的通信

2010-10-15

使用多线程模拟火车站售票系统

程序模拟了火车站售票系统,程序中使用了多线程的实现方法,并用多种方法实现了线程的同步,麻雀虽小,五脏俱全。

2010-10-09

空空如也

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

TA关注的人

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