关闭

[置顶] zeromq源代码分析6-3------ROUTER和DEALER

zeromq的zero表明它木有broker,但是并不代表着他不能有broker,而是作为device选项,使用ROUTER socket和DEALER socket就可以模拟一个简单broker。可以从tutorial中看到模拟的代码: // // Simple request...
阅读(14312) 评论(2)

[置顶] zeromq源代码分析6-2------REQ和REP

本文我们讲一下req和rep这对zeromq的socket。这是一个经典的Request-Reply的例子。...
阅读(9143) 评论(1)

[置顶] zeromq源代码分析6-1------zeromq各种类型的socket之socket_base

我们在zeromq源代码分析6中分析zeromq所有类型的socket,主要集中分析send和recv函数。今天我们先分析一下所有socket中base class------socket_base:先看send(2)函数:int zmq::socket_base_t::send...
阅读(7452) 评论(0)

[置顶] zeromq源代码分析5-3------管道相关的数据结构yqueue, ypipe, pipe等

这篇文章我们讲一下pipe, 从前面的博文中你了解了zeromq数据读写是异步的,主要与管道交互。先说一下pipe的基本功能吧:1. 流量控制: 有一个HWM(最高水位),  LWM(最低水位)和active标志。2. 通过发送终结符类型的消息来销毁管道。3. swap模式。一个...
阅读(5186) 评论(0)

[置顶] zeromq源代码分析5-2------管道相关的数据结构yqueue, ypipe, pipe等

本文我们来讲一下ypipe的实现。其实ypipe就是上一篇文章中提到的yqueue的一个为lock-free的封装加强实现。ypipe主要有写入write(), 读取read(), flush()的功能。当一个元素被写入管道的时候,如果不调用flush()函数,那么是不能从该管道...
阅读(7242) 评论(2)

[置顶] zeromq源代码分析5-1------管道相关的数据结构yqueue, ypipe, pipe等

本文主要分析管道相关的数据结构yqueue, ypipe, pipe等。我们一个个来分析,先看yqueue:yqueue是一个高效的队列实现。它主要通过批量的分配/释放数据元素来减少分配/释放的次数来提高效率。而所谓的批量分配的数据结构称之为chunk_t: // Indivi...
阅读(5798) 评论(4)

[置顶] zeromq源代码分析4------encoder,decoder,multipart_message

decoder_base中的: unsigned char *read_pos; // 从缓冲区读出的内存区域位置,指向in_progress的数据区域或者tmpbuf size_t to_read; // 从缓冲区读出的大小 step_t ne...
阅读(5724) 评论(0)

[置顶] zeromq源代码分析3------zeromq中的消息

本文主要讲zeromq的消息体系zmq_msg_t及其相关的操作函数。因为tcp是一种字节流类型的协议,木有边界,所以把该消息边界的制定留给了应用层。通常有两种方式实现:1. 在传输的数据中添加分隔符。2. 在每条消息中添加size字段。而zeromq可以说选择了第二种方式。先来...
阅读(10526) 评论(11)

[置顶] zeromq源代码分析2------线/进程间通信方式

本文我们讲一下zeromq的线/进程间通信方式。...
阅读(10297) 评论(4)

[置顶] zeromq源代码分析1------基本工作流程分析

zeromq源代码分析1------基本工作流程分析...
阅读(21819) 评论(14)

zeromq一直困扰我的问题和自我反省

今天去zeromq的maillist发信问了两个一直困扰我几天的问题了,结果迅速收到回复,立即想明白了,大牛还是很多的,看来以后自己要把代码再吃得透点,不明白的地方及时问大牛,能节省很多时间: 1.  zeromq的多个I/O线程之间没有使用同步机制,会不会产生问题? 我本来...
阅读(32438) 评论(12)

asio reactor模拟Proactor代码分析笔记

今天看了ASIO的介绍,不太明白asio在POSIX上如何用reactor模拟proactor。所以稍微看了下源代码,此文当作笔记。ASIO Proactor: Proactor design pattern (adapted from [POSA2])...
阅读(5475) 评论(2)

