libevent 据说是IO复用的好东西。所以今天来耍耍。1. 从官网下载源代码:http://libevent.org/,最新的版本已达到2.0.2. 先把ubuntu系统自带的libevent 1.4卸载,可通过ubuntu软件中心卸载3. 解压下载的libevent,我的版本是:libeven...
分类:
其他好文 时间:
2015-10-27 21:48:45
阅读次数:
230
TCP/IP 网络编程 (抄书笔记 5) – select 和 IO 复用TCP/IP 网络编程 (抄书笔记 5) – select 和 IO 复用利用 fork() 生成子进程 可以达到 服务器端可以同时响应多个 客户端的请求, 但是这样做有缺点:需要大量的运算和内存空间, 每个进程都要有独立的内...
分类:
其他好文 时间:
2015-09-26 12:01:44
阅读次数:
155
IO复用,说得粗鄙一点,就是不用开多线程也能发送和接收消息。不多说,看代码:(select和poll是别人写的。引用一下,别见怪。)select:#include #include #include #include #include #include const static int MAXLIN...
分类:
其他好文 时间:
2015-09-17 17:33:03
阅读次数:
138
会阻塞的函数:connect,accept,send/recv/sendto/recvfrom等读写函数.不会阻塞的函数:bind, listen,socket, closesocket.linux网络通信模型有:阻塞IO模型(同步),非阻塞IO模型(拷贝同步),IO复用模型(多线程同步),信号驱动...
分类:
系统相关 时间:
2015-08-19 00:28:26
阅读次数:
206
1.阻塞式IO:套接字默认是阻塞式的,该模型会一直阻塞在系统调用上,直到数据到达内核区并且完成从内核区到用户进程区的数据拷贝。
2.非阻塞式IO:该模型将套接字的状态设置为非阻塞,会一直轮询套接字的状态,直到数据到达内核区并且完成内核区到用户区的数据拷贝,个人感觉类似于linux下的自旋锁。
3.IO复用:该模型通常阻塞在select/poll系统调用,当内核区数据到达时,select系统调用...
分类:
其他好文 时间:
2015-08-18 10:16:15
阅读次数:
112
Channel是Reactor结构中的“事件”,它自始至终都属于一个EventLoop,负责一个文件描述符的IO事件。Poller是实现了IO复用,是个虚基类。...
分类:
其他好文 时间:
2015-08-05 01:06:12
阅读次数:
128
阻塞IO模型
阻塞IO是最通用的IO,使用这种IO接受数据时,在数据没有到来之前程序会一直等待。
非阻塞IO
当把套接字设置成非阻塞IO时,则对于每次请求,内核都不会阻塞,会立即返回。当没有数据时,会返回一个错误。
IO复用
使用IO复用的可以在等待的时候假如超时时间,当超时时间没有到达的时候情况与阻塞IO是一样的,当时间到达,但是没有数据是,系统会自动返回,不在等待。s...
分类:
其他好文 时间:
2015-07-30 21:25:39
阅读次数:
132
1.写出基本的TCP连接,知道编写TCP的各个步骤,例如创建socket、绑定port、端口复用等,对TCP稍微做了解,知道协议的每个字段,了解三次握手。2.了解基本的服务器并发模型,例如多进程、多线程、IO复用3.了解一些网络库例如twisted不清楚你具体指的是底层的网络编程,还是偏应用的web...
分类:
编程语言 时间:
2015-07-30 07:05:29
阅读次数:
195
??
IO基本应用
IO基本结构:
针对STM32F407有7组IO,分别为GPIOA~GPIOG,每组IO有16个IO口,则有112个IO口。其中IO口的基本结构如下:
工作方式:
STM32F4工作模式有8种,其中4中输入模式,4种输出模式,分别为:输入浮空、输入上拉、输入下拉、模拟模式、开漏输出、开漏复用输出、推挽输出、推挽复用输出。
输入模...
分类:
其他好文 时间:
2015-07-27 15:00:59
阅读次数:
289
epoll是linux在2.6内核新增的系统调用,为了更高效地实现多路IO复用。本文简要介绍了其使用方法,并用epoll实现了一个Echo服务器。...
分类:
其他好文 时间:
2015-07-21 22:18:34
阅读次数:
178