自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 libev源码分析libev数据结构整理

这里选取的版本为最新版:libev-4.04。libev的代码很简练,除了对高效I/O模型等的封装文件,核心文件就两个:ev.h和ev.c,其中ev.c大概4000行左右。代码大量用到了宏,并且宏还嵌套了宏,为了便于理解libev的代码,这里对宏进行了还原。ev_watcher结构体(其成员为其它结构的公共部分):typedef struct ev_watcher {int a

2013-01-13 15:27:03 2612

转载 libevent和libev

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

2013-01-13 15:24:21 3636

转载 深入理解HTTP协议、HTTP协议原理分析

http协议学习系列1. 基础概念篇1.1 介绍HTTP是Hyper Text Transfer Protocol(超文本传输协议)的缩写。它的发展是万维网协会(World Wide Web Consortium)和Internet工作小组IETF(Internet Engineering Task Force)合作的结果,(他们)最终发布了一系列的RFC,RFC 1945定义了H

2013-01-13 14:06:38 969

转载 C++虚继承与其他继承类的sizeof()大小详解

先看这么个问题——已知:class CBase{int a;char*p;};那么运行cout这个应该很简单,两个成员变量所占的大小有嘛——8。可由时候人就是爱犯这个错误:这么简单的问题人家会问你?再想想……好像C++类里面有个什么 函数指针,也应该占字节吧!?什么指针来着?忘了(还是水平低不扎实)!流汗中……算了姑且认为是构造函数和析构函数吧。一人

2013-01-13 13:59:06 987

转载 c语言全局变量和局部变量问题汇总

c语言全局变量和局部变量问题汇总 1、局部变量能否和全局变量重名? 答:能,局部会屏蔽全局。要用全局变量,需要使用"::" 局部变量可以与全局变量同名,在函数内引用这个变量时,会用到同名的局部变量,而不会用到全局变量。对于有些编译器而言,在同一个函数内可以定义多个同名的局部变量,比如在两个循环体内都定义一个同名的局部变量,而那个局部变量的作用域就在那个循环体内。

2013-01-13 13:55:52 991

转载 C++单例模式详解

C++单例模式详解单例模式也称为单件模式、单子模式,可能是使用最广泛的设计模式。其意图是保证一个类仅有一个实例,并提供一个访问它的全局访问点,该实例被所有程序模块共享。有很多地方需要这样的功能模块,如系统的日志输出,GUI应用必须是单鼠标,MODEM的联接需要一条且只需要一条电话线,操作系统只能有一个窗口管理器,一台PC连一个键盘。单例模式有许多种实现方法,在C++中,甚至

2013-01-13 13:51:24 553

转载 面相对象设计中组合与聚合详解

聚合与组合的概念相信不用我在此赘述大家就已经了解了 下面直接上例子程老师的《大话》里举大那个大雁的例子很贴切 在此我就借用一下 大雁喜欢热闹害怕孤独 所以它们一直过着群居的生活 这样就有了雁群 每一只大雁都有自己的雁群 每个雁群都有好多大雁 大雁与雁群的这种关系就可以称之为聚合 另外每只大雁都有两只翅膀 大雁与雁翅的关系就叫做组合 有此可见 聚合的关系明显没有组合紧密 大雁不会因为它们的群

2013-01-13 13:49:08 594

转载 输入输出流详解

由于程序中经常有大量对文件的输入输出操作,它经常构成了程序的主要部分,因而C语言提供了很多输入输出的函数,它们分别用于两种类型文件输入输出系统:即由ANSI标准定义的缓冲文件(也称标准文件(流)输入输出(I/O)系统);另一类是ANSI标准中没有定义的非缓冲文件(也称非标准文件(流)输入输出(I/O)系统)。我们已经熟悉了通过键盘和显示器进行输入输出的一些函数,如scanf(),printf(

2013-01-13 13:37:34 461

转载 深入解析scanf()/getchar()和gets()等函数针对字符串输入的问题

深入解析scanf()/getchar()和gets()等函数----------------------------------------------------| 问题描述一:(分析scanf()和getchar()读取字符) |----------------------------------------------------scanf(), getchar()等都

2013-01-13 13:36:27 914 1

转载 fread函数与fwrite函数详解及实例

fread函数和fwrite函数size_t fread(void *buffer, size_t size, size_t count, FILE *fp)从文件fp中读入count次,每次读size字节,读入的信息存在buffer指针指向的缓冲区。函数返回值等于实际读入的次数(可能少于count)。size_t fwrite(void *buffer, size_t siz

2013-01-13 13:34:03 2149

转载 epoll原理及应用详解

由于尊重原著所以贴上链接,请大家点击查看:http://www.cnblogs.com/debian/archive/2012/02/16/2354454.html  epoll_create函数实现源码分析http://blog.csdn.net/lmh12506/article/details/7556188Linux 2.6内核中提高网络I/O性能的新方法ep

2013-01-13 13:33:05 625

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

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

2013-01-13 12:17:59 950

转载 结构体类型完全归纳

结构体类型目录 基本概述一、结构体类型变量的定义方法及其初始化1. 定义结构体类型变量的方法2. 结构体变量的初始化二、结构体变量的引用三、结构体数组1. 定义结构体数组2. 结构体数组应用举例四、 指向结构体变量的指针1.类型一2. 类型二五、 结构体类型数据作为函数参数1.方法一2.方法二3.方法三六、动态分配和撤销内存的ne

2013-01-12 14:42:05 2122 1

转载 一个Linux下C线程池的实现

什么时候需要创建线程池呢?简单的说,如果一个应用需要频繁的创建和销毁线程,而任务执行的时间又非常短,这样线程创建和销毁的带来的开销就不容忽视,这时也是线程池该出场的机会了。如果线程创建和销毁时间相比任务执行时间可以忽略不计,则没有必要使用线程池了。下面是Linux系统下用C语言创建的一个线程池。线程池会维护一个任务链表(每个CThread_worker结构就是一个任务)。pool_in

2013-01-12 14:25:18 362

转载 tcpip技术详解

TCP报文段首部格式如下图所示:常用的选项段包括:1.窗口扩大选项 2.时间戳选项 3.MMS选项等需要注意的事:1.序号是以字节为单位,因此最多可以表示2^32-1个字节,到达最大值以后从0开始 2.并不是每一个报文段都携带数据 3.TCP的源地址和目的地址包含在其外部的IP首部中,所以TCP首部只有源端口和目的端口信息4.校验和覆盖了整个TCP报文段

2013-01-12 14:22:59 962

转载 如何学习网络编程

经过多年的网络编程实践之后,个人觉得初学网络编程者可以从以下几个步骤开展:1)下载一个可以互动的学习工具,通过这个与这个工具互动,我们可以及时的学到每个api的结果如果。我个人强烈推荐一个互动好工具,即python,下载地址http://www.python.org 对于有c/c++或java基础的朋友通过一两个礼拜的时间就可以上手了,另外个人建议初学者可以学习dive into pyth

2013-01-12 14:14:41 436

转载 TCP/IP 主要报文头格式

TCP/IP协议是一个比较复杂的协议集,有很多专业书籍介绍。在此,我仅介绍其与编程密切相关的部分:以太网上TCP/IP协议的分层结构及其报文格式。我们知道TCP/IP协议采用分层结构,其分层模型及协议如下表:应 用 层(Application)HTTP、Telnet、FTP、SMTP、SNMP传 输 层(Transport)TCP、UDP

2013-01-12 14:08:43 588

转载 常用服务器模型总结

UNPv3上一共总结了9种服务器模型分别是:1.迭代服务器 2.并发服务器,为每个客户fork一个进程 3.预先派生子进程,每个子进程都调用accept,accept无上锁保护 4.预先派生子进程,以文件锁的方式保护accept 5.预先派生子进程,以线程互斥锁上锁的方式保护accept6.预先派生子进程,由父进程向子进程传递套接口描述字 7.并发服务器,为每个客户请求创建一个

2013-01-12 14:06:52 409

转载 路由器和交换机的区别

交换机与路由器的区别  计算机网络往往由许多种不同类型的网络互连连接而成。如果几个计算机网络只是在物理上连接在一起,它们之间并不能进行通信,那么这种“互连”并没有什么实际意义。因此通常在谈到“互连”时,就已经暗示这些相互连接的计算机是可以进行通信的,也就是说,从功能上和逻辑上看,这些计算机网络已经组成了一个大型的计算机网络,或称为互联网络,也可简称为互联网、互连网。  将网络互相连接起

2013-01-09 22:31:01 389

转载 strcpy和memcpy的区别

strcpy和memcpy都是标准C库函数,它们有下面的特点。strcpy提供了字符串的复制。即strcpy只用于字符串复制,并且它不仅复制字符串内容之外,还会复制字符串的结束符。已知strcpy函数的原型是:char* strcpy(char* dest, const char* src);memcpy提供了一般内存的复制。即memcpy对于需要复制的内容没有限制,因此用途更广。

2013-01-09 22:29:52 387

转载 酒桌上的计算机网络

酒宴开始。酒杯盛酒,酒杯碰撞,这是物理层;你要根据不同人的外貌特征找到你要敬酒的人所坐的位置,这是IP协议(网络层);你明白,敬酒的实际目的是加深感情,这在应用层,而这酒中的感情,才是报文的数据部分。你和某位新见面的兄弟互相来回敬酒,这叫TCP;你给同一位好兄弟敬酒好多次,死命灌他,他也不回礼,这叫UDP;你对全桌的人说,来,咱们同归于尽,这叫广播;你在对这一桌

2013-01-03 17:11:40 451

转载 tcp有限状态机分析

原文地址:http://www.2cto.com/net/201111/112030.html     这幅图是TCP的状态机,看了2个小时,分析总结如下:(1)CLOSED 状态时初始状态。(2)LISTEN:被动打开,服务器端的 状态变为LISTEN(监听)。被动打开的概念:连接的一端的应用程序通知操作系统,希望建立一个传入的连接。这时候操作系统为连接的

2013-01-03 17:10:17 480

转载 MFC中定时器的使用

巧妙地使用定时器能达到意想不到的效果,写界面的时候能实现渐变,也能帮助多线程控制等我们知道,在VC的MFC中,已经为我们封装好了很多全面和强大的函数集,所以在MFC编程时,巧妙地调用MFC函数库可以为我们省去很多麻烦。其中定时器也可以在MFC程序中很好地利用。在MFC中和定时器相关的有三个函数:1.设置定时器(定义一个定时器的属性):        SetTimer( UINT

2013-01-02 16:31:44 513

空空如也

空空如也

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

TA关注的人

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