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

Windows Socket I/OÄ£ÐÍ ÒÔ¼° Linux EpollÄ£ÐÍ

±¾Îļòµ¥½éÉÜÁ˵±Ç°WindowsÖ§³ÖµÄ¸÷ÖÖSocket I/OÄ£ÐÍ£¬Èç¹ûÄã·¢ÏÖÆäÖдæÔÚʲô´íÎóÇëÎñ±Ø´Í½Ì¡£
Ò»£ºselectÄ£ÐÍ
¶þ£ºWSAAsyncSelectÄ£ÐÍ
Èý£ºWSAEventSelectÄ£ÐÍ
ËÄ£ºOverlapped I/O ʼþ֪ͨģÐÍ
Î壺Overlapped I/O Íê³ÉÀý³ÌÄ£ÐÍ
Áù£ºIOCPÄ£ÐÍ
ÀϳÂÓÐÒ»¸öÔÚÍâµØ¹¤×÷µÄÅ®¶ù£¬²»Äܾ­³£»ØÀ´£¬ÀϳºÍËýͨ¹ýÐżþÁªÏµ¡£ËûÃǵÄÐŻᱻÓʵÝԱͶµÝµ½ËûÃǵÄÐÅÏäÀï¡£
ÕâºÍSocketÄ£Ðͷdz£ÀàËÆ¡£ÏÂÃæÎÒ¾ÍÒÔÀϳ½ÓÊÕÐżþΪÀý½²½âSocket I/OÄ£ÐÍ~~~
Ò»£ºselectÄ£ÐÍ
Àϳ·dz£Ïë¿´µ½Å®¶ùµÄÐÅ¡£ÒÔÖÁÓÚËûÿ¸ô10·ÖÖÓ¾ÍÏÂÂ¥¼ì²éÐÅÏ䣬¿´ÊÇ·ñÓÐÅ®¶ùµÄÐÅ~~~~~
ÔÚÕâÖÖÇé¿öÏ£¬"ÏÂÂ¥¼ì²éÐÅÏä"È»ºó»Øµ½Â¥Éϵ¢ÎóÁËÀϳÂÌ«¶àµÄʱ¼ä£¬ÒÔÖÁÓÚÀϳÂÎÞ·¨×öÆäËû¹¤×÷¡£
selectÄ£ÐͺÍÀϳµÄÕâÖÖÇé¿ö·Ç³£ÏàËÆ£ºÖܶø¸´Ê¼µØÈ¥¼ì²é......Èç¹ûÓÐÊý¾Ý......½ÓÊÕ/·¢ËÍ.......
ʹÓÃÏß³ÌÀ´selectÓ¦¸ÃÊÇͨÓõÄ×ö·¨£º
procedure TListenThread.Execute;
var
addr : TSockAddrIn;
fd_read : TFDSet;
timeout : TTimeVal;
ASock,
MainSock : TSocket;
len, i : Integer;
begin
MainSock := socket( AF_INET, SOCK_STREAM, IPPROTO_TCP );
addr.sin_family := AF_INET;
addr.sin_port := htons(5678);
addr.sin_addr.S_addr := htonl(INADDR_ANY);
bind( MainSock, @addr, sizeof(addr) );
listen( MainSock, 5 );
while (not Terminated) do
begin
FD_ZERO( fd_read );
FD_SET( MainSock, fd_read );
timeout.tv_sec := 0;
timeout.tv_usec := 500;
if select( 0, @fd_read, nil, nil, @timeout ) > 0 then //ÖÁÉÙÓÐ1¸öµÈ´ýAcceptµÄconnection
begin
if FD_ISSET( MainSock, fd_read ) then
begin
for i:=0 to fd_read.fd_count-1 do //×¢Ò⣬fd_count <= 64£¬Ò²¾ÍÊÇ˵selectÖ»ÄÜͬʱ¹ÜÀí×î¶à64¸öÁ¬½Ó
begin
len := sizeof(addr);
ASock := accept( MainSock, addr, len );
if ASock <> INVALID_SOCKET then
....//ΪASock´´½¨Ò»¸öеÄỊ̈߳¬ÔÚеÄÏß³ÌÖÐÔÙ²»Í£µØselect
end;
end;
end;
end; //while (not self.Terminated)
shutdown( MainSock, SD_BOTH );
closesocket( MainSock );
end;
¶þ£ºWSAAsyncSelectÄ£ÐÍ
ºóÀ´£¬ÀϳÂʹÓÃÁË΢Èí¹«Ë¾µÄÐÂʽÐÅÏä¡£ÕâÖÖÐÅÏä·Ç³£ÏȽø£¬Ò»µ©ÐÅÏäÀïÓÐеÄÐżþ£¬¸Ç´Ä¾Í»á¸øÀϳ´òµç»°£ºÎ¹£¬´óÒ¯£¬ÄãÓÐеÄÐżþÁË£¡´Ó´Ë£¬ÀϳÂÔÙÒ²²»±ØÆµ·±ÉÏÏÂÂ


