ʹÓÃDelphi±àдÆåÅÆÀàÓÎÏ· »ù´¡Æª(2)
¶ÔÓÚÍøÂçÓÎÏ·À´Ëµ£¬ËüºÍµ¥»ú°æÓÎÏ·×î´óµÄÇø±ð¾ÍÔÚÓÚÍøÂçͨÐŲ¿·Ö¡£¿ÉÒÔ˵£¬ÍøÂçͨÐÅÊǹ¹³ÉÍøÓεÄ×î»ù±¾ÔªËØ¡£ÔÚÕâÀïÎÒ²»ÏëÏêϸµÄÂÛÊöÈçºÎʹÓÃDELPHIÔÚWINDOWSϽøÐÐÍøÂç±à³Ì£¬ÒòΪÕâÊÇÒ»¸ö·Ç³£¸´ÔӵϰÌâ¡£ÕâÀïÎÒÖ»ÊÇÏë˵Ã÷ÔÚÎÒÉè¼ÆµÄÆåÅÆÀàÓÎÏ·ÖÐÈçºÎʵÏÖÓÎÏ·ÍøÂ粿·ÖµÄ¡£
¶ÔÓÚWINDOWSÀ´Ëµ£¬ËüµÄͨÐÅÄ£ÐÍ´ó¸Å·ÖΪ5ÖÖ¡£·Ö±ðÊÇ£º
1£ºSELECTÄ£ÐÍ¡£
2£ºWSAAsynSelectÄ£ÐÍ¡£
3£ºWSAEventSelectÄ£ÐÍ¡£
4£ºIOÖØµþÄ£ÐÍ
5£ºÍê³É¶Ë¿ÚÄ£ÐÍ¡£
¶ÔÓÚÐÔÄÜÀ´Ëµ£¬Íê³É¶Ë¿Ú¿ÉÒÔ¹ÜÀíÉÏÍòÁ¬½Ó£¨ÀíÂÛÁ¬½ÓÊýÁ¿¿ÉÒÔ´ïµ½65535¸ö£©£¬ËùÒÔÎÒÑ¡ÔñËüÀ´×÷ΪÎÒÓÎÏ··þÎñÆ÷µÄͨÐÅÄ£ÐÍ¡£
ÓÉÓÚÓÎÏ·¿Í»§¶ËºÍÓÎÏ··þÎñÆ÷µÄÁ¬½ÓÖ»ÐèÒªÒ»Ìõ¾Í¿ÉÒÔ£¬ËùÒÔÎÒÑ¡ÔñÁËSelectÄ£ÐÍ×÷Ϊ¿Í»§¶ËͨÐÅÄ£ÐÍ¡£
¹ØÓÚÈçºÎ±àдÍê³É¶Ë¿ÚÒÔ¼°ÔÚÍê³É¶Ë¿ÚÖÐÈçºÎ¼ÓÈëÐÄÌø£¬ÈçºÎ±ÜÃâÍøÂçͨÐÅÖеÄÕ³°üÏÖÏóÔÚÎÒÒÔǰµÄBLOGÖÐÒѾÓÐÁËÏêϸµÄ½²½â£¬ÓÉÓÚÆª·ùÌ«¶à£¬ÎÒÕâÀï¾Í²»ÔÚ½«ÆäÌù³ö¡£ÏêϸµÄ¿ÉÒԲο´ÎÒµÄBLOG ¡¶DELPHIÖÐÍê³É¶Ë¿Ú(IOCP)µÄ¼òµ¥·ÖÎö£¨1£©¡·-¡¶ DELPHIÖÐÍê³É¶Ë¿Ú(IOCP)µÄ¼òµ¥·ÖÎö£¨4£©¡·ºÍ¡¶ÍøÂçͨÐÅÖеÄÐÄÌø»úÖÆµÄʵÏÖ£¡¡·
µ«ÊÇÔÚÎÒ×î½üÖØÐ¼ì²é´úÂëµÄʱºò·¢ÏÖÎÒÒÔǰ¹ØÓÚIOCPµÄһЩ´¦Àí·½Ê½²»ºÏÊÊ»òÕßÓÐЩµØ·½ÊÇ´íÎóµÄ£¬ÎÒÒѾÔÚÒÔǰµÄBLOGÌû×ÓÖÐ×öÁËÏà¹ØµÄÐ޸ġ£
ÔÚÕâÀïÎÒÃÇÌÖÂÛÒ»ÏÂÈçºÎʵÏÖ¿Í»§¶ËͨÐÅÄ£ÐÍ(SelectÄ£ÐÍ)¡£¶ÔÓÚÊìÏ¤ÍøÂç±à³ÌµÄ³ÌÐòÔ±À´Ëµ£¬±àдһ¸öSELECTͨÐÅÄ£ÐÍÊÇÒ»¼þºÜ¼òµ¥µÄÊ£¬ÒòΪËüÊÇ5ÖÐͨÐÅÄ£ÐÍÖÐ×î¼òµ¥µÄÒ»ÖÖ¡£
±àдselectÄ£Ð͵ĴúÂëÈçÏ£º
Var
Fsocket£ºTsokcet;
procedure Star;
var
CliAddrIn:TSockAddrIn;
hThread:THandle;
ThreadID,outByte:DWORD;
keep_alive,out_keep_alive:TTimeVal;
iAddrSize,opt,I:Integer;
begin
//¼ÓÔØSOCKET,ÎÒʹÓõÄÊÇ2.2°æÎªÁ˺óÃæ·½±ã¼ÓÈëÐÄÌø
if WSAStartUp($202, wsData) <> 0 then
begin
WSACleanup();
end;
//´´½¨Ò»¸öÌ×½Ó×Ö
Fsocket:=socket(AF_INET,SOCK_STREAM,0);
if Fsocket =SOCKET_ERROR then
begin
closesocket(Fsocket);
end
else
begin
//ÕâÀïÌîÈëʵ¼ÊµÄ·þÎñÆ÷IPµØÖ·ºÍ·þÎñÆ÷¼àÌý¶Ë¿Ú
CliAddrIn.sin_addr.s_addr:=inet_addr(Pchar(‘127.0.0.1’));
Ïà¹ØÎĵµ£º
×÷Õß: yangyxd ×ªÔØÇë×¢Ã÷³ö´¦ http://hi.baidu.com/yangyxd 2009-3-12
ÂÛ̳ÀïÓйØÓÚHOOK APIµÄÌù×Ó£¬ µ«ÆäʵÏÖÔÚ·½Ê½ÏÔʾµÃÂé·³£¬ ÆäʵÏÖÔÚÀ¹½ØAPIÒ»°ã²»ÓÃÄÇÖÖ·½Ê½£¬ ´ó¶¼²ÉÓÃinline Hook API·½Ê½¡£ÆäʵҲ¾ÍÊÇÖ±½ÓÐÞ¸ÄÁËÒªÀ¹½ØµÄAPIÔ´ÂëµÄÍ·²¿£¬ÈÃËüÎÞÌõ¼þÌø×ªµ½ÎÒÃÇ× ......
TCollection ÊÇTCollectionItenm¶ÔÏóµÄÒ»¸öÈÝÆ÷¡£
Àà¹ØÏµTObject→TPersistent
¡¡¡¡Ã¿Ò»¸öTCollection¶¼ÓµÓÐÒ»×éTCollectionItem¶ÔÏó¡£
¡¡¡¡ÔÚÆäItemsÊôÐÔÊý×éÖУ¬TCcllection±£´æ¼¯ºÏÏîÄ¿µÄÒ»¸öϱꡣCount ÊôÐÔ°üº¬Á˼¯ºÏµÄÏîÄ¿ÊýÁ¿¡£Ê¹ÓÃAddºÍClear·½·¨¿ÉÒÔÏò¼¯ºÏÖмÓÈëÏîÄ¿ºÍ´Ó¼¯ºÏÖÐɾ³ýÏîÄ¿¡£
¡¡¡¡´ÓTCollect ......
DirectoryExists('C:\WINDOWS'):Boolean;¼ì²âÎļþ¼ÐÊÇ·ñ´æÔÚ£¡
FileExists('c:\Dir.txt'):Boolean;¼ì²âÎļþÊÇ·ñ´æÔÚ£¡
EDIT×é¼þ
OnChange µ±±à¼¿òÖеÄÄÚÈÝ·¢Éú±ä»¯Ê±´¥·¢¸Ãʼþ
OnKeyPress µ±°´ÏÂÒ»¸ö°´¼üʱ£¬´¥·¢¸Ãʼþ
OnEnter ±à¼¿ò»ñµÃÊäÈë½¹µãʱ£¬´¥·¢¸Ãʼþ
MEMO×éºÏ
WordWrap ÓÃÓÚÉ趨Momo×é¼þÊÇ·ñ¾ßÓÐ×Ô¶ ......
1£¬¹æ·¶¼ò½é
¡¡¡¡±¾¹æ·¶Ö÷Òª¹æ¶¨DelphiÔ´³ÌÐòÔÚÊéд¹ý³ÌÖÐËùÓ¦×ñѵĹæÔò¼°×¢ÒâÊÂÏî¡£±àд¸Ã¹æ·¶µÄÄ¿µÄÊÇʹ¹«Ë¾Èí¼þ¿ª·¢ÈËÔ±µÄÔ´´úÂëÊéдϰ¹ß±£³ÖÒ»Ö¡£ÕâÑù×ö¿ÉÒÔʹÿһ¸ö×éÔ±¶¼¿ÉÒÔÀí½âÆäËü×éÔ±µÄ´úÂ룬ÒÔ±ãÓÚÔ´´úÂëµÄ¶þ´Î¿ª·¢¼ÇÒäϵͳµÄά»¤¡£
2£¬Ò»°ã¸ñʽ¹æ·¶
2.1 Ëõ½ø
¡¡¡¡Ëõ½ø¾ÍÊÇÔÚµ±Ô´³ÌÐòµÄ¼¶¸Ä±äʱΪÔö¼ ......
Ŀǰ¿ª·¢ÆåÅÆÀàÓÎÏ·µÄ¹«Ë¾ºÍ¸öÈ˺ܶࡣµ«ÊǶÔÓںܶ࿪·¢ÕßÀ´Ëµ£¬¿ª·¢Ò»¿î¾ßÓпÉÀ©Õ¹¡¢Îȶ¨µÄÆåÅÆÀàÓÎÏ·»¹ÊǾßÓÐÒ»¶¨µÄÄѶȡ£Õâ´ÎÎÒ¾ÍÒÔÎÒ¿ª·¢ÆåÅÆÀàÓÎϷΪÀý£¬½²ÊöÈçºÎʹÓÃDELPHIÀ´¿ª·¢ÆåÅÆÀàÓÎÏ·¡£Ï£ÍûÎҵľÑé¿ÉÒÔ¶ÔÓÎÏ·¿ª·¢°®ºÃÕ߯ðµ½Å×שÒýÓñµÄ×÷Óá£Èç¹ûÄú¶ÔÎÒ»ù´¡ÆªÖÐÉæ¼°µ½µÄÄÚÈݷdz£ÊìϤ£¬¿ÉÒÔÖ±½ÓÌø¹ý½øÈëÉè¼ÆÆª¡£ ......