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

DELPHIÖÐÍê³É¶Ë¿Ú(IOCP)µÄ¼òµ¥·ÖÎöÍêÕûƪ

Ï£Íû´ó¼ÒÔÚתÌùµÄʱºò×¢Ã÷³ö´¦£¬Ð»Ð»)
ÓÃDELPHI¿ª·¢ÍøÂç´úÂëÒѾ­ÓÐÒ»¶Îʱ¼äÁË£¡
ÎÒ·¢ÏÖÔÚÍøÉÏÓÃVCÀ´ÊµÏÖÍê³É¶Ë¿Ú£¨IOCP£©µÄ´úÂëºÜ¶à£¬µ«ÊÇʹÓÃDELPHIÀ´ÊµÏֵľͱȽÏÉÙÁË¡£¶ÔIOCP½²µÄÇå³þµÄ¾Í¸üÉÙÁË¡£ÔÚÕâÀïÎÒ°Ñ×Ô¼º±àдDELPHIϵÄIOCPд³öÀ´£¬Ï£Íû¶Ô¸ÕѧÍê³É¶Ë¿ÚµÄÅóÓÑÓиö°ïÖú¡£
Ê×ÏÈÎÒÃÇÀ´Á˽âһЩÔÚʹÓÃIOCPµÄʱºòÐèҪʹÓõÄһЩ½á¹¹£¡
£¨1£©£ºµ¥IOÊý¾Ý½á¹¹
  LPVOID = Pointer;
  LPPER_IO_OPERATION_DATA = ^ PER_IO_OPERATION_DATA ;
  PER_IO_OPERATION_DATA = packed record
    Overlapped: OVERLAPPED;
    DataBuf: TWSABUF;
    Buffer: array [0..1024] of CHAR;
    BytesSEND: DWORD;
    BytesRECV: DWORD;
  end;
ÉÏÃæµÄ½á¹¹ÖÐOverlapped: OVERLAPPED;ºÍDataBuf: TWSABUF;Êǹ̶¨µÄ½á¹¹ÀàÐÍ¡£Buffer: array [0..1024] of CHAR;ÊÇÓÃÀ´±£´æ½ÓÊÜÊý¾ÝµÄ»º´æ¡£BytesSEND: DWORD;ÓÃÀ´±êÖ¾·¢ËÍÊý¾ÝµÄ³¤¶È¡£BytesRECV: DWORD;ÓÃÀ´±êÖ¾½ÓÊÜÊý¾ÝµÄ³¤¶È¡£ÒòΪÍê³É¶Ë¿ÚµÄ¹¤×÷ÕßÏ߳̿ÉÒÔ½ÓÊܵ½À´×Ô¿Í»§¶ËµÄÊý¾Ý£¬Í¬Ê±»¹¿ÉÒÔ½ÓÊܵ½×Ô¼º·¢Ë͸ø¿Í»§¶ËµÄÊý¾Ý£¬ËùÒÔÎÒÃÇʹÓÃBytesSEND£¬BytesRECV±äÁ¿À´ËµÊÇÓÃÀ´Çø·ÖÕâ´ÎµÄÊý¾ÝÊÇÀ´×Ô¿Í»§¶ËµÄÊý¾Ý»¹ÊÇ×Ô¼º·¢ËͳöÈ¥µÄÊý¾Ý¡£ÏêϸµÄʹÓ÷½·¨£¬ÎÒ»áÔÚÏÂÃæÏêϸ˵Ã÷¡£
£¨2£©£º“µ¥¾ä±úÊý¾Ý½á¹¹”
  LPPER_HANDLE_DATA = ^ PER_HANDLE_DATA;
  PER_HANDLE_DATA = packed record
    Socket: TSocket;
  end;
ÏÂÀ´ÎÒ´Ó±àдһ¸öÍê³É¶Ë¿ÚµÄΪÀý˵Ã÷¡£
if WSAStartUp($202, wsData) <> 0 then
begin
   WSACleanup();
end;
¼ÓÔØSOCKET¡£ÎÒʹÓõÄÊÇ2.2°æÎªÁ˺óÃæ·½±ã¼ÓÈëÐÄÌø¡£
CompletionPort:=CreateIOCompletionPort(INVALID_HANDLE_VALUE,0,0,0);
´´½¨Ò»¸öÍê³É¶Ë¿Ú¡£
GetSystemInfo(LocalSI);
for I:=0 to LocalSI.dwNumberOfProcessors * 2 -1 do
begin
   hThread := CreateThread(nil, 0, @ServerWorkerThread, Pointer(CompletionPort),0, ThreadID);
   if (hThread = 0) then
   begin
       Exit;
   end;
   CloseHandle(hThread);
