libuv 和 libev ,两个名字相当相近的 I/O Library,最近有幸用两个 Library 都写了一些东西,下面就来说一说我本人对两者共同与不同点的主观表述。 高性能网络编程这个话题已经被讨论烂了。异步,异步,还是异步。不管是 epoll 也好,kqueue 也罢,总是免不了异步这个话 ...
分类:
其他好文 时间:
2017-09-01 23:04:02
阅读次数:
201
TCP/IP协议虽然方便,但是由于是基于流的传输(UDP是基于数据报的传输),无论什么项目,总少不了解决拆包分包问题。 以前的项目总是每个程序员自己写一套拆包分包逻辑,实现的方法与稳定性都不太一致。终于有了做基线的机会,自己写了一个基于libevent的拆包分包库。 本文档黏贴一些核心的内容。 // ...
分类:
其他好文 时间:
2017-08-26 17:03:10
阅读次数:
181
1从github上git clone https://github.com/nmathewson/Libevent.git 或者直接下载zip包.然后找到vs2015命令行,打开 2: 3:等待结果 4使用demo测试 包含目录 库目录 附加依赖项: ...
学习笔记,只是记录本次成功用libevent源代码进行编译。环境为MinGW+VS2008+Msys。 0.下载libevent库 http://libevent.org/ 下载stable稳定版的库。 1.编译 一开始我用MinGW进行编译的,但是总是出现问题。后来参考了这个博客:http://m ...
构建现代的server应用程序须要以某种方法同一时候接收数百、数千甚至数万个事件,不管它们是内部请求还是网络连接,都要有效地处理它们的操作。 有很多解决方式,但事件驱动也被广泛应用到网络编程中。并大规模部署在高连接数高吞吐量的server程序中,如 http server程序、ftp server程 ...
分类:
其他好文 时间:
2017-07-27 13:33:29
阅读次数:
311
一、存储 Memcached基本只支持简单的key-value存储方式。Redis除key-value之外,还支持list,set,sorted set,hash等数据结构;Redis支持数据的备份,即master-slave模式的数据备份;Redis支持数据的持久化(快照、AOF),可以将内存中的 ...
分类:
系统相关 时间:
2017-07-12 21:20:46
阅读次数:
315
CC = gcc CXX = g++ TARGET = process INSTALLDIR = ~/work/ COMMON_PATH := /home/shengkaishan/tmp INCLUDES := -I$(COMMON_PATH)/libev/include -I./ LIBS :=... ...
分类:
其他好文 时间:
2017-07-12 18:55:41
阅读次数:
138
最近在阅读 libev 的源码,看到 libev 的代码里面的 sleep 实现, 我觉得可以把这个 sleep 实现单独拿出来,作为参考,以后可以直接拿来用。 代码如下(稍有修改): 其中的 EV_TS_SET 和 EV_TV_SET 是两个宏定义,我直接把这两个宏展开了。 同步发布:http:/ ...
分类:
系统相关 时间:
2017-07-10 00:40:06
阅读次数:
318
最近想研究下 libev 这个网络库,所以先从官方文档一个最简单的 demo 开始,代码如下: 编译并运行: 编译的时候需要链接 libev 动态库。 从上面可以看出,我是运行了这个程序两次。第一次是运行后就不再执行任何操作, 等待程序自己因为超时而结束。第二次就是按了一个回车,使 stdin 处于 ...
分类:
其他好文 时间:
2017-07-09 10:28:57
阅读次数:
189