网络编程
hubi
每天收获多一点。
展开
-
Epoll
http://blog.chinaunix.net/uid-22663647-id-1771846.htmlLinux 2.6内核中提高网络I/O性能的新方法-epoll I/O多路复用技术在比较多的TCP网络服务器中有使用,即比较多的用到select函数。1、为什么select落后 首先,在Linux内核中,select所用到的FD_SET是有限的,即内核中有个参数__转载 2013-04-02 14:16:08 · 737 阅读 · 0 评论 -
linux 重定向
Linux重定向是指修改原来默认的一些东西,对原来系统命令的默认执行方式进行改变,比如说简单的我不想看到在显示器的输出而是希望输出到某一文件中就可以通过Linux重定向来进行这项工作。 Linux默认输入是键盘,输出是显示器。你可以用重定向来改变这些设置。比如用wc命令的时候本来是要手动输入一篇文字来计算字符数的,用了重定向后可以直接把一个已经写好的文件用‘ STDIN转载 2012-09-12 12:34:54 · 829 阅读 · 0 评论 -
LT与ET
论epoll的使用 前几天回答一个问题,是关于我们项目中使用的epoll模式的,因为记不大清了,感觉应该使用的就是epoll的高速模式,也就是ET(edge-trigger)模式。这两天闲暇的时候,打开代码又看了一下,在epoll事件注册时并未标记ET模式,看来实际使用的是epoll默认的LT(level-trigger )模式,为什么呢?使用LT意味着 只要 fd 处于 readab转载 2013-04-02 14:52:54 · 3101 阅读 · 0 评论 -
Reactor模式,或者叫反应器模式
Reactor模式,或者叫反应器模式博客分类: Java设计模式多线程生活 Reactor这个词译成汉语还真没有什么合适的,很多地方叫反应器模式,但更多好像就直接叫reactor模式了,其实我觉着叫应答者模式更好理解一些。通过了解,这个模式更像一个侍卫,一直在等待你的召唤,或者叫召唤兽。 并发系统常使用reactor模式,代替常用的多线程的处理方转载 2013-03-22 13:56:50 · 682 阅读 · 0 评论 -
异步套接字基础:select函数以及FD_ZERO、FD_SET、FD_CLR、FD_ISSET
异步套接字基础:select函数以及FD_ZERO、FD_SET、FD_CLR、FD_ISSET来源: ChinaUnix博客 日期: 2009.09.07 18:28 (共有条评论) 我要评论 select函数: 系统提供select函数来实现多路复用输入/输出模型。原型:转载 2013-03-22 12:51:21 · 753 阅读 · 0 评论 -
进程间通信(总结)
转自:http://blog.sina.com.cn/s/blog_726c4bd20100ryan.html信号进程间通信的方法有: 信号、文件锁、管道、FIFO、信号量、共享内存、消息队列最有效,最快的方法是:共享内存信号量、共享内存、消息队列是system V IPC必须要求是亲属进程间才能通信的方法是:管道 信号机制:收到信号后是异步运行的。信号转载 2012-09-12 23:49:56 · 1066 阅读 · 0 评论 -
Linux进程间通讯(IPC)间比较
Linux进程间通讯(IPC)方法主要有以下几种:管道/FIFO/共享内存/消息队列/信号1.管道中还有命名管道和非命名管道(即匿名管道)之分,非命名管道(即匿名管道)只能用于父子进程通讯,命名管道可用于非父子进程,命名管道就是FIFO,管道是先进先出的通讯方式2.消息队列是用于两个进程之间的通讯,首先在一个进程中创建一个消息队列,然后再往消息队列中写数据,而另一个进程则从转载 2012-09-12 23:46:12 · 1089 阅读 · 0 评论 -
大小端及网络字节序
字节序转换函数:NAMEhtonl, htons, ntohl, ntohs - convert values between host and network byte order SYNOPSIS#include uint32_t htonl(uint32_t hostlong);uint16_t htons(uint16_t hostshort);uint原创 2016-03-19 14:28:18 · 562 阅读 · 0 评论 -
地址转换
NAMEinet_aton, inet_addr, inet_network, inet_ntoa, inet_makeaddr, inet_lnaof, inet_netof - Internet address manipulation routinesSYNOPSIS#include #include #include int inet_aton(const char原创 2016-03-19 14:42:00 · 598 阅读 · 0 评论 -
socket api
NAMEsocket - create an endpoint for communication SYNOPSIS#include #include int socket(int domain, int type, intprotocol); DESCRIPTIONsocket() creates an endpoint for communication an原创 2016-03-19 15:19:17 · 369 阅读 · 0 评论 -
linux 管道(进程间通信)
#include #include #include #define MAXSIZE 80int main (int argc, char *argv[]){ int fd[2]; pid_t pid; char line[MAXSIZE]; int n; if (pipe(fd) < 0) { perror("pipe error!"); exit(1);原创 2012-09-12 13:21:53 · 1298 阅读 · 0 评论 -
linux 信号量(进程间通信)
将使用一个程序来演示信号量的使用,程序用PV操作控制信号量,以操作临界区,P操作让信号量减1,V操作让信号量加1,而PV操作之间的代码即为临界区关键代码。每次只能由一个进程访问。程序创建出一个子进程,在两个进程中分别有一段临界区关键代码,实现的功能都是不断的顺序输出0~9的字符。保证进程间同步#include #include #include #include #incl原创 2012-09-12 15:37:30 · 1525 阅读 · 0 评论 -
linux 消息序列(进程间通信)
#include #include #include #include #include #include #include #include //需要自己定义的消息队列结构struct msgStuct{ long int msgType; char strMsg[1024];};intmain (){ struct msgStuct msg_dat原创 2012-09-13 00:00:45 · 1669 阅读 · 0 评论 -
事件驱动模型
事件驱动模型求助编辑百科名片 事件驱动模型鼠标的一个点击,移动,键盘的按键按下等等操作,都是对应操作系统的一个事件,然后应用程序接受你的操作进行处理目录selectpollepoll通常,我们写服务器处理模型的程序时,有以下几种模型:(1)每收到一个请求,创建一转载 2013-04-02 10:43:27 · 925 阅读 · 0 评论 -
epoll与线程池异步处理的问题
发信人: mountboy (帕克), 信区: CProgramming 标 题: epoll与线程池异步处理的问题 发信站: 水木社区 (Mon May 14 17:31:47 2012), 站内 当epoll_wait返回EPOLLIN事件后,将fd交由线程池recv处理 int fds = epoll_wait(g_epollFd, events, MAX_WAIT转载 2013-03-23 23:57:52 · 1457 阅读 · 0 评论 -
linux并发服务器中epoll+多线程分别怎么理解
linux并发服务器中epoll+多线程分别怎么理解?linux并发服务器中可以用epol来实现 我看了几次epoll的工作原理 就是不是很明白,epoll再加上多线程实现的话 我就更不明了。请知道的帮我讲讲他们怎么揉在一起?同时使用多线程和epoll的工作原理是啥啊?昵称: lgch123456 时间: 2011-01-04 16:42:49某个线程处理某个转载 2013-03-23 23:45:41 · 1105 阅读 · 0 评论 -
在Linux下编写异步I/O的模型探讨
在Linux下编写异步I/O的模型探讨需要首先说明的是异步I/O和多路复用同步I/O(如通过select函数在连接池中选择任一完成的端口)是有本质差异的,虽然两种方式都能提高效率。异步I/O的思想是在一个端口支持异步读写,读写异步的系统调用需要OS支持,比如Read、Write有异步的实现版本,则用户调用其Read、Write异步版本,如果端口暂时不可用,会立即返回到用户代码。可以针对转载 2013-03-23 13:34:32 · 1485 阅读 · 0 评论 -
使用多线程还是用IO复用select/epoll?
知乎 知乎搜索搜索提问首页话题发现注册知乎登录新浪微博注册 邮箱注册知乎是一个真实的问答社区,在这里分享知识、经验和见解,感受最好的讨论体验,发现更大的世界。网络编程Linuxepoll多线程使用多线程还是用IO复用select/epoll?每分钟有2K用户访问,服务转载 2013-03-23 13:27:39 · 2205 阅读 · 0 评论 -
Libevent简介
Libevent简介 上来当然要先夸奖啦,Libevent 有几个显著的亮点:事件驱动(event-driven),高性能;轻量级,专注于网络,不如ACE那么臃肿庞大;源代码相当精炼、易读;跨平台,支持Windows、Linux、*BSD和Mac Os;支持多种I/O多路复用技术, epoll、poll、dev/poll、select和kqueue等;支持I/O,定时器和信号等事件;注册事转载 2013-03-22 13:36:25 · 1036 阅读 · 0 评论 -
使用事件驱动模型实现高效稳定的网络服务器程序
使用事件驱动模型实现高效稳定的网络服务器程序几种网络服务器模型的介绍与比较顾 锋磊, 软件工程师, IBM简介: 围绕如何构建一个高效稳定的网络服务器程序,本文从一个最简单的服务器模型开始,依次介绍了使用多线程的服务器模型、使用非阻塞接口的服务器模型、利用select()接口实现的基于事件驱动的服务器模型,和使用libev事件驱动库的服务器模型。通过比较各个转载 2013-03-22 13:21:44 · 812 阅读 · 0 评论 -
libevent跨平台事件驱动库简介
libevent跨平台事件驱动库简介来源: ChinaUnix博客 日期: 2009.10.24 22:54 (共有条评论) 我要评论 最近因为工作的原因,后台服务器的压力越来越大,需要对项目后台的服务器进行重构,对已有的服务器的通讯模块进行重构,增加其性能.libevent产生的背景通常我们在建立服务器转载 2013-03-22 13:18:10 · 947 阅读 · 0 评论 -
高性能网络服务器简介
1)高性能网络服务程序之所以能在Linux世界里占有较大份额,原因有3:1、开源性 2、使用方便3、共享特性2)高性能服务器程序分类1、单线程重复式:缺点,服务费时2、多进程网络服务:缺点,启动关闭子程序带来很大开销3、多线程网络服务:缺点,动态线程申请与释放,需一定开销,若大量用户在线,可能带来很大线程切换开销4、线性池网络服务:针对3服务模式的一些不足做原创 2012-09-18 22:32:44 · 2741 阅读 · 0 评论 -
从master-worker模型看团队管理
转自:http://yaocoder.blog.51cto.com/2668309/1170944转载 2016-06-20 16:18:45 · 273 阅读 · 0 评论