»ùÓÚDelphiµÄSocket I/OÄ£ÐÍÈ«½Ó´¥(×ܽá) [ת]
ת×Ô´ó¸»ÎÌhttp://www.delphibbs.com/keylife/iblog_show.asp?xid=30049
ÀϳÂÓÐÒ»¸öÔÚÍâµØ¹¤×÷µÄÅ®¶ù£¬²»Äܾ³£»ØÀ´£¬ÀϳºÍËýͨ¹ýÐżþÁªÏµ¡£ËûÃǵÄÐŻᱻÓʵÝԱͶµÝµ½ËûÃǵÄÐÅÏäÀï¡£
¡¡¡¡ÕâºÍ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Ä£ÐÍ
¡¡¡¡ºóÀ´£¬ÀϳÂʹÓÃÁË΢Èí¹«Ë¾µÄÐÂʽÐÅÏä¡£ÕâÖÖÐÅÏä·Ç³£ÏȽø£¬Ò»µ©ÐÅÏäÀïÓÐеÄÐżþ£¬¸Ç´Ä¾Í»á¸øÀϳ´òµç»°£ºÎ¹£¬´óÒ¯£¬ÄãÓÐеÄÐżþÁË£¡´Ó´Ë£¬ÀϳÂÔÙÒ²²»±ØƵ·±ÉÏÏÂÂ¥¼ì²éÐÅÏäÁË£¬ÑÀÒ²²»ÌÛÁË£¬Äã³ò×¼ÁË£¬À¶Ìì....
Ïà¹ØÎĵµ£º
*ÀàµÄ¹«¿ªÊôÐÔ£¨´úÂ룩
ʾÀý£º·ÃÎÊÀàµÄpublishedÊôÐÔ
˵Ã÷£ºvmtFieldTable£¨Published Field±í£©Ö¸ÏòPublished Field±íÓÐÐòÅÅÁУ¬Ö»´æ´¢µ±Ç°ÀàµÄPublishedField±í£¬µÃµ½¸¸ÀàµÄPublished Field±íÐèÒªÍùÉϱéÀú¡£
×¢Ò⣺ֻÓÐÀàÐÍÊÇÀà»ò½Ó¿ÚµÄÊý¾Ý³ÉÔ±²Å¿É¶¨ÒåΪpublishedµÄ·ÃÎʼ¶±ð
´úÂ룺
type
TMyO ......
Delphi ÖÐÁ÷µÄʹÓÃ(1) Óà TMemoryStream(ÄÚ´æÁ÷) ÈëÃÅ
Ç°ÑÔ:
Ëùν"Á÷", ¾ÍÊÇÒ»¶ÎÊý¾Ý»òÊÇÒ»¿éÄÚ´æ;
ÔÚ½øÐÐÁ÷²Ù×÷ʱ, ÎÒÃDz»±Ø¹ØÐÄÁ÷ÖеÄÊý¾Ýµ½µ×ÊÇʲô; Ö»ÐèÒªÖªµÀÁ÷µÄ´óСºÍµ±Ç°µÄÖ¸ÕëλÖÃ. ËùÒÔÁ÷Ö»ÓÐÁ½¸öÊôÐÔ:
Size¡¢Position.
¶ÔÁ÷µÄ²Ù×÷, ²»¹ý¾ÍÊǶÁÈ¡ºÍдÈë. ËùÒÔÁ÷×îÖ÷ÒªµÄ·½·¨¾ÍÊÇ Read ºÍ Write.
Ôںܶ࿠......
delphi TStringList Ó÷¨Ïê½â
//TStringList ³£Ó÷½·¨ÓëÊôÐÔ
:
var
List: TStringList;
i: Integer;
begin
List := TStringList.Create;
List.Add('Strings1'); {Ìí¼Ó}
List.Add('Strings2');
List.Exch ......
procedure TfrmMain.FormCreate(Sender: TObject); //Ö÷´°ÌåFormCreateʼþ
var FWidth:integer;
begin
if (screen.Width <> 1024) then //¼ÙÉèÄãÉè¼Æ³ÌÐòʱµÄ·Ö±æÂÊΪ1024
begin
FWidth:=width;
scaled:=true;
& ......
Delphi´Ó6.0¾Í¿ªÊ¼Ö§³ÖWeb ServicesµÄ¿ª·¢ºÍÓ¦ÓÃÁË£¬±¾ÎÄͨ¹ýʹÓÃDelphi 7.0µ÷ÓÃÐÂÀË·¢ËͶÌÐŵÄWeb Service½øÐжÌÐÅÓ¦ÓóÌÐò¿ª·¢ÕâһʵÀýÏêϸµÄ½éÉÜÔÚDelphiÖÐÈçºÎ¿ª·¢»ùÓÚWeb ServicesµÄÓ¦ÓÃϵͳ¡£
µÚÒ»²½£¬×¼±¸¹¤×÷£¬Á˽âÐÂÀ˶ÌÐÅWeb Service¡£ÐÂÀË·¢ËͶÌÐŵÄWeb ServiceµØÖ·ÊÇhttp://smsinter.sina.com.cn/ws/smswebs ......