Ò׽ؽØÍ¼Èí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö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 µÄ¶àÏ̱߳à³ÌµÄ¸ßЧ¿ª·¢¾­Ñé

2009 Äê 4 ÔÂ 23 ÈÕ
±¾ÎÄÖÐÎÒÃÇÕë¶Ô Linux É϶àÏ̱߳à³ÌµÄÖ÷ÒªÌØÐÔ×ܽá³ö 5 Ìõ¾­Ñ飬ÓÃÒÔ¸ÄÉÆ Linux ¶àÏ̱߳à³ÌµÄϰ¹ßºÍ±ÜÃâÆäÖеĿª·¢ÏÝÚå¡£ÔÚ±¾ÎÄÖУ¬ÎÒÃÇ´©²åһЩ Windows µÄ±à³ÌÓÃÀýÓÃÒÔ¶Ô±È Linux ÌØÐÔ£¬ÒÔ¼ÓÉî¶ÁÕßÓ¡Ïó¡£
±³¾°
Linux ƽ̨ÉϵĶàÏ̳߳ÌÐò¿ª·¢Ïà¶ÔÓ¦ÆäËûƽ̨£¨±ÈÈç Windows£©µÄ¶àÏß³Ì API ÓÐһЩϸ΢ ......

LinuxÄÚºËÅäÖÃÎĵµ(make menuconfig)

Ò»¡¢ÒýÑÔ£º
    ±¾ÎĵµµÄÄÚÈݴ󲿷ÝÄÚÈݶ¼ÊÇ´ÓÍøÉÏÊÕ¼¯¶øÀ´£¬È»ºóÅäºÏһЩеĽØÍ¼£¨Äں˰汾£ºV2.4.19£©¡£ÔÚÿһÅäÖÃÏîºó»áÓÐÒ»¸öÑ¡ÔñÖ¸ÄϵIJ¿·Ý£¬ÓÃÀ´Ö¸µ¼´ó¼ÒÔõôÑù¸ù¾Ý×Ô¼ºµÄÇé¿öÀ´×öÏàÓ¦µÄÑ¡Ôñ£»»¹ÓÐÔÚÿһ¸ö´óÏîºÍÎĵµµÄ×îºó»áÓÐÒ»¸ö¾­Ñé̸£¬ËüÊÇһЩ¸ßÊÖÃÇÔÚÓ¦¶ÔÎÊÌâºÍ´¦ÀíÌØÓÐÓ²¼þʱµÄһЩ¾­Ñ飨Õâ¸ö»¹µ ......

linux Ͻâ¾ö google music ÂÒÂë

ÊäÈëÃüÁ
sudo gedit /etc/fonts/conf.d/49-sansserif.conf
Ô­ÎĵÄÄÚÈÝÊÇ£º
Html´úÂë < type="application/x-shockwave-flash" width="14" height="15" src="http://kmplayer.javaeye.com/javascripts/syntaxhighlighter/clipboard_new.swf" src="http://kmplayer.javaeye.com/javascripts/syntaxhighlighter/clipboar ......

Linux Socketѧϰ±Ê¼Ç£¨2£© SocketµÄ½éÉÜ

Socket ¾ÍÊÇÌ×½Ó×Ö¡£
Socket ¿ÉÒԺͱ¾µØÄ¿Â¼°ó¶¨£¬Ò²¿ÉÒÔºÍÒ»¸öIPµØÖ·°ó¶¨¡£
int socketpair(sa_family, socket_type, protocal,  int sz[2]);
sa_family: AF_LOCAL( ºÍ AF_UNIXÒ»Ñù) ±íʾ±¾µØµÄsocket Á¬½Ó
                 A ......

ºìñЯÊÖ»ªÇåÔ¶¼û¹²½¨¹úÄÚLinux¿ª·¢È˲ÅÅàÑø±ê×¼

 
À´Ô´£º»ªÇåÔ¶¼ûǶÈëʽѧԺ    
ºìñ¹«Ë¾´óÖлªÇøÅàѵ·þÎñ×Ü¼à»Æ½¨Ò«Ó뻪ÇåÔ¶¼û½ÌÓý¼¯ÍÅ×ܲü¾¾Ã·å¹²Í¬ÇìºØºÏ×÷³É¹¦
2010Äê5ÔÂ18ÈÕ£¬»ªÇåÔ¶¼û½ÌÓý¼¯ÍÅÓëºìñ´óÖлªÇø¹ØÓÚLinux¿ª·¢È˲ÅÅàÑøµÄºÏ×÷ǩԼÒÇʽÔÚ±±¾©ÊÀ¼Í²Æ¸»ÖÐÐĺìñ¹«Ë¾×ܲ¿Õýʽ¾ÙÐУ¬ºìñ´óÖлªÇøÅàѵ·þÎñ×Ü¼à»Æ½¨Ò«¡¢»ªÇåÔ¶¼û½ ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