Ïà¹ØÎĵµ£º

ʵսLinux Bluetooth±à³Ì(Áù) L2CAP±à³ÌʵÀý

ÀýÒ»£º·¢ËÍSignaling Packet£º
Signaling CommandÊÇ2¸öBluetoothʵÌåÖ®¼äµÄL2CAP²ãÃüÁî´«Êä¡£ËùÒÔµÃSignaling CommandʹÓÃCID 0x0001.
¶à¸öCommand¿ÉÒÔÔÚÒ»¸öC-frame£¨control frame£©Öз¢ËÍ¡£
 Èç¹ûÒªÖ±½Ó·¢ËÍSignaling Command.ÐèÒª½¨Á¢SOCK_RAWÀàÐ͵ÄL2CAPÁ¬½ÓSocket¡£ÕâÑù²ÅÓлú»á×Ô¼ºÌî³äCommand Code£¬Identi ......

linuxÏÂʵʱ¼ì²âÍøÂç´ø¿íµÄС¹¤¾ßbmon

ÔÚlinuxµÄprocÎļþϵͳÖУ¬Í¨¹ý²é¿´/proc/net/devÎļþ
¿ÉÒԵõ½Ã¿¸öÍøÂç½Ó¿ÚµÄÍÌÍÂÁ¿£¬µ«ÊÇÎÞ·¨»ñµÃʵʱ´ø¿í
×î½ü·¢ÏÖÁËÒ»ÖÖ»ùÓÚncurses¿âµÄС³ÌÐòbmon£¬¿ÉÒÔ»ñµÃʵʱ´ø¿í
Example:
Ö´ÐÐ
[root@debian ~]# bmon -o ascii -p eth0
Interface RX Rate RX # TX Rate TX #
eth0 0.00B 0.0 0.00B 0.0
eth0 0.00B 0.0 ......

¹ØÓÚLinux£¨1£©


Õë¶ÔºÃ¶àLinux °®ºÃÕß¶ÔÄں˺ÜÓÐÐËȤȴÎÞ´ÓÏ¿ڣ¬±¾ÎÄÖ¼ÔÚ½éÉÜÒ»ÖÖ½â¶ÁlinuxÄÚºËÔ´ÂëµÄÈëÃÅ·½·¨£¬¶ø²»Êǽâ˵linux¸´ÔÓµÄÄں˻úÖÆ£» £¨²Î¿¼×ÊÁÏÀ´Ô´£º·ÉÁè http://www.witech.com.cn/£©
Ò»£®ºËÐÄÔ´³ÌÐòµÄÎļþ×éÖ¯£º
1£®LinuxºËÐÄÔ´³ÌÐòͨ³£¶¼°²×°ÔÚ/usr/src/linuxÏ£¬¶øÇÒËüÓÐÒ»¸ö·Ç³£¼òµ¥µÄ±àºÅÔ¼¶¨£ºÈκÎżÊýµÄºËÐÄ£ ......

linux crontab¼Æ»®ÈÎÎñµÄʹÓÃ

      Ãû³Æ : crontab
¡¡¡¡Ê¹ÓÃȨÏÞ : rootÓû§ºÍcrontabÎļþµÄËùÓÐÕß
¡¡¡¡Óï·¨ :
¡¡¡¡crontab [-e [UserName]|-l [UserName]|-r [UserName]|-v [UserName]|File ]
ÖØÆô£ºsudo /etc/init.d/cron restart
¡¡¡¡ËµÃ÷ :
¡¡¡¡crontab ÊÇÓÃÀ´ÈÃʹÓÃÕßÔڹ̶¨Ê±¼ä»ò¹Ì¶¨¼ä¸ôÖ´ÐгÌʽ֮Ó㬻»¾ä»°Ëµ£ ......

linuxϵÄrpmÊÇʲôÒâ˼


RPM ÊÇ Red Hat Package Manager µÄËõд£¬±¾ÒâÊÇRed Hat Èí¼þ°ü¹ÜÀí£¬¹ËÃû˼ÒåÊÇRed Hat ¹±Ï׳öÀ´µÄÈí¼þ°ü¹ÜÀí£»
ÔÚFedora ¡¢Redhat¡¢Mandriva¡¢SuSE¡¢YellowDogµÈÖ÷Á÷·¢Ðа汾£¬ÒÔ¼°ÔÚÕâЩ°æ±¾»ù´¡É϶þ´Î¿ª·¢³öÀ´µÄ·¢Ðаæ²ÉÓã»
RPM°üÀïÃæ¶¼°üº¬Ê²Ã´£¿ÀïÃæ°üº¬¿ÉÖ´ÐеĶþ½øÖƳÌÐò£¬Õâ¸ö³ÌÐòºÍWindowsµÄÈí¼þ°üÖеÄ.exeÎ ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