ioframe socket io frameÉèÏëÖеÄCÍøÂç¿â
ÉèÏëÖеÄCÍøÂç¿âioframe is a simple base socket library using libevent.http://blog.csdn.net/Solstice/archive/2010/03/10/5364096.aspx
°´ÕÕ
µÄ˼ÏëÌá½»µÄÒ»·Ý´úÂë¡£
ÉèÏëÖÐµÄ C++ ÍøÂç¿âḬ̈߳²È«£¬Ö§³Ö¶àºË¶àÏß³ÌÔÚ²»Ôö¼Ó¸´ÔӶȵÄǰÌáÏ¿ÉÒÔÖ§³Ö FreeBSD/Darwin£¬·½±ã½«À´Óà Mac ×÷Ϊ¿ª·¢Óûú£¬µ«²»ÎªËü×öÐÔÄÜÓÅ»¯¡£Ò²¾ÍÊÇ˵ IO multiplexing ʹÓà poll ºÍ epoll¡£Ö÷ÒªÖ§³Ö x86-64£¬¼æ¹Ë IA32²»Ö§³Ö UDP£¬Ö»Ö§³Ö TCP²»Ö§³Ö IPv6£¬Ö»Ö§³Ö IPv4²»¿¼ÂǹãÓòÍøÓ¦Óã¬Ö»¿¼ÂǾÖÓòÍøÖ»Ö§³ÖÒ»ÖÖʹÓÃģʽ£ºnon-blocking IO + one event loop per thread£¬²»¿¼ÂÇ×èÈû IOAPI ¼òµ¥Ò×Óã¬Ö»±©Â¶¾ßÌåÀàºÍ±ê×¼¿âÀïµÄÀ࣬²»Ê¹Óà non-trivial templates£¬Ò²²»Ê¹ÓÃÐ麯ÊýÖ»Âú×ã³£ÓÃÐèÇóµÄ 90%£¬²»ÃæÃæ¾ãµ½£¬±ØÒªµÄʱºòÒÔ app À´ÊÊÓ¦ libÖ»×ö library£¬²»×ö³É frameworkÕùȡȫ²¿´úÂëÔÚ 5000 ÐÐÒÔÄÚ£¨²»º¬²âÊÔ£©ÒÔÉÏÌõ¼þ¶¼Âú×ãʱ£¬¿ÉÒÔ¿¼ÂÇ´îÅä Google Protocol Buffers RPC»¶ÓÅúÆÀsongbohr@gmail.com
¿ªÔ´µØÖ·https://code.google.com/p/ioframe/£¬¿Éͨ¹ýsvn checkout
»òͨ¹ýhttps://code.google.com/p/ioframe/source/browse/#svn/trunk²é¿´
̸ÁËÕâô¶à ACE µÄÓÅȱµã£¬ÄÇôÎÒÐÄÄ¿ÖÐÀíÏëµÄÍøÂç¿âÊÇʲôÑù×ÓµÄÄØ£¿
Ïà¹ØÎĵµ£º
1.staticÓÐʲôÓÃ;£¿£¨ÇëÖÁÉÙ˵Ã÷Á½ÖÖ£©
1)ÔÚº¯ÊýÌ壬һ¸ö±»ÉùÃ÷Ϊ¾²Ì¬µÄ±äÁ¿ÔÚÕâÒ»º¯Êý±»µ÷Óùý³ÌÖÐά³ÖÆäÖµ²»±ä¡£
2) ÔÚÄ£¿éÄÚ£¨µ«ÔÚº¯ÊýÌåÍ⣩£¬Ò»¸ö±»ÉùÃ÷Ϊ¾²Ì¬µÄ±äÁ¿¿ÉÒÔ±»Ä£¿éÄÚËùÓú¯Êý·ÃÎÊ£¬µ«²»Äܱ»Ä£¿éÍâÆäËüº¯Êý·ÃÎÊ¡£ËüÊÇÒ»¸ö±¾µØµÄÈ«¾Ö±äÁ¿¡£
......
CÊý×éµÄСÎÊÌâ
ÕâÀï˵µÄ¶¯Ì¬Êý×éÊÇ¿ÉÒÔ¸ù¾ÝÐèÒª¶¯Ì¬Ôö³¤Õ¼ÓÃÄÚ´æµÄÊý×飬±ÈÈç³ÌÐò³õʼ·ÖÅäÁË100¸öÔªËØ£¬¿ÉÊÇÔËÐÐÁËÒ»¶Îʱ¼äºóÇøÇø100¸ö¿Õ¼ä²»ÄÜÂú×ãÁË£¬ÏÖÔÚÐèÒª400¸ö£¬Ôõô°ìÄØ£»Äǿ϶¨ÐèÒªÔÙ¶îÍâ·ÖÅä300¸ö¡£
CÓïÑÔÓÐrealloc()º¯ÊýÀ´½â¾ö¿Õ¼äÀ©³äµÄÎÊÌ⣬µ«ÊDz»ÒªÍ ......
½áÂÛ£º
char cmd[128];
...
int status = system(cmd);
printf("%d == system(\"%s\");\n", WEXITSTATUS(status), cmd); //´òÓ¡·µ»ØÖµ
ÍøÉÏËѵ½µÄ´ð°¸Óë½âÊÍ(1)£º
http://www.lslnet.com/linux/dosc1/38/linux-280268.htm
ÈçºÎÔÚunix c³ÌÐòÖеõ½systemµ÷Óõķµ»ØÖµ,ÇëÖ¸½Ì
¶Ô system µÄ·µ»ØÖµ ......
ǰÑÔ:
ÎÒÃÇÔÚÕâÒ»½Ú½«ÒªÌÖÂÛlinuxÏÂÎļþ²Ù×÷µÄ¸÷¸öº¯Êý.
1.ÎļþµÄ´´½¨ºÍ¶Áд
2.ÎļþµÄ¸÷¸öÊôÐÔ
3.Ŀ¼ÎļþµÄ²Ù×÷
4.¹ÜµÀÎļþ
--------------------------------------------------------------------------------
1¡£ÎļþµÄ´´½¨ºÍ¶Áд
......
Õâ¸ö¶«¶«£¬ÂùºÃÍæµÄ¡£Æäʵ¾ÍÊǶÁÈ¡ÁË/proc/net/dev Îļþ¡£
struct netdev_stats {
unsigned long long rx_packets_m; /* total packets received */
unsigned long long tx_packets_m; &nbs ......