自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(11)
  • 资源 (2)
  • 收藏
  • 关注

原创 socket编程中对sigpipe信号的处理

我写了一个服务器程序,在Linux下测试,然后用C++写了客户端用千万级别数量的短链接进行压力测试.  但是服务器总是莫名退出,没有core文件.最后问题确定为, 对一个对端已经关闭的socket调用两次write, 第二次将会生成SIGPIPE信号, 该信号默认结束进程.具体的分析可以结合TCP的"四次握手"关闭. TCP是全双工的信道, 可以看作两条单工信道, TCP连接两端的两个端点

2015-08-20 12:45:19 1501

转载 值得学习的C语言开源项目

原文地址:http://coolshell.info/c/c++/2014/12/13/c-open-project.htm- 1. Webbench Webbench是一个在linux下使用的非常简单的网站压测工具。它使用fork()模拟多个客户端同时访问我们设定的URL,测试网站在压力下工作的性能,最多可以模拟3万个并发连接去测试网站的负载能力。Webbench

2015-08-17 09:12:59 624

原创 漫谈网络编程中的容错处理

当我们编写服务器程序时,肯定离不开网络编程。网络编程通俗一点讲,就是接受来自客户端的请求消息,处理并返回相应的回复给客户端。大都时候,我们在传输消息时,都选择了TCP协议。TCP协议提供了可靠的传输,不需要编程人员考虑消息是否送达对方。但是我们往往忽略了可能存在的问题。考虑如下的一个例子        假设有一台缓存服务器,保存了一些简单的键值对。客户端可以连接到服务器,设置键值,或者查询

2015-08-12 17:47:11 1216

原创 http keep-alive与tcp keep-alive

http keep-alive与tcp keep-alive,不是同一回事,意图不一样。http keep-alive是为了让tcp活得更久一点,以便在同一个连接上传送多个http,提高socket的效率。而tcp keep-alive是TCP的一种检测TCP连接状况的保鲜机制。tcp keep-alive保鲜定时器,支持三个系统内核配置参数:echo 1800 > /proc/sys/net

2015-03-14 09:12:09 550

原创 linux错误码

1,EAGIAN    在Linux环境下开发经常会碰到很多错误(设置errno),其中EAGAIN是其中比较常见的一个错误(比如用在非阻塞操作中)。    从字面上来看,是提示再试一次。这个错误经常出现在当应用程序进行一些非阻塞(non-blocking)操作(对文件或socket)的时候。例如,以 O_NONBLOCK的标志打开文件/socket/FIFO,如果你连续做read操作

2015-03-12 22:54:41 660

原创 从一道面试题分析c++的多态特性

首先来看一段代码:#include using namespace std;class IHello{public: virtual void Hello()= 0;};class IWorld{public: virtual void World()= 0;};class HelloWorld:public IHello, public IWorld{publ

2015-01-21 13:03:21 534

转载 catalan数应用

转载自 http://blog.csdn.net/wuzhekai1985        问题描述:卡塔兰数,是组合数学中一个常出现在各种计数问题中出现的数列。输入一个整数n,计算h(n)。其递归式如下:h(n)= h(0)*h(n-1)+h(1)*h(n-2) + ... + h(n-1)h(0) (其中n>=2,h(0) = h(1) = 1)    该递推关系的解为:h(n)

2012-08-30 19:48:58 437

原创 百度笔试题

题目:有这样一种编码,如N=134,M=f(N)=143.其中N和M的位数一样,N,M可以均以0开头,N,M的各位数之和要相等,即1+3+4=1+4+3,且M是大于N中最小的一个,现在求这样的序列s,N为一个定值,其中S(0)=N,S(1)=fun(N),S(2)=fun(S(1));  #include "iostream"using namespace std;void fu

2012-08-26 20:19:50 566

转载 并查集

转自http://mindlee.net/2011/10/21/disjoint-sets/    《算法导论》这一章讲的有点麻烦。首先,这一章标题是《用于不相交集合的数据结构》,内容看了半天才反应过来,这不就并查集吗,搞这么长个翻译。对于并查集的理解,非常好的一个例子:(借用自师兄PPT)这幅图中,每一个单独的小组合就是一个独立的集合,集合与集合之间不相交,比如虚竹所在逍遥派是一

2012-07-18 10:42:10 645

转载 P2P之UDP穿透NAT的原理与实现-C#实现

P2P之UDP穿透NAT的原理与实现声明:原文来自P2P中国网,C#实现是也是转载别人的,供参考关键字:P2P, UDP, NAT, .NET 论坛上经常有对P2P原理的讨论,但是讨论归讨论,很少有实质的东西产生(源代码)。呵呵,在这里我就用自己实现的一个源代码来说明UDP穿越NAT的原理。首先先介绍一些基本概念:    NAT(Network Address Transl

2011-11-08 23:11:23 697

原创 OpenMP初探

OpenMP 提供了对并行算法的高层的抽象描述,程序员通过在源代码中加入各种专用的pragma 指令(directive,指示/命令)来指明自己的意图,由此编译器可以自动将程序进行并行化,并在必要之处加入同步互斥以及通信。当选择忽略这些pragma,或者编译器不支持OpenMP

2011-09-12 13:18:54 677

live555 vs工程

live555代码, 配套windows + vs2008工程, 可直接编译运行

2017-03-29

stl源码剖析

stl源代码讲解,主要涉及常见的容器以及所使用的数据结构

2012-07-07

空空如也

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

TA关注的人

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