自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Windeal

Linux、网络协议栈、网络通信

  • 博客(14)
  • 资源 (25)
  • 收藏
  • 关注

原创 zlib库 安装与使用

1. zlib简介  zlib 适用于数据压缩的函式库,由Jean-loup Gailly (负责compression)和 Mark Adler (负责decompression)开发。    zlib被设计成一个免费的、通用的、法律上不受阻碍(即没有被任何专利覆盖) 的无损数据压缩库。zlib几乎适用于任何计算器硬件和操作系统。   zlib本身的数据格式可以进行跨平台的移植。 与在U

2016-10-29 19:53:38 51075 6

转载 HTTP, HTTP2.0, SPDY, HTTPS | 4种网络协议的渊源与发展

HTTP与现代浏览器 3 HTTP的基本优化 HTTP1.0和HTTP1.1的一些区别HTTP1.0和HTTP1.1存在的一些问题使用SPDY加快你的网站速度 HTTP2.0的新特性

2016-10-27 15:56:17 1228

转载 程序员解决问题的60个策略

程序员的生活就是解决一个又一个问题,永无止境。这篇文章介绍了一系列解决问题的策略。根本的指导方针首先写代码的时候最好不要有缺陷。最好的修复方法就是让 bug 胎死腹中。良好的单元测试强制数据库约束使用输入验证框架避免未实现的“else”条件在应用到主程序之前知道如何在孤立的情况下使用日志print 语句。往往额外输出个一两行将有助于隔离问题。切换至详细的日志记录。详细的日志记录有助于

2016-10-26 10:58:37 799

转载 C语言正则表达式详解 regcomp() regexec() regfree()详解

Linux上一些函数库可以辅助C/C++程序员正则表达式的处理。 常用的接口有regcomp()、regexec()、regfree()和regerror(),C语言中使用正则表达式一般分为三步:编译正则表达式 regcomp()匹配正则表达式 regexec()释放正则表达式 regfree()

2016-10-26 08:57:47 7608

转载 99%的人都理解错了 HTTP 中 GET 与 POST 的区别

GET和POST是HTTP请求的两种基本方法,要说它们的区别,接触过WEB开发的人都能说出一二。最直观的区别就是GET把参数包含在URL中,POST通过request body传递参数。GET和POST还有一个重大区别,简单的说:GET产生一个TCP数据包;POST产生两个TCP数据包。

2016-10-21 10:25:04 1449

翻译 libevent学习笔记【使用篇】——9. Libevent和DNS解析

如果evutil_getaddrinfo解析成功了,则它会分配一个节点为evutil_addrinfo structures类型的链表res,从函数原型中, 不难看出,evdns_getaddrinfo的使用方法与其他使用回调函数实现非阻塞的函数类似的。其参数的作用可以参考阻塞型的evutil_getaddrinfo。 在使用evdns_getaddrinfo之前,我们需要先配置一个evdns_base用于保存nam

2016-10-20 09:19:43 2775

翻译 libevent学习笔记【使用篇】——8. 连接监听:接收TCP连接

函数evconnlistener_new和evconnlistener_new_bind都用于分配和返回一个新的用于监听连接的对象。如果使用的是evconnlistener_new,需要保证传入的socket套接字处于non-blocking模式,可以通过evutil_make_socket_nonblocking等方法进行设置。listener允许临时关闭和重新开启监听

2016-10-20 09:13:29 3543

翻译 libevent学习笔记【使用篇】——7. evbuffer:缓冲IO的实用功能

创建和释放evbuffer, Evbuffer和其线程安全性, 直接往evbuffer中添加数据,在Libevent中使用evbuffer最频繁的就是网络IO。网络IO中操作evbuffer的接口如下:向evbuffer中加入文件

2016-10-19 23:27:39 12976 1

翻译 libevent学习笔记【使用篇】——6a. Bufferevents高级话题

成对的bufferevent, 调用bufferevent_pair_new()会设置pair[0]和pair[1]为一对相互连接的bufferevent。bufferevent_filter_new()函数创建一个封装现有的“底层”bufferevent的过滤bufferevent。bufferevent和速率限制.创建和使用基于OpenSSL的bufferevent. Openssl 线程安全。

2016-10-19 09:17:33 4192 2

翻译 libevent学习笔记【使用篇】——6. Bufferevents基本概念

大多数时候,应用程序除了响应请求外,还需要处理数据(及其缓存)。当我们想要写数据是,通常会有以下步骤 + 决定要向连接中写入什么数据, 把这些数据放入缓存 + 等待连接可写 + 写入尽可能多的数据 + 记住写入了多少数据,如果还有数据没写完。等待连接再次变为可写状态。  这样的I/O缓冲方式很常见,因而libevent为此提供了一种通用机制。   “bufferevent”由一个底层

2016-10-15 11:57:10 4695

翻译 libevent学习笔记【使用篇】——5.通用函数与可移植函数

<event2/util.h>定义了很多在实现可移植应用时有用的函数,libevent内部也使用这些类型和函数。evutil_socket_t。#define evutil_timeradd(tvp, uvp, vvp) /* */#define evutil_timersub(tvp, uvp, vvp) /* */evutil_make_listen_socket_reuseable

2016-10-10 10:16:07 3496

翻译 libevent学习笔记【使用篇】——4. 让events正常工作

构建event对象,事件持久性 EV_PERSIST,、创建一个可以将自身作为回调函数参数的的event,纯超时events 构造信号事件不在堆中分配event event_assign int event_del(struct event *ev);event_get_priority通过event_base_once插入的event不能被删除或者手动激活。

2016-10-09 23:31:11 10205 2

翻译 libevent学习笔记【使用篇】——3. 运行event loop

