In this article, I will use three asynchronous conferencing--select, poll and epoll on serial port to transmit data between PC and Raspberry pi.Outlin...
分类:
其他好文 时间:
2016-01-22 00:10:57
阅读次数:
244
和前面文章的第一部分一样,这些文字是为了帮别人或者自己理清思路的,而不是所谓的源码分析,想分析源码的,还是直接debug源码最好,看任何文档以及书都是下策。因此这类帮人理清思路的文章尽可能的记成流水的方式,尽可能的简单明了。Linux2.6+内核的wakeupcallback机制Linux..
分类:
系统相关 时间:
2016-01-16 19:38:30
阅读次数:
304
原 生socket客户端在与服务端建立连接时,即服务端调用accept方法时是阻塞的,同时服务端和客户端在收数据(调用recv)时也是阻塞的。原生 socket服务端在同一时刻只能处理一个客户端请求,即服务端不能同时与多个客户端进行通信,实现并发,导致服务端资源闲置(此时服务端只占据 I/O,CPU...
分类:
编程语言 时间:
2016-01-14 14:06:04
阅读次数:
251
Python Select Server,可监控事件数量有限制:#!/usr/bin/python# -*- coding: utf-8 -*-import selectimport socketimport Queue server = socket.socket(socket.AF_INET,....
分类:
编程语言 时间:
2015-12-28 15:35:02
阅读次数:
375
http://segmentfault.com/a/1190000003063859#articleHeader6 原文同步IO和异步IO,阻塞IO和非阻塞IO分别是什么,到底有什么区别?不同的人在不同的上下文下给出的答案是不同的。所以先限定一下本文的上下文。本文讨论的背景是Linux环境下的ne....
分类:
系统相关 时间:
2015-12-14 16:22:47
阅读次数:
262
最近简单看了一把Linux linux-3.10.25 kernel中select/poll/epoll这个几个IO事件检测API的实现。此处做一些记录。其基本的原理是相同的,流程如下先依次调用fd对应的struct file.f_op->poll()方法(如果有提供实现的话),尝试检查每个提供待检...
分类:
系统相关 时间:
2015-12-01 23:00:16
阅读次数:
246
下面这篇,原理理解了,再结合 这一周来的心得体会,整个框架就差不多了。。。http://www.haiyun.me/archives/1056.html有许多封装好的异步非阻塞IO多路复用框架,底层在linux基于最新的epoll实现,为了更好的使用,了解其底层原理还是有必要的。下面记录下分别基于S...
分类:
编程语言 时间:
2015-11-25 22:17:39
阅读次数:
279
首先还是来看常见的select和poll。对于网络编程来说,一般认为poll比select要高级一些,这主要源于以下几个原因:poll() 不要求开发者计算最大文件描述符加一的大小。poll() 在应付大数目的文件描述符的时候速度更快,因为对于select()来说内核需要检查大量描述符对应的fd_s...
分类:
其他好文 时间:
2015-11-20 17:38:48
阅读次数:
127
io模型: 同步IO: 阻塞形式,非阻塞形式(轮询)、信号驱动IO、IO复用(select, poll, epoll); 异步io:aio_read()典型场景: 1、客户端处理多种IO-------标准io 和网络io(套接字) 2、server端既要处理监听套接字又要处理已连接的套接字 ...
分类:
其他好文 时间:
2015-11-08 22:21:43
阅读次数:
267
在之前博文libevent之Reactor模式中,我们知道Reactor模式中一个重要的组件就是事件多路分发机制(event demultiplexer)。而在libevent中,对事件多路分发机制的支持依赖于操作系统支持的多路复用机制(select、poll、epoll等)。eventop ...
分类:
其他好文 时间:
2015-09-21 01:19:49
阅读次数:
218