linux网络soket编程
C咖咖
历史不会简单的重复,但历史会惊人的相似
展开
-
server端和clien端关于getsockname和getpeername函数的用法
1,SErver端源码: #include #include #include #include #include #include #include #include #include #include #include using na转载 2013-06-26 21:43:48 · 3804 阅读 · 0 评论 -
处理大并发之三 对libevent的初步认识
首先翻译下http://www.wangafu.net/~nickm/libevent-book/01_intro.html里的一段文章对异步IO的一个简要介绍大多数应用程序都是阻塞的IO调用,如果IO调用是同步(阻塞)的,它不能立即返回直到它的操作完成,或者经过了很长时间直到网络栈丢弃。当你在一个TCP连接上调用”connect()”时,例如,你的操作系统从TCP连接的另一端主机转载 2017-07-03 09:47:20 · 253 阅读 · 0 评论 -
libev:详解
事件库之Libev(一)使用LibevLibev的作者写了一份很好的官方Manual,比较的齐全,即介绍了Libev的设计思想,也介绍了基本使用还包括内部各类事件详细介绍。这里略微赘述一下。Libev通过一个 ·struct ev_loop· 结结构表示一个事件驱动的框架。在这个框架里面通过ev_xxx结构,ev_init、ev_xxx_set、ev_xxx_start接口箱这转载 2017-07-04 09:26:52 · 6701 阅读 · 1 评论 -
常见多线程与并发服务器设计方案举例
转自http://blog.csdn.net/jnu_simba/article/details/14141245一、3点基础知识1、一个主机的端口号为所有进程所共享,但普通用户进程绑定bind不了一些特殊端口号如20、80等。 多个进程不能同时监听listen同一个端口,会失败。当然父进程可以先listen然后fork多个子进程,多个子进程都可以accept这个soc转载 2017-07-14 13:35:14 · 362 阅读 · 0 评论 -
non-blocking I/O Multiplexing + poll/epoll 的正确使用
1、首先来回顾下poll / epoll 函数的原型#include int poll(struct pollfd *fds, nfds_t nfds, int timeout);struct pollfd { int fd; /* file descriptor */ short events; /* requested eve转载 2017-07-14 13:44:19 · 271 阅读 · 0 评论 -
epoll
转自http://blog.csdn.net/lingfengtengfei/article/details/12398299一、什么是epollepoll是什么?按照man手册的说法:是为处理大批量句柄而作了改进的poll。当然,这不是2.6内核才有的,它是在2.5.44内核中被引进的(epoll(4) is a new API introduced in Linuxkernel转载 2017-07-31 19:43:36 · 253 阅读 · 0 评论 -
epoll 3
转自http://blog.csdn.net/qcghdy/article/details/22791077网络模型包括以下几种其中,与select相比,epoll是一种的较为高效的多路复用模型。在nginx、memcached等中使用,一般我们自己设计高效http服务器也可以考虑采用这种模型。本文主要讲述epoll模型(不完全是针对epoll)下读转载 2017-07-31 19:49:06 · 255 阅读 · 0 评论 -
libevent之reactor
转自http://www.cnblogs.com/secondtonone1/p/5535722.html最近自学libevent事件驱动库,参考的资料为libevent2.2版本以及张亮提供的《Libevent源码深度剖析》,参考资料: http://blog.csdn.net/sparkliang/article/details/4957667libevent好处之类的转载 2017-08-02 16:40:45 · 445 阅读 · 0 评论 -
linux下epoll服务器代码实现
#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include转载 2017-07-27 12:29:55 · 799 阅读 · 0 评论 -
udp调用connect有什么作用?
1:UDP中可以使用connect系统调用2:UDP中connect操作与TCP中connect操作有着本质区别.TCP中调用connect会引起三次握手,client与server建立连结.UDP中调用connect内核仅仅把对端ip&port记录下来.3:UDP中可以多次调用connect,TCP只能调用一次connect.UDP多次调用connect有两种用途:1,指...原创 2015-07-03 08:34:55 · 4176 阅读 · 1 评论 -
epoll深度分析
在linux的网络编程中,很长的时间都在使用select来做事件触发。在linux新的内核中,有了一种替换它的机制,就是epoll。相比于select,epoll最大的好处在于它不会随着监听fd数目的增长而降低效率。因为在内核中的select实现中,它是采用轮询来处理的,轮询的fd数目越多,自然耗时越多。并且,在linux/posix_types.h头文件有这样的声明:#define __转载 2017-07-11 17:46:14 · 416 阅读 · 0 评论 -
libevent编程疑难解答
转载请注明出处:http://blog.csdn.net/luotuo44/article/details/39547391 前段时间阅读了libevent的源码。读毕,之前使用libevent时的一些疑问都已经豁然开朗了。对于libevent源码的分析,可以移步http://blog.csdn.net/luotuo44/article/c转载 2017-07-01 16:35:30 · 311 阅读 · 0 评论 -
UNIX网络编程读书笔记:基本SCTP套接口编程
概述SCTP是一个较新的传输协议,于2000年在IETF得到标准化(TCP是在1981年标准化的)。它最初是为满足不断增长的IP电话市场设计的;具体地说,就是穿越因特网传输电话信令。SCTP是一个可靠的面向消息的协议,在端点之间提供多个流,并为多宿提供传输级支持。尽管SCTP和TCP之间存在一些本质性的差别,然而SCTP的一到一(one-to-one)接口与TCP提供的应用转载 2017-02-16 09:31:11 · 1990 阅读 · 0 评论 -
reactor/proactor两种高效的事件处理模式和并发模式
服务器编程基本框架:事件处理模式一般来说,IO复用机制都需要一个事件分离器,它会将事件源分发给对应的处理者,即将那些读写事件源分发给各读写事件处理者。Reactor和Proactor就是两种最常用的事件处理模式。ReactorReactor模式是指主线程只负责监听文件描述符上是不是有事件发生,有的话就将该事件通知工作线程,除此之外,主线程不需要做其他任何工作,其转载 2017-06-30 09:10:06 · 1079 阅读 · 0 评论 -
前摄器(Proactor):用于为异步事件多路分离和分派处理器的对象行为模式
第8章 前摄器(Proactor):用于为异步事件多路分离和分派处理器的对象行为模式Irfan Pyarali Tim Harrison Douglas C. Schmidt Thomas D. Jordan摘 要 现代操作系统为开发并发应用提供了多种机制。同步多线程是一种流行的机制,用于开发同时执行多个操作的应用。但是,线程常常有很高的性能开销,并且需要对同步模式和原转载 2017-07-01 15:29:22 · 682 阅读 · 0 评论 -
Libevent 官方文档学习笔记(1. libevent_core部分)
初入libevent的人,很可能是第一次接触异步编程。Libevent的编程思想,建议还是多看前人的程序,或者是看libevent本身的文档学习。或者是介绍另外一个库,那就是libuv,它是libev某种意义上的的替代品(而libev又可以算是libevent的某种替代品笑)。libuv的文档我记得也有对异步编程的介绍。好了,这不是本文的内容。本文地址:https://segmentfau转载 2017-07-01 15:38:53 · 486 阅读 · 0 评论 -
Libevent 官方文档学习笔记(2. bufferevent部分)
本文地址:https://segmentfault.com/a/1190000005601925Libevent的辅助函数和数据类型头文件是。以下只列出我自己会用到的部分。基本类型evutil_socket_tSocket的抽象。除了Windows之外,其他系统都是一个int类型。如果考虑Windows的兼容性的话,建议用这个类型。标准整型以转载 2017-07-01 15:40:00 · 482 阅读 · 0 评论 -
Libevent 官方文档学习笔记(3. evbuffer部分)
Evbuffers: 缓冲化的I/O实用工具 头文件:Evbuffer基本操作struct evbuffer *evbuffer_new (void);void evbuffer_free (struct evbuffer *buf);创建/销毁evbufferint evbuffer_enable_locking (struct evbuffer *buf,转载 2017-07-01 15:41:46 · 432 阅读 · 0 评论 -
libevent介绍及示例 2
一、Libevent简介 libevent是一个基于事件触发的网络库,适用于windows、linux、bsd等多种平台,内部使用select、epoll、kqueue等系统调用管理事件机制。官网:http://libevent.org/特点:事件驱动,高性能;轻量级,专注于网络,不如ACE那么臃肿庞大,只提供了简单的网络API的封装,转载 2017-07-01 15:48:44 · 254 阅读 · 0 评论 -
libevent介绍和安装
1 libevent介绍和安装介绍libevent是一个轻量级的基于事件驱动的高性能的开源网络库,并且支持多个平台,对多个平台的I/O复用技术进行了封装,当我们编译库的代码时,编译的脚本将会根据OS支持的处理事件机制,来编译相应的代码,从而在libevent接口上保持一致。在当前的服务器上,面对的主要问题就是要能处理大量的连接。而通过libevent这个网络库,我们就可以调转载 2017-07-01 15:51:58 · 439 阅读 · 0 评论 -
使用libevent编写Linux服务
转自:http://blog.chinaunix.net/uid-25885064-id-3399488.html一、初始化事件 首先完成对libenvent的事件初始化和事件驱动模型的选择。在使用多线程的情况下,一般我们需获取所返回的事件根基。main_base = event_init();event_init函数返回的是一个event_ba转载 2017-07-01 15:53:50 · 214 阅读 · 0 评论 -
IO设计模式:Reactor和Proactor对比
转自http://www.cnblogs.com/me115/p/4452801.html内容目录:反应器Reactor 主动器Proactor 对比两者的区别 参考IO设计模式:Reactor和Proactor对比平时接触的开源产品如Redis、ACE,事件模型都使用的Reactor模式;而同样做事件处理的Proactor,由于操作系统的原因,相关的开源产品也少;这里学...原创 2017-08-02 16:01:34 · 411 阅读 · 0 评论