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

WSAAsyncSelectÄ£ÐÍDelphi¼òµ¥ÊµÏÖ


TCPÁ¬½Ó½¨Á¢Óë¹Ø±Õ
ÏàП÷λ¶ÁÕßÏÖÔÚ¶Ôì¶ Winsock µÄ¶¨Ò塢ϵͳ»·¾³£¬ÒÔ¼°Ò»Ð© Winsock Stack¼° Winsock Ó¦ÓóÌʽ£¬¶¼Óлù±¾µÄÈÏʶÁË¡£½ÓÏÂÀ´±ÊÕßÏ£ÍûÄÜ·Ö¼¸ÆÚΪ¸÷λ¶ÁÕß½éÉÜһϼòµ¥µÄ Winsock ÍøÂ·Ó¦ÓóÌʽÉè¼Æ¡£ÎÒÃǽ«ÒÔ Winsock 1.1 ¹æ¸ñËù¶¨ÒåµÄ 46 ¸öÓ¦ÓóÌʽ½éÃæ£¨API£©Îª»ù´¡£¬Öð²½À´½¨Á¢Ò»¶Ô TCP socket Ö÷´Ó¼Ü¹¹£¨Client / Server£©µÄ³Ìʽ¡£ÔÚÕâÁ½¸ö³ÌʽÖУ¬Server ½«Ê¹Óà Winsock ÌṩµÄ¡¸·Çͬ²½¡¹£¨asynchronous£©º¯Ê½À´½¨Á¢ socket Á¬½á¡¢¹Ø±Õ¡¢¼°×ÊÁÏÊÕË͵ȵȣ»¶ø Client Ôò²ÉÀàËÆ´«Í³ UNIX µÄ¡¸×èÀ¹Ê½¡¹£¨blocking£©¡£ÓÉì¶ÎÒÃǵÄÖØµã²¢²»ÔÚì¶ MS Windows SDK µÄ³ÌʽÉè¼Æ£¬ËùÒÔÎÒÃǽ«Ê¹ÓÃ×î¼ò±ãµÄ·½Ê½À´ÏÔʾѶϢ£»ÓÐ¹Ø MS Windows ³ÌʽµÄ¼¼ÇÉ£¬Çë¸÷λ¶ÁÕß×ÔÐÐÑо¿Ïà¹ØµÄÊé¼®¼°ÎÄÕ¡£
½ñÌìÎÒÃÇÏÈÒª¿´Ò»ÏÂÖ÷´Ó¼Ü¹¹ TCP socket µÄ½¨Á¢Á¬½á£¨connect£©¼°¹Ø±Õ£¨close£©¡£ÒÔǰ±ÊÕßÔø¼òµ¥µØ½éÉܹýÖ÷´Ó¼Ü¹¹µÄ¸ÅÄÏÖÔÚÎÒÃÇÔÙÒÔÉú»îÉϸüdzÏÔµÄÀý×ÓÀ´ËµÃ÷һϣ¬¶ÁÕßÉÔááÒ²½ÏÈÝÒ×ÄÜÃ÷°×±ÊÕßµÄÐðÊö¡£ÎÒÃÇ¿ÉÒÔ¼ÙÉè Server ¾ÍÏñÊǵçОÖËùÌṩµÄһЩ·þÎñ£¬±ÈÈ硸104 ²éºĄ̊¡¹»ò¡¸112 Õϰ­Ì¨¡¹¡£
£¨1£©µçОÖÏȽ¨Á¢ºÃÁËÒ»¸öµç»°×Ü»ú£¬Õâ¾ÍÏñÊǺô½Ð socket() º¯Ê½¿ªÆôÁËÒ»¸ö socket¡£
£¨2£©½ÓÖøµçОֽ«Õâ¸ö×Ü»úµÄºÅÂ붨Ϊ 104£¬¾ÍÈçͬÎÒÃǺô½Ð bind() º¯Ê½£¬½« Server µÄÕâ¸ö socket Ö¸¶¨£¨bind£©ÔÚijһ¸ö port¡£µ±È»µçОֱØÐëÈÃÓû§ÖªµÀÕâ¸öºÅÂ룻¶øÎÒÃÇµÄ Client ³ÌʽͬÑùÒ²ÒªÖªµÀ Server ËùÓÃµÄ port£¬´ý»á²ÅÓа취ÓëÖ®Á¬½Ó¡£
£¨3£©µçÐÅ¾ÖµÄ 104 ²éºĄ̊µ×Ï»áÓÐһЩ×Ô¶¯·þÎñµÄ·Ö»ú£¬µ«ÊÇËüµÄÊýÁ¿ÊÇÓÐÏ޵ģ¬ËùÒÔÓÐʱÄã»á²¦²»Í¨Õâ¸öºÅÂ루æÏߣ©¡£Í¬ÑùµØ£¬ÎÒÃÇÔÚ½¨Á¢Ò»¸ö TCP µÄServer socket ʱ£¬Ò²»áºô½Ð listen() º¯Ê½À´¼àÌýµÈ´ý£»listen() µÄµÚ¶þ¸ö²ÎÊý¼´ÊÇ waiting queue µÄÊýÄ¿£¬Í¨³£ÊýÖµÊÇÓÉ 1 µ½ 5¡££¨ÊÂʵÉÏÕâÁ½Õß»¹ÊÇÓе㲻һÑù¡££©
£¨4£©Óû§ÖªµÀÁ˵çОֵÄÕâ¸ö 104 ²éºÅ·þÎñ£¬Ëû¾Í¿ÉÒÔÀûÓÃij¸öµç»°À´²¦ºÅÁ¬½ÓÕâ¸ö·þÎñÁË¡£Õâ¾ÍÊÇÎÒÃÇ Client ³Ìʽ¿ªÆôÒ»¸öÏàͬµÄ TCP socket£¬È»ááºô½Ð connect() º¯Ê½È¥Á¬½Ó Server Ö¸¶¨µÄÄǸö port¡£µ±È»ÁË£¬ºÍµç»°Ò»Ñù£¬Èç¹û waiting queue ÂúÁË¡¢Óë Server ¼äÏß·²»Í¨¡¢»òÊÇ Server ûÌṩ´ËÏî·þÎñʱ£¬ÄãµÄÁ¬½Ó¾Í»áʧ°Ü¡£
£¨5£©µçОֲéºĄ̊µÄ×Ü»ú½ÓÊÜÁËÕâͨ²éѯµÄµç»°áᣬËü»áתµ½ÁíÒ»¸ö·Ö»ú×ö·þÎñ£¬¶ø×Ü»ú±¾ÉíÔòÔٻص½µÈ´ýµÄ״̬¡£Server µÄ listening socket ÒàÊÇÒ»Ñù£¬µ±Äãºô½ÐÁË accept(


Ïà¹ØÎĵµ£º

Delphi¶àÏß³Ìѧϰ£¨6£©£ºÐźÅÁ¿Semaphore

ÐźÅÁ¿Êǽ¨Á¢ÔÚ»¥³âÁ¿µÄ»ù´¡Ö®ÉÏ£¬Í¬Ê±¼ÓÈëÖØÒªÌØÐÔ£ºÌṩÁË×ÊÔ´¼ÆÊý¹¦ÄÜ£¬Òò´ËÔ¤¶¨ÒåÊýÁ¿µÄÏß³Ìͬʱ¿ÉÒÔ½øÈëͬ²½µÄ´úÂë¿éÖС£
      ÐźÅÁ¿ÊÇά»¤0µ½Ö¸¶¨×î´óÖµÖ®¼äµÄ¼ÆÊýÆ÷µÄͬ²½¶ÔÏ󣬵±Ïß³ÌÍê³ÉÒ»´ÎÐźÅÁ¿µÄµÈ´ýʱ£¬¼ÆÊýÆ÷×Ô¼õ1£¬µ±Ïß³ÌÊÍ·ÅÐźÅÁ¿¶ÔÏóʱ£¬¼ÆÊýÆ÷×ÔÔö1¡£
    ......

DelphiÖеÄRecord


ÔÚDelphiÖеÄRecordÀàÐÍÖУ¬ÓëÖ®CÓïÑÔ¶ÔÓ¦µÄ¼´ÊǽṹÌåÀàÐÍ£¨struct
£©£¬Ò²¿ÉÄÜÊÇΪÁË·ûºÏCÓïÑÔ»òC++³ÌÐòÔ±µÄϰ¹ß£¬¶ÔÓÚËüÔÚDelphiÖеÄÓ¦ÓôæÔÚµÄһЩÎÊÌâ½øÐгõ²½µÄ˵Ã÷¡£ÔÚDelphiÖеļǼÌåÀàÐÍÓÐÁ½ÖÖ·½Ê½¶¨Òå
Type
    RecTest = record (packed
)
      ID :integer; ......

delphi ±àдdllÎļþ

dllÎļþ¼ò½é£º
ËüÊÇDynamic Link Library µÄËõдÐÎʽ£¬DLL ÊÇÒ»¸ö°üº¬¿ÉÓɶà¸ö³ÌÐòͬʱʹÓõĴúÂëºÍÊý¾ÝµÄ¿â£¬DLL²»ÊÇ¿ÉÖ´ÐÐÎļþ¡£¶¯Ì¬Á´½ÓÌṩÁËÒ»ÖÖ·½·¨£¬Ê¹½ø³Ì¿ÉÒÔµ÷Óò»ÊôÓÚÆä¿ÉÖ´ÐдúÂëµÄº¯Êý¡£º¯ÊýµÄ¿ÉÖ´ÐдúÂëλÓÚÒ»¸ö DLL ÖУ¬¸Ã DLL °üº¬Ò»¸ö»ò¶à¸öÒѱ»±àÒë¡¢Á´½Ó²¢ÓëʹÓÃËüÃǵĽø³Ì·Ö¿ª´æ´¢µÄº¯Êý¡£DLL »¹ÓÐÖúÓ ......

DelphiÖ÷´°¿ÚÈÎÎñÀ¸²Ëµ¥µÄÎÊÌâ

DelphiµÄVCL¿ò¼ÜÔÚ´´½¨Ó¦ÓÃʱTApplicationÊÇÒ»¸ö×Ô¶¯´´½¨µÄÒþ²Ø´°¿Ú£¬ÆäËü´´½¨µÄ´°¿ÚÊÇ×Ô¶¯ÒԸô°¿ÚΪ´°¿Ú£¬Õâ¾Íµ¼Ö´´Ê¼µÄÖ÷´°¿ÚÔÚÈÎÎñÀ¸µÄϵͳ²Ëµ¥Ö»ÓÐÈýÏֻҪÔÚÖ÷´°¿ÚµÄCreateʼþÖн«ÏµÍ³²Ëµ¥ÓÃApplicationµÄϵͳ²Ëµ¥Ìæ»»£¬²¢½«SysCommandÏûϢת·¢µ½Ö÷´°¿Ú¾ÍÕý³£ÁË¡£
unit Unit1;
interface
uses
  Windows ......

delphi 動態°²裝·þ務


unit winntService;
interface
uses
Windows,WinSvc,WinSvcEx;
function InstallService(const strServiceName,strDisplayName,strDescription,strFilename: string):Boolean;
procedure UninstallService(strServiceName:string);
implementation
function StrLCopy(Dest: PChar; const Source: PChar; MaxLen: C ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