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
    
     
	
	
    
    
	Ïà¹ØÎĵµ£º
        
    
    2009 Äê 4 ÔÂ 23 ÈÕ
±¾ÎÄÖÐÎÒÃÇÕë¶Ô Linux É϶àÏ̱߳à³ÌµÄÖ÷ÒªÌØÐÔ×ܽá³ö 5 Ìõ¾Ñ飬ÓÃÒÔ¸ÄÉÆ Linux ¶àÏ̱߳à³ÌµÄϰ¹ßºÍ±ÜÃâÆäÖеĿª·¢ÏÝÚå¡£ÔÚ±¾ÎÄÖУ¬ÎÒÃÇ´©²åһЩ Windows µÄ±à³ÌÓÃÀýÓÃÒÔ¶Ô±È Linux ÌØÐÔ£¬ÒÔ¼ÓÉî¶ÁÕßÓ¡Ïó¡£
±³¾°
Linux ƽ̨ÉϵĶàÏ̳߳ÌÐò¿ª·¢Ïà¶ÔÓ¦ÆäËûƽ̨£¨±ÈÈç Windows£©µÄ¶àÏß³Ì API ÓÐһЩϸ΢ ......
	
    
        
    
    Ëæ×ÅLinuxÓ¦ÓõÄÀ©Õ¹£¬Ðí¶àÅóÓÑ¿ªÊ¼½Ó´¥Linux£¬¸ù¾ÝѧϰWindwosµÄ¾ÑéÍùÍùÓÐһЩãȻµÄ¸Ð¾õ£º²»Öª´ÓºÎ´¦¿ªÊ¼Ñ§Æð¡£×÷Ϊһ¸ö
Linuxϵͳ¹ÜÀíÔ±£¬ÎÒ¿´ÁËÐí¶àÓйØLinuxµÄÎĵµºÍÊé¼®£¬²¢ÎªÑ§Ï°Linux¸¶³öÁËÐí¶à¼è¿àµÄŬÁ¦¡£µ±ÕæÕý»ñµÃÁËÒ»·ÝÕýʽµÄLinuxϵͳ¹ÜÀí¹¤×÷
ºó£¬ÎÒ¸ü¼ÓÉî 
¿ÌµØÀí½âÁËLinuxµÄÁé»ê£º·þÎñÓÚ¶àÓû§¡£Linux ......
	
    
        
    
    
×÷ÕߣºCMK  ³ö´¦£ºUnix°®ºÃÕß¼ÒÔ°unix-cd.com  ¸üÐÂʱ¼ä£º 2006Äê05ÔÂ22ÈÕ 
ÎÞÂÛÊÇÔÚLinux»¹ÊÇÔÚUnix»·¾³ÖУ¬make¶¼ÊÇÒ»¸ö·Ç³£ÖØÒªµÄ±àÒëÃüÁî¡£²»¹ÜÊÇ×Ô¼º½øÐÐÏîÄ¿¿ª·¢»¹Êǰ²×°Ó¦ÓÃÈí¼þ£¬ÎÒÃǶ¼¾³£ÒªÓõ½make»òmake install¡£ÀûÓÃmake¹¤¾ß£¬ÎÒÃÇ¿ÉÒÔ½«´óÐ͵Ŀª·¢ÏîÄ¿·Ö½â³ÉΪ¶à¸ö¸üÒ×ÓÚ¹ ......
	
    
        
    
    À´×Ô http://blog.csdn.net/saintony/category/226987.aspx
¼ÆËã»ú×î´óµÄÊг¡ÊÇǶÈëʽÉ豸¡£»ù±¾ÉÏ£¬º¬ÓмÆËã»úµ«ÊÇÍâ±í²¢²»Ïó¼ÆËã»úµÄÒ»ÇÐÉ豸¶¼¿ÉËãǶÈëʽ£¬°üÀ¨ÍøÂçÉ豸£¨Èç·ÓÉÆ÷£©£¬¹¤¿ØÉ豸£¨ÈçÊý¿Ø»ú´²£©£¬Æû³µ£¬ÐÅÏ¢¼Òµç, ÒÆ¶¯¼ÆËãÉ豸µÈ¸÷ÖÖÉ豸¡£ÄÇô£¬ÔÚÕâ¸ö×î´óµÄÊг¡ÖУ¬LinuxºÍWindows˸üÓÐʵÓÃÐÔÄØ£¿ÈÃÎÒà ......