摘要:转:http://blog.csdn.net/lanyd/article/details/6046023Linux下突破连接限制实现高并发量服务器转自:http://hi.baidu.com/fdwm_lx/blog/item/0c3cdb383f132acfd5622507.html一、文件数限制修改(1) vi /etc/security/limits.conf* soft nofile 10240 * hard nofile 10240(2) vi /etc/pam.d/loginsession required /lib/security/pam_limits.so二、网络端口限制修改
阅读全文
摘要:源:http://blog.csdn.net/wanghaobo920/article/details/8222202开发高性能网络程序时,windows开发者们言必称iocp,linux开发者们则言必称epoll。大家都明白epoll是一种IO多路复用技术,可以非常高效的处理数以百万计的socket句柄,比起以前的select和poll效率高大发了。我们用起epoll来都感觉挺爽,确实快,那么,它到底为什么可以高速处理这么多并发连接呢?先简单回顾下如何使用C库封装的3个epoll系统调用吧。[cpp]view plaincopyintepoll_create(intsize);intepol
阅读全文
摘要:源:http://blog.csdn.net/herm_lib/article/details/8192371概述epoll是linux提供一种多路复用的技术,类似各个平台都支持的select,只是epoll在内核的实现做了更多地优化,可以支持比select更多的文件描述符,当然也支持 socket这种网络的文件描述符。linux上的大并发的接入服务器,目前的实现方式肯定都通过epoll实现。epoll和线程有很多开发人员用epoll的时候,会开多个线程来进行数据通信,比如一个线程专门accept(我个人早些年在FreeBSD用kqueue的时候,由于对内部机制没有基本了解也这样搞),一个线程
阅读全文
摘要:源:http://www.cnblogs.com/OnlyXP/archive/2007/08/10/851222.html在linux的网络编程中,很长的时间都在使用select来做事件触发。在linux新的内核中,有了一种替换它的机制,就是epoll。相比于select,epoll最大的好处在于它不会随着监听fd数目的增长而降低效率。因为在内核中的select实现中,它是采用轮询来处理的,轮询的fd数目越多,自然耗时越多。并且,在linux/posix_types.h头文件有这样的声明:#define __FD_SETSIZE 1024表示select最多同时监听1024个fd,当然,可以
阅读全文
摘要:来源:http://blog.csdn.net/shining100/article/details/5651878上次为大家介绍了阻塞式多线程服务端程序和阻塞式客户端程序的设计方法,但是在上文的最后也提到过,服务器程序会因为建立连接和关闭连接而频繁的创建和关闭线程会产生大量的内存碎片,从而导致服务端程序不能保证长时间的稳定运行。因此我在这里为大家介绍另外一种建立服务器和客户端程序的方法,即建立非阻塞式的服务器和客户端程序。 那什么是非阻塞呢?非阻塞是相对于阻塞而言,阻塞指的是在进行一个操作的时候,如服务器接收客户端的连接(accept),服务器或者客户端读写数据(read、write),如果
阅读全文
摘要:转载http://wgwang.github.com/tech/misc/log4cplustutorial.html#id8介绍log4cplus是log4j的c++移植版,是c++中一个很好的打印日志的库。它与另外一个c++的log库log4cxx相比较,好处是不依赖于libapr和libaprutil,可以静态链接到程序中,便于部署。当前的最新稳定版本是1.04,也是下面的例子中所用到的版本。从这个版本中所了解到的,log4cplus并未完全实现了log4j,不少细节部分都没有实现。但这并不妨碍我们使用它。下面是一些log4cplus资源:log4cplus project:http:/
阅读全文
摘要:1、下载log4cplus-1.1.1-rc1.ziphttp://sourceforge.net/projects/log4cplus/?source=dlp2、解压#unziplog4cplus-1.1.1-rc1.zip3、#cd log4cplus-1.0.4-rc104、#./configure --prefix=/usr/local5、#make6、#make install7、检查:安装成功会在/usr/local/lib下看到liblog4cplus.a,在/usr/local/include下有个liblog4cplus文件夹
阅读全文
摘要:转http://www.cnblogs.com/feisky/archive/2010/03/09/1681996.html库从本质上来说是一种可执行代码的二进制格式,可以被载入内存中执行。库分静态库和动态库两种。静态库和动态库的区别1. 静态函数库 这类库的名字一般是libxxx.a;利用静态函数库编译成的文件比较大,因为整个 函数库的所有数据都会被整合进目标代码中,他的优点就显而易见了,即编译后的执行程序不需要外部的函数库支持,因为所有使用的函数都已经被编译进去了。当然这也会成为他的缺点,因为如果静态函数库改变了,那么你的程序必须重新编译。2. 动态函数库 这类库的名字一般是libxxx.
阅读全文