Ò׽ؽØͼÈí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö160KB

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


Ïà¹ØÎĵµ£º

Èý¿î Linux ϵÄÃâ·Ñ×ÀÃ漶ɱ¶¾Èí¼þ(ͼ)


ÓÉÓÚ Linux Á¼ºÃµÄÓû§È¨ÏÞ¹ÜÀíÌåϵ£¬²¡¶¾ÍùÍùÊÇ Linux ϵͳ¹ÜÀíÔ±×îºó²ÅÐèÒª¿¼ÂǵÄÎÊÌâ¡£ÒÔÍù£¬Linux ÉϵÄɱ¶¾Èí¼þÖ÷ÒªÊÇΪÆóÒµµÄÓʼþºÍÎļþ·þÎñÆ÷ËùÉè¼ÆµÄ¡£Èç½ñ£¬Ëæ×Å Linux ×ÀÃæÓû§ÊýÁ¿µÄÔö³¤£¬×ÀÃæÓû§ÔÚÊÜÒæÓÚ Linux ϵͳ¶Ô²¡¶¾½ÏÇ¿µÄÌìÈ»ÃâÒßÁ¦µÄͬʱ£¬Ò²ÐèҪɱ¶¾Èí¼þÇåÀí´ÓÍøÂç»òUÅÌ´øÀ´µÄWIndows²¡¶¾¡£¾¡¹ÜÄÇЩ ......

Linuxϵͳ¹ÜÀíѧϰ·Ïßͼ

Ëæ×ÅLinuxÓ¦ÓõÄÀ©Õ¹£¬Ðí¶àÅóÓÑ¿ªÊ¼½Ó´¥Linux£¬¸ù¾ÝѧϰWindwosµÄ¾­ÑéÍùÍùÓÐһЩãȻµÄ¸Ð¾õ£º²»Öª´ÓºÎ´¦¿ªÊ¼Ñ§Æð¡£×÷Ϊһ¸ö
Linuxϵͳ¹ÜÀíÔ±£¬ÎÒ¿´ÁËÐí¶àÓйØLinuxµÄÎĵµºÍÊé¼®£¬²¢ÎªÑ§Ï°Linux¸¶³öÁËÐí¶à¼è¿àµÄŬÁ¦¡£µ±ÕæÕý»ñµÃÁËÒ»·ÝÕýʽµÄLinuxϵͳ¹ÜÀí¹¤×÷
ºó£¬ÎÒ¸ü¼ÓÉî
¿ÌµØÀí½âÁËLinuxµÄÁé»ê£º·þÎñÓÚ¶àÓû§¡£Linux ......

Linux/Unix»·¾³ÏµÄmakeºÍmakefileÏê½â


×÷ÕߣºCMK  ³ö´¦£ºUnix°®ºÃÕß¼ÒÔ°unix-cd.com  ¸üÐÂʱ¼ä£º 2006Äê05ÔÂ22ÈÕ 
ÎÞÂÛÊÇÔÚLinux»¹ÊÇÔÚUnix»·¾³ÖУ¬make¶¼ÊÇÒ»¸ö·Ç³£ÖØÒªµÄ±àÒëÃüÁî¡£²»¹ÜÊÇ×Ô¼º½øÐÐÏîÄ¿¿ª·¢»¹ÊÇ°²×°Ó¦ÓÃÈí¼þ£¬ÎÒÃǶ¼¾­³£ÒªÓõ½make»òmake install¡£ÀûÓÃmake¹¤¾ß£¬ÎÒÃÇ¿ÉÒÔ½«´óÐ͵Ŀª·¢ÏîÄ¿·Ö½â³ÉΪ¶à¸ö¸üÒ×ÓÚ¹ ......

¾É°æ±¾linuxÄÚºËÉý¼¶µ½Ð°汾Äں˱àÒëÑ¡Ôñ

general setup
    ---> enable deprecated sysfs features which may confuse old
userspace tools
insmod: error inserting '/lib/dm-region-hash.ko' : -1 File exists
½â¾ö
cp /boot/initrd-2.6.x.img /tmp
cd /tmp
mkdir newinitrd
cd newinitrd/
zcat ../initrd-2.6.x.img |cpio -i
ÏÂ ......

LinuxÖÐRouteÃüÁî

ÔÚÅäÖÃÍøÂçʱ£¬ÒªÎª»úÆ÷Ö¸¶¨½ÓÊÕÊý¾Ý°üʱ¸Ã°üÒª¾­¹ýµÄ·¾¶¡£ÔÚLinuxϵͳÖУ¬Ìṩһ¸öÃüÁîroute£¬Õâ¸öÃüÁî¿ÉÒÔΪifconfigÃüÁîÅäÖõÄÍø¿¨ÉèÖþ²Ì¬Â·ÓÉ¡£ÕâÖÖÉèÖù¤×÷ͨ³£ÔÚ/etc/rc.d/rc.inet1ÖÐÒýÈ룬ÔÚϵͳÒýµ¼Ê±½øÐС£
¡¡¡¡ÎÒÃÇͨ¹ý¼¸¸öÀý×ÓÀ´ËµÃ÷ÈçºÎʹÓÃrouteÃüÁî:
¡¡¡¡¡¡¡¡routeadd-net127.0.0.0
¡¡¡¡Õâ¸öÃüÁÏòÂ·Ó ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØͼ | ¸ÓICP±¸09004571ºÅ