随笔分类 - libevent
摘要:注意编译的时候gcc -o * *.c -levent 需要加上-levent链接库
阅读全文
摘要:wget http://monkey.org/~provos/libevent-1.4.13-stable.tar.gz tar –xzvf libevent-1.4.13-stable.tar.gz cd libevent-1.4.13-stable ./configure --prefix=/h
阅读全文
摘要:1.先用:ls -al /usr/lib | grep libevent 查看是否已安装,如果已安装且版本低于1.3,则先通过:rpm -e libevent —nodeps 进行卸载。 2.下载libevent安装包:libevent-1.4.13-stable.tar.gz,然后解压。 3.切换
阅读全文
摘要:网络模块(1)一.服务端:暂时就以libevent模块,共享内存等下1.GS打开,首先创建4个libevent子线程,当然为每个线程设置连接通知回调函数,这个是基于sockpair的,然后再创建一个监听线程,专门负责监听2.监听线程收到一个连接后,通过轮询选择一个线程,然后向这个线程的conn_qu...
阅读全文
摘要:多线程版Libevent//保存线程的结构体struct LibeventThread{ LibEvtServer* that; //用作传参 std::shared_ptr spThread; // 线程 struc...
阅读全文
摘要:几个问题:1.libevent到底用的是select还是iocp,然后是如何突破64限制的typedef struct fd_set { u_int fd_count; /* how many are SET? */ SOCKET fd_...
阅读全文
摘要:TCP连接的三次握手和关闭的四次握手这个算是很久的问题了,最近比较闲,研究了一下,以前以为每次发送数据都需要三次握手现在发现只有在建立连接的时候需要握手这个三次握手在连接的时候,四次握手在关闭的时候,分析一下,逻辑很清晰的具体看看这个:http://blog.csdn.net/xiaoweige20...
阅读全文
摘要:只要接触过c/c++网路编程人都可能会知道select io 模式,网络书籍都说 fd_set {int num; SOCKET arr[64]} 有所限制,因为数组的长度只有64,那么超过64你就不能放,要么你就是用多线程分别实用select.。一些书籍通过改定义宏 使数组的长度变长,但也不实用,...
阅读全文
摘要:从别人的博客中转载过来了这一篇文章,经过重新编辑排版之后展现于此,做一个知识点保存与学习。 select函数用于在非阻塞中,当一个套接字或一组套接字有信号时通知你,系统提供select函数来实现多路复用输入/输出模型,原型:int select(int maxfd,fd_set *rdset,...
阅读全文
摘要:单线程libevent模式项目里面是多线程版的,我先理解下单线程的。//client1.调用NGP::init()bool NGP::init(NGPcontext context){ _context = context; //_TcpLink = NEWSP(TcpLink); ...
阅读全文
摘要:在很多比较各种网络模型的文章中,但凡提到select模型时,都会说select受限于轮询的套接字数量,这个数量也就是系统头文件中定义的FD_SETSIZE值(例如64)。但事实上这个算不上真的限制。C语言的偏方:在C语言的世界里存在一个关于结构体的偏门技巧,例如: typedef struct _s...
阅读全文
摘要:如果你想在Windows平台上构建服务器应用,那么I/O模型是你必须考虑的。Windows操作系统提供了选择(Select)、异步选择(WSAAsyncSelect)、事件选择(WSAEventSelect)、重叠I/O(Overlapped I/O)和完成端口(Completion Port)共五...
阅读全文
摘要:下载最新的libevent,目前是libevent-2.0.21-stable.tar.gz修改“D:\libevent-2.0.21-stable\event_iocp.c”、“D:\libevent-2.0.21-stable \evthread_win32.c”、“D:\libevent-2....
阅读全文