默认情况下,event_base_loop()会在event_base上一直运行,直到其上已经没有注册的events了。设置了EVLOOP_ONCE,那么loop将会一直等待,直到一些events变为active,然后运行这些激活的events的回调函数,如果设置了EVLOOP_NONBLOCK标志int event_base_loopexit(struct event_base *base, const

2016-10-09 21:31:58 5508 1

翻译 libevent学习笔记【使用篇】——2. 获取(创建)event_base

在使用任何libevent库函数之前,需要分配至少一个struct event_base的对象。每一个struct event_base对象都维护者一系列事件,并且能够轮询是是否有事件被激活。如果对event_base进行了加锁的保护,那么他可以被多线程访问,我们只需要在某一个线程中运行轮询。 但是如果我们需要各个线程都能进行自己IO轮询,那么就需要为每个线程分配一个event_base.每个eve

2016-10-09 20:40:56 3648

OpenStack企业云平台架构与实践.pdf

本书结合作者亲身经历的各类OpenStack的咨询、规划和实施经验,以循序渐进的方式,从理论和工程角度,讲述了如何将OpenStack(本质上只是一堆相关的进程和服务)变成企业可靠的、托管企业各类生产环境的云平台的方方面面,让OpenStack真正变成我们身边默默无闻但又实实在在的环境的一分子。本书分为10章,分别介绍了OpenStack与云,OpenStack社区,OpenStack与AWS、VMware、虚拟化管理工具,虚拟机管理程序与典型应用,OpenStack架构与组件,OpenStack部分组件安装示例,系统定制技术,OpenStack部署,第三方工具搭建OpenStack运行环境,九州云Animbus融合架构一体机解决方案等内容。

2018-04-25

TCP-IP详解卷2-实现.pdf

CP/IP详解·卷2:实现》完整而详细地介绍了TCP/IP协议是如何实现的。书中给出了约500个图例,15000行实际操作的C代码,采用举例教学的方法帮助你掌握TCP/IP实现。《TCP/IP详解·卷2:实现》不仅说明了插口API和协议族的关系以及主机实现 与路由器实现的差别。还介绍了4.4BSD-Lite版的新的特点。《TCP/IP详解·卷2:实现》适用于希望理解TCP/IP协议如何实现的人,包括编写网络应用程序的程序员以及利用TCP/IP维护计算机网络的系统管理员。

2018-04-13

UNIX环境高级编程 中文第3版

《UNIX环境高级编程(第3版)》是被誉为UNIX编程“圣经”的Advanced Programming in the UNIX Environment一书的第3版。在本书第2版出版后的8年中,UNIX行业发生了巨大的变化,特别是影响UNIX编程接口的有关标准变化很大。本书在保持前一版风格的基础上,根据新的标准对内容进行了修订和增补,反映了新的技术发展。书中除了介绍UNIX文件和目录、标准I/O库、系统数据文件和信息、进程环境、进程控制、进程关系、信号、线程、线程控制、守护进程、各种I/O、进程间通信、网络IPC、伪终端等方面的内容,还在此基础上介绍了众多应用实例,包括如何创建数据库函数库以及如何与网络打印机通信等。此外,还在附录中给出了函数原型和部分习题的答案。   《UNIX环境高级编程(第3版)》概念清晰,阐述精辟,对于所有层次UNIX/Linux程序员都是一本不可或缺的参考书。

2018-01-15

libev-官方手册

libev是高性能事件循环/事件模型的网络库,并且包含大量新特性。 它是继lievent和Event perl module之后的一套全新网络库。它追求的目标:速度更快,bug更少,特性更多,体积更小。

2017-06-12

Linux+C编程一站式学习

这本书最初是为北京亚嵌教育研究中心的嵌入式Linux系统工程师就业班课程量身定做的教材之 一。该课程是为期四个月的全日制职业培训,要求学员毕业时具备非常Solid的C编程能力,能熟 练地使用Linux系统,同时对计算机体系结构与指令集、操作系统原理和设备驱动程序都有较深 入的了解。然而学员入学时的水平是非常初级而且参差不齐的:学历有专科、本科也有研究生, 专业有和计算机相关的也有很不相关的(例如会计专业),以前从事的职业有和技术相关的也有 完全不相关的(例如HR),年龄从二十出头到三十五六岁的都有。这么多背景完全不同、基础 完全不同、思维习惯和理解能力完全不同的人来听同一堂课,大家都迫切希望学会嵌入式开发技 术,投身IT行业,这就是职业教育的特点,也是我编这本书时需要考虑的主要问题。

2014-12-26

彻底搞定C指针 高清版

姚云飞先生的大作《彻底搞定C指针》是互联网上中文C/C++界内为数不 多的专门阐述C指针问题的优秀文献资源之一。

2014-12-26

cntlm(设置全局域代理)

解决ISA+Windows域 环境下,一些无法设置域代理的软件无法连接网络的问题

2014-09-25

H.264编码源代码(单帧,简单易用)

H.264编码源代码,就几个文件,容易看懂,可以通过调用几个函数实现一个视频帧的编解码。

2014-03-31

算法分析与设计+王晓东

本书以算法设计策略为知识单元 系统地介绍计算机算法的设计方法与分析技巧 以期为计算机科学与技术学科的学生提供广泛而坚实的计算机算法基础

2014-03-11

学生成绩管理系统

学生成绩管理系统 VC6 可运行

2011-12-29

Tab控件的使用

Tab控件的使用

2011-12-29

CMMI3 开发规范文档

CMMI3 开发规范文档

2011-12-29

MFC类库详解MSDN

中文版的MFC类库详细解析。具有索引功能。能够较快地查询MFC基础类库。方便编程开发。

2011-08-11

空空如也

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

TA关注的人

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