LinuxÏÂselectµÄʹÓÃС¼Ç
½ñÌìʹÓÃselect±à³Ì£¬ÎÊÌâºÜ¶à£¬ÒÔÇ°ÕæµÄûÓÐ×ÐϸÑо¿¹ý¡£
³öÏÖÁËÒÔϼ¸¸öÎÊÌâ
1 recvfromÔÚ½ÓÊÕʱ£¬Ìṩ¸øÏµÍ³µ÷ÓõÄ×îºóÒ»¸ö²ÎÊý£¬¿Í»§¶ËµÄµØÖ·½á¹¹£¬Æä³¤¶È±ØÐë½øÐгõʼ»¯£¬Èç¹ûΪ0£¬Ôò²»ÄܽÓÊÕÊý¾Ý¡£
2 selectµÄµÚÒ»¸ö²ÎÊýΪËùÓмàÊÓµÄÎļþÃèÊö·ûµÄ×î´óÖµ+1£¬¶ø²»ÊǼàÊÓµÄÎļþÃèÊö·û¸öÊý+1¡£
3 ²»Òª¼àÊÓÄÇЩ¾³£¿ÉÓõÄÎļþÃèÊö·û£¬Èç¹ûÕâÑù×ö£¬select»áÒ»Ö±·µ»Ø¡£
4 ÔÚselect·µ»Øºó£¬Èç¹û¼àÊÓµÄÎļþÃèÊö·ûûÓÐ״̬¸Ä±ä£¬ÔòÔÚfd_setÖдËÎļþÃèÊö·û»á±»Çå0£¬Òò´ËÔÚselectµÄÑ»·ÖУ¬Ã¿´Î½øÈë¶¼ÒªÖØÐÂÉèÖÃÎÒÃÇËù¹Ø×¢µÄÎļþÃèÊö·û¡£
5 Èç¹ûselectʹÓÃÁ˳¬Ê±²Ù×÷£¬Ã¿´Î·µ»Øselect¶¼»áÐ޸ļÆÊ±Æ÷£¬½«¼ÆÊ±Æ÷ÉèΪÓàϵÄʱ¼ä£¬Òò´ËÈç¹ûʹÓÃÁ˼ÆÊ±Æ÷£¬Ã¿´Î½øÈëÑ»·¶¼ÒªÖØÖüÆÊ±Æ÷¡£pselectûÓÐÕâ¸ö벡¡£
ÏÂÃæÊÇlinuxϵĻùÓÚselectµÄÒ»¸öUDP·´Éä·þÎñÆ÷µÄʾÀý´úÂ룺
#include <sys/select.h>
#include <sys/types.h>
#include <sys/time.h>
#include <unistd.h>
#include <stdio.h>
#include <error.h>
#include <stdio.h>
#include <sys/socket.h>
#include <arpa/inet.h>
#include <stdlib.h>
#include <assert.h>
int
main()
{
int sockfd = socket(AF_INET,SOCK_DGRAM,0);
assert(sockfd>0);
struct sockaddr_in local;
local.sin_family = AF_INET;
local.sin_port = htons(8000);
local.sin_addr.s_addr = INADDR_ANY;
int err = bind(sockfd,(struct sockaddr*)&local,sizeof(local));
assert(err==0);
fd_set sets[3];
for(int i=0;i<3;i++)
{
FD_ZERO(&sets[i]);
}
timeval tv;
char buf[1024];
while(1)
{
FD_SET(sockfd,&sets[0]);
//register
tv.tv_sec = 1;
//monitor and handle
int nfds = select(sockfd+1,&sets[0],&sets[1],&sets[2],&tv);
if(nfds<0)
{
perror("select");
exit(-1);
}
printf("evnet num = %d\n",nfds);
//handle
for(int i=0;i<nfds;i++)
{
struct sockaddr_in remo
Ïà¹ØÎĵµ£º
×ÜÀÀ
ÓÃiptables -ADC À´Ö¸¶¨Á´µÄ¹æ
Ôò
£¬-AÌí¼Ó -Dɾ³ý -C ÐÞ¸Ä
iptables - [RI] chain rule num rule-specification[option]
ÓÃiptables - RI ͨ¹ý¹æÔòµÄ˳ÐòÖ¸¶¨
iptables -D chain rule num[option]
ɾ³ýÖ¸¶¨¹æÔò
iptables -[LFZ] [chain][option]
ÓÃiptables -LFZ Á´Ãû [Ñ¡Ïî]
iptables -[NX] chain
ÓÃ -NX ......
ÓÉÓÚ Linux Á¼ºÃµÄÓû§È¨ÏÞ¹ÜÀíÌåϵ£¬²¡¶¾ÍùÍùÊÇ Linux ϵͳ¹ÜÀíÔ±×îºó²ÅÐèÒª¿¼ÂǵÄÎÊÌâ¡£ÒÔÍù£¬Linux ÉϵÄɱ¶¾Èí¼þÖ÷ÒªÊÇΪÆóÒµµÄÓʼþºÍÎļþ·þÎñÆ÷ËùÉè¼ÆµÄ¡£Èç½ñ£¬Ëæ×Å Linux ×ÀÃæÓû§ÊýÁ¿µÄÔö³¤£¬×ÀÃæÓû§ÔÚÊÜÒæÓÚ Linux ϵͳ¶Ô²¡¶¾½ÏÇ¿µÄÌìÈ»ÃâÒßÁ¦µÄͬʱ£¬Ò²ÐèҪɱ¶¾Èí¼þÇåÀí´ÓÍøÂç»òUÅÌ´øÀ´µÄWIndows²¡¶¾¡£¾¡¹ÜÄÇЩ ......
À´×Ô http://blog.csdn.net/saintony/category/226987.aspx
¼ÆËã»ú×î´óµÄÊг¡ÊÇǶÈëʽÉ豸¡£»ù±¾ÉÏ£¬º¬ÓмÆËã»úµ«ÊÇÍâ±í²¢²»Ïó¼ÆËã»úµÄÒ»ÇÐÉ豸¶¼¿ÉËãǶÈëʽ£¬°üÀ¨ÍøÂçÉ豸£¨Èç·ÓÉÆ÷£©£¬¹¤¿ØÉ豸£¨ÈçÊý¿Ø»ú´²£©£¬Æû³µ£¬ÐÅÏ¢¼Òµç, ÒÆ¶¯¼ÆËãÉ豸µÈ¸÷ÖÖÉ豸¡£ÄÇô£¬ÔÚÕâ¸ö×î´óµÄÊг¡ÖУ¬LinuxºÍWindows˸üÓÐʵÓÃÐÔÄØ£¿ÈÃÎÒà ......
linuxÓкܶàÖµµÃѧϰµÄµØ·½£¬ÕâÀïÎÒÃÇÖ÷Òª½éÉÜlinux¿âÎļþ£¬¾¹ýËѼ¯ºÍÕûÀílinux¿âÎļþ²ÄÁÏ£¬ÔÚÕâÀïÄóöÀ´ºÍ´ó¼Ò·ÖÏíһϣ¬Ï£Íû´ó¼Ò¿´ºó»áÓв»ÉÙÊÕ»ñ¡£
linux¿âÎļþÔÚÁ¬½Ó£¨¾²Ì¬¿âºÍ¹²Ïí¿â£©ºÍÔËÐУ¨½öÏÞÓÚʹÓù²Ïí¿âµÄ³ÌÐò£©Ê±±»Ê¹Óã¬ÆäËÑË÷·¾¶ÊÇÔÚϵͳÖнøÐÐÉèÖõġ£
Ò»°ã Linux ϵͳ°Ñ /lib ºÍ /usr/lib Á½¸öĿ¼×÷Î ......
¾¹ý³¤Ê±¼äѧϰlinux¿âÎļþµÄ¸ÅÄ½ñÌìС±àÒ²¸ø´ó¼ÒËѼ¯Á˹ØÓÚ¿âµÄ¸ÅÄîÒÔ¼°×÷Óã¬Ï£Íû´ó¼Ò¿´ºó»áÓкܶàÊÕ»ñ¡£
1.ʲôÊÇlinux¿â
ÔÚwindowsƽ̨ºÍlinuxƽ̨϶¼´óÁ¿´æÔÚ×ſ⡣±¾ÖÊÉÏÀ´Ëµ¿âÊÇÒ»ÖÖ¿ÉÖ´ÐдúÂëµÄ¶þ½øÖÆÐÎʽ£¬¿ÉÒÔ±»²Ù×÷ÏµÍ³ÔØÈëÄÚ´æÖ´ÐС£ÓÉÓÚwindowsºÍlinuxµÄ±¾Öʲ»Í¬£¬Òò´Ë¶þÕß¿âµÄ¶þ½øÖÆÊDz»¼æÈݵġ£±¾ÎĽö ......