end;
¸ù¾ÝCPUµÄÊýÁ¿´´½¨CPU*2ÊýÁ¿µÄ¹¤×÷ÕßÏ̡߳£
Listensc:=


Ïà¹ØÎĵµ£º

DELPHIÓû§µÇ¼·½°¸

3.2  Óû§µÇ¼·½°¸
ÔÚ½øÈëÒ»¸öϵͳʱ£¬±ØÐëÏÈÔڵǼ´°ÌåÖÐÊäÈëÕýÈ·µÄÓû§ÃûºÍÃÜÂë²ÅÄܽøÈë¡£ÕâÑù¿ÉÒÔÈ·±£ÏµÍ³µÄ°²È«ÐԺͱ£ÃÜÐÔ£¬µÇ¼´°ÌåµÄÖÆ×÷°´ÕÕϵͳµÄ´óС¼°Óô¦£¬¿ÉÒÔ·ÖΪ²»Í¬µÄµÇ¼´°ÌåÑùʽ£¬ÔÚϵͳµÚÒ»´ÎµÇ¼ǰ£¬Ê×ÏÈÒª¶Ô²Ù×÷Ô±ÐÅÏ¢½øÐÐÏàÓ¦µÄÉèÖᣱ¾½Ú½«¶ÔµÇ¼´°Ìå¼°²Ù×÷Ô±¹ÜÀí´°ÌåµÄÖÆ×÷¹ý³Ì½øÐÐÏêϸµÄ˵Ã÷ ......

ÔÚDelphiÓ¦ÓóÌÐòÖÐʹÓÃDLL

ÔÚDelphiÓ¦ÓóÌÐòÖÐʹÓÃDLL
¡¡¡¡Delphi²»½ö¿Éµ÷ÓÃC£«£«²úÉúµÄDLLÄ£¿é£¬Í¬ÑùC£«£«³ÌÐòÒ²¿Éµ÷ÓÃDelphiËù²úÉúµÄDLL²¿¼þ¡£ÕâÑù½»»¥µ÷Óã¬ÎÞÐëÖØ¸´¿ª·¢£¬´ó´óËõ¶ÌÁËÉú²úÖÜÆÚ¡£ 
¡¡¡¡DelphiÓëVisualBasic¡¢VisualFoxProµÈÈí¼þÒ»Ñù£¬ÊôÓÚRAD¹¤¾ß£¨¿ìËÙÓ¦Óÿª·¢¹¤¾ß£©¡£ÊʺϿª·¢32λ»ò16λ£¯32λ»ìºÏÓ¦ÓóÌÐò¡£DelphiËùÊ¹Ó ......

DelphiµÄWeb Services¼¼Êõ¿ª·¢¶ÌÐÅÓ¦ÓóÌÐò

Ò»ÌáÆð»ùÓÚWeb Services¼¼ÊõµÄÓ¦ÓóÌÐò¿ª·¢£¬Ò»°ãÈËÊ×ÏÈÏëµ½µÄ¿ª·¢¹¤¾ßÊÇVs.net£¬Æäʵ×÷Ϊ¿ìËÙÓ¦ÓóÌÐò¿ª·¢¹¤¾ß(RAD)µÄÀÏ´ó£¬Delphi´Ó6.0¾Í¿ªÊ¼Ö§³ÖWeb ServicesµÄ¿ª·¢ºÍÓ¦ÓÃÁË£¬±¾ÎÄͨ¹ýʹÓÃDelphi 7.0µ÷ÓÃÐÂÀË·¢ËͶÌÐŵÄWeb Service½øÐжÌÐÅÓ¦ÓóÌÐò¿ª·¢ÕâһʵÀýÏêϸµÄ½éÉÜÔÚDelphiÖÐÈçºÎ¿ª·¢»ùÓÚWeb ServicesµÄÓ¦ÓÃϵͳ¡ ......

×Ö·û´®¡¢PCharÓë×Ö·ûÊý×éÖ®¼äµÄת»»(delphi)

ÉèÓÐÒÔÏÂÈý¸ö±äÁ¿£º
var
  s:string;
  p:pchar;
  a:array[1..20] of char;
ÄÇôÈýÕßÖ®¼äµÄת»»ÈçÏ£º
1¡¢×Ö·û´®µ½PChar
    p:=PChar(s);
2¡¢PCharµ½×Ö·û´®
    s:=p;
3¡¢PCharµ½×Ö·ûÊý×é
    StrCopy(@a,p);
4¡¢×Ö·ûÊý×éµ½PChar
   ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