lwIP源代码分析1-------内存管理模块的分析

memp.c动态内存池管理器, lwip拥有各种不同的内存池来为各个模块的小对象分配内存。一个内存池主要有name,description,number(内存池里的内存节点的数目)和size(内存池里的内存节点的大小)内存节点的struct描述:struct memp {   struct memp *next; // 指向下一个内存节点的指针 #if MEMP_OVERFLOW_CHECK // 如果进行内存溢出检测,   const char *file; // 发生溢出时调用函数的文件名   ...
阅读(12928) 评论(7)

Ice源码分析笔记1--IceUtils

Ice是Zero C的一个分布式框架, 利用corba的思想,加强和改善了corba。本系列文章主要通过本人对其源码的分析来讲述Ice的工作原理。Ice主要包括以下几个部分:  Ice: Ice核心模块  IceUtils: Utils工具模块  IceGrid: Ice节点模块  。。。Ice是利用自己定义的中间语言然后编译成各种常用语言的网络操作方法,然后调用各自语言下层的模块来进行工作的,在这里我主要是以c++代码来学习的。本文主要讲述IceUtils的各个工具类。1. Shared.h Shared...
阅读(5051) 评论(2)

ubuntu fceux成功运行吞食天地2中文版。

最近看linux kernel的源码看到天天做梦梦到代码,于是周日想放松一下,玩会游戏,无奈360已坏,还是逃不过三红的魔爪。PS2实在太画面不能忍,于是倒怀恋起FC的游戏来,最想玩的当然是吞食天地2中文版阿。于是在ubuntu上装了个FCEUX,结果竟然玩不来这个经典的游戏。于是怒了,开始研究fceux源码,又打开台式机的xp分析virtualNes的源码。还查了很多相关资料...
阅读(4663) 评论(5)

iphone开发环境研究

关于iphone开发一. 版本问题iphone目前最新的版本是3.1.2, 但是并不是所有软件都支持这个版本, 这个上面牵涉到破解问题, 所以确定一个版本很重要, 当然只要没用什么新的api, 版本之间的移植也是很容易.二. 官方sdk和开源工具链iPhone有两层不同的框架,分别是底层API和iPhone SDK. 底层API就是我们在iPhone...
阅读(4027) 评论(1)

[转贴]linux下代码阅读 -- 配置vim+ctags+taglist+cscope

 本帖转自: http://hi.baidu.com/wstone_h/blog/item/5916a4a910206dfb1e17a207.html009年01月14日 星期三 13:07参考文献1:http://www.lupaworld.com/home/space-131820-do-blog-id-118756.html参考文献2:http://liupi...
阅读(2150) 评论(0)

libjingle学习笔记(2)--Thread MessageQueue SocketServer...

 一. Thread类是libjingle中比较核心的类。 我把他的功能主要分为三块: 1. Thread相关函数: 主要是对不同操作系统Thread的统一接口包装。 其中包括了Start(), Stop(), Join()等线程控制函数, 也包括了优先级控制相关的函数, 还有一个定位查找的功能。关于定位查找的功能主要是由ThreadManager控制的, ThreadManager类主要...
阅读(5586) 评论(2)

libjingle学习笔记(1)--从Login example开始

libjingle是gtalk客户端所使用的基础库,主要分为以下几个模块:base // 一些网络方面的基础库的封装xmllite // 因为xmpp协议的内容是以xml为基础的,所以这个模块是对xml解析库(expat)的一些封装xmpp // xmpp协议的实现p2p // p2p的实现,包括一些nat和firewall穿越的技术session // gtalk对于声音和文...
阅读(7247) 评论(7)
    个人资料
    • 访问:177968次
    • 积分:1916
    • 等级:
    • 排名:千里之外
    • 原创:18篇
    • 转载:1篇
    • 译文:0篇
    • 评论:76条
    最新评论