亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來(lái)到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? fingcli.pas

?? 包含常用Internet協(xié)議TCP,UDP、HTTP、FTP、Telnet等
?? PAS
字號(hào):
{*_* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

Author:       Fran鏾is PIETTE
Description:  TFingerCli is a FINGER protocol client using TWSocket
              Conform to RFC-1288 (supercede RFCs 1196, 1194 and 742)
Creation:     December 18, 1997
Version:      1.01
EMail:        http://users.swing.be/francois.piette  francois.piette@swing.be
              http://www.rtfm.be/fpiette             francois.piette@rtfm.be
              francois.piette@pophost.eunet.be
Support:      Use the mailing list twsocket@rtfm.be See website for details.
Legal issues: Copyright (C) 1997, 1998, 1999 by Fran鏾is PIETTE
              Rue de Grady 24, 4053 Embourg, Belgium. Fax: +32-4-365.74.56
              <francois.piette@pophost.eunet.be>

              This software is provided 'as-is', without any express or
              implied warranty.  In no event will the author be held liable
              for any  damages arising from the use of this software.

              Permission is granted to anyone to use this software for any
              purpose, including commercial applications, and to alter it
              and redistribute it freely, subject to the following
              restrictions:

              1. The origin of this software must not be misrepresented,
                 you must not claim that you wrote the original software.
                 If you use this software in a product, an acknowledgment
                 in the product documentation would be appreciated but is
                 not required.

              2. Altered source versions must be plainly marked as such, and
                 must not be misrepresented as being the original software.

              3. This notice may not be removed or altered from any source
                 distribution.

              4. You must register this software by sending a picture postcard
                 to the author. Use a nice stamp and mention your name, street
                 address, EMail address and any comment you like to say.

Updates:
Aug 20, 1999 V1.01 Added compile time options. Revised for BCB4.

 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
unit FingCli;

interface

{$B-}           { Enable partial boolean evaluation   }
{$T-}           { Untyped pointers                    }
{$X+}           { Enable extended syntax              }
{$IFNDEF VER80} { Not for Delphi 1                    }
    {$H+}       { Use long strings                    }
    {$J+}       { Allow typed constant to be modified }
{$ENDIF}
{$IFDEF VER110} { C++ Builder V3.0                    }
    {$ObjExportAll On}
{$ENDIF}
{$IFDEF VER125} { C++ Builder V4.0                    }
    {$ObjExportAll On}
{$ENDIF}

uses
    WinTypes, WinProcs, SysUtils, Messages, Classes, Graphics, Controls,
    WSocket;

const
    FingerCliVersion = 101;

type
    TFingerCli = class(TComponent)
        constructor Create(AOwner: TComponent); override;
        destructor  Destroy; override;
        procedure   StartQuery;
        function    Receive(Buffer : Pointer; Len : Integer) : Integer;
        procedure   Abort;
    protected
        FWSocket            : TWSocket;
        FQuery              : String;
        FQueryDoneFlag      : Boolean;
        FOnSessionConnected : TSessionConnected;
        FOnDataAvailable    : TDataAvailable;
        FOnQueryDone        : TSessionClosed;
        procedure WSocketDnsLookupDone(Sender: TObject; Error: Word);
        procedure WSocketSessionConnected(Sender: TObject; Error: Word);
        procedure WSocketDataAvailable(Sender: TObject; Error: Word);
        procedure WSocketSessionClosed(Sender: TObject; Error: Word);
        procedure TriggerQueryDone(Error: Word);
    published
        property Query : String                         read  FQuery
                                                        write FQuery;
        property OnSessionConnected : TSessionConnected read  FOnSessionConnected
                                                        write FOnSessionConnected;
        property OnDataAvailable : TDataAvailable       read  FOnDataAvailable
                                                        write FOnDataAvailable;
        property OnQueryDone : TSessionClosed           read  FOnQueryDone
                                                        write FOnQueryDone;
    end;

procedure Register;

implementation


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure Register;
begin
    RegisterComponents('FPiette', [TFingerCli]);
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
constructor TFingerCli.Create(AOwner: TComponent);
begin
    inherited Create(AOwner);
    FWSocket                    := TWSocket.Create(Self);
    FWSocket.OnSessionConnected := WSocketSessionConnected;
    FWSocket.OnDataAvailable    := WSocketDataAvailable;
    FWSocket.OnSessionClosed    := WSocketSessionClosed;
    FWSocket.OnDnsLookupDone    := WSocketDnsLookupDone;
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
destructor TFingerCli.Destroy;
begin
    if Assigned(FWSocket) then
        FWSocket.Destroy;
    inherited Destroy;
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure TFingerCli.StartQuery;
var
    I    : Integer;
    Host : String;
begin
    I := Pos('@', FQuery);
    if I <= 0 then
         raise Exception.CreateFmt('TFingerCli, Invalid Query: %s', [FQuery]);
    Host := Copy(FQuery, I + 1, Length(FQuery));
    if Length(Host) <= 0 then
         raise Exception.CreateFmt('TFingerCli, Invalid Host in query: %s', [FQuery]);
    FQueryDoneFlag := FALSE;
    FWSocket.DnsLookup(Host);
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure TFingerCli.Abort;
begin
    FWSocket.CancelDnsLookup;
    FWSocket.Abort;
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
function TFingerCli.Receive(Buffer : Pointer; Len : Integer) : Integer;
begin
    Result := FWSocket.Receive(Buffer, Len);
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure TFingerCli.WSocketDnsLookupDone(Sender: TObject; Error: Word);
begin
    if Error <> 0 then
        TriggerQueryDone(Error)
    else begin
        FWSocket.Addr  := FWSocket.DnsResult;
        FWSocket.Proto := 'tcp';
        FWSocket.Port  := 'finger';
        FWSocket.Connect;
    end;
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure TFingerCli.WSocketSessionConnected(Sender: TObject; Error: Word);
begin
    if Assigned(FOnSessionConnected) then
        FOnSessionConnected(Self, Error);

    if Error <> 0 then begin
        TriggerQueryDone(Error);
        FWSocket.Close
    end
    else
        FWSocket.SendStr(FQuery + #13 + #10);
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure TFingerCli.WSocketDataAvailable(Sender: TObject; Error: Word);
begin
    if Assigned(FOnDataAvailable) then
        FOnDataAvailable(Self, Error);
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure TFingerCli.TriggerQueryDone(Error: Word);
begin
    if (FQueryDoneFlag = FALSE) and Assigned(FOnQueryDone) then
        FOnQueryDone(Self, Error);
    FQueryDoneFlag := TRUE;
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure TFingerCli.WSocketSessionClosed(Sender: TObject; Error: Word);
begin
    TriggerQueryDone(Error);
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}

end.

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人短视频下载| 欧美性大战久久久久久久| 亚洲综合在线电影| 久久久777精品电影网影网 | 亚洲一区在线观看视频| 久久久亚洲午夜电影| 91精品婷婷国产综合久久竹菊| 国产成人亚洲精品青草天美| 日本视频一区二区| 一区二区高清在线| 国产精品天干天干在线综合| 日韩久久免费av| 欧美高清视频在线高清观看mv色露露十八| 岛国精品在线观看| 国产制服丝袜一区| 日韩成人免费在线| 亚洲电影第三页| 亚洲中国最大av网站| 中文字幕中文乱码欧美一区二区| 精品国产亚洲在线| 欧美一区二区三区在线电影| 欧美撒尿777hd撒尿| 色一区在线观看| 91在线免费播放| 成人深夜福利app| 国产成人午夜精品影院观看视频 | 欧美三级三级三级爽爽爽| a4yy欧美一区二区三区| 国产a精品视频| 国产呦萝稀缺另类资源| 蜜桃视频一区二区三区在线观看 | 婷婷夜色潮精品综合在线| 亚洲久草在线视频| 亚洲激情男女视频| 亚洲美女在线一区| 亚洲小少妇裸体bbw| 亚洲国产三级在线| 午夜激情久久久| 日韩中文欧美在线| 男女男精品网站| 老司机免费视频一区二区三区| 日韩高清在线一区| 麻豆精品久久久| 精一区二区三区| 国产伦理精品不卡| 成人av网址在线| 一本久久精品一区二区| 欧美日韩亚洲综合在线 欧美亚洲特黄一级 | 欧美精品第1页| 日韩西西人体444www| 欧美成人精品1314www| 欧美精品一区二区三区四区| 国产无人区一区二区三区| 国产精品女主播在线观看| 日韩毛片高清在线播放| 亚洲最大成人网4388xx| 日韩精品乱码av一区二区| 狠狠色狠狠色综合日日91app| 激情五月婷婷综合| 成人av中文字幕| 在线观看91精品国产入口| 555www色欧美视频| 国产亚洲一区二区三区在线观看 | 欧美日韩日日摸| 精品欧美一区二区在线观看| 国产欧美精品日韩区二区麻豆天美| 国产精品毛片高清在线完整版| 亚洲美女偷拍久久| 麻豆91精品视频| 北岛玲一区二区三区四区| 欧美日韩在线不卡| 久久综合久久综合久久综合| 最新热久久免费视频| 日韩av中文在线观看| 国产高清精品久久久久| 欧洲视频一区二区| 欧美精品一区在线观看| 一区二区高清视频在线观看| 精品综合久久久久久8888| 色哟哟精品一区| 2014亚洲片线观看视频免费| 亚洲男人天堂av网| 国产在线精品免费| 欧美日韩亚洲不卡| 国产精品乱子久久久久| 蜜臀91精品一区二区三区 | 日本在线播放一区二区三区| 国产成人精品三级麻豆| 欧美美女直播网站| 国产精品欧美一区二区三区| 久久成人18免费观看| 色又黄又爽网站www久久| 精品国产凹凸成av人网站| 一区二区三区欧美| 成人少妇影院yyyy| 精品久久久久久久久久久院品网| 一卡二卡欧美日韩| 国产91高潮流白浆在线麻豆| 欧美一卡2卡三卡4卡5免费| 亚洲欧美激情小说另类| 国产精品资源网站| 在线电影院国产精品| 亚洲免费观看在线视频| 国产成a人亚洲精品| 91精品国产综合久久国产大片| 亚洲欧美日韩中文播放| 成人深夜福利app| 欧美精品一区二区三区久久久| 亚洲成av人片在线| 99精品1区2区| 国产精品久久久久久久久免费丝袜 | 欧美性一级生活| 国产精品久久网站| 国产乱淫av一区二区三区 | 亚洲乱码中文字幕综合| 国产99精品在线观看| 精品国一区二区三区| 免费成人在线观看视频| 欧美精三区欧美精三区| 艳妇臀荡乳欲伦亚洲一区| 色综合久久久久| 亚洲人亚洲人成电影网站色| www.亚洲人| 一区二区三区欧美| 99热国产精品| 亚洲欧美偷拍三级| 91在线视频观看| 亚洲男人的天堂在线aⅴ视频| 波多野结衣中文字幕一区二区三区 | 色综合久久88色综合天天免费| 国产精品伦一区二区三级视频| 国产成人综合亚洲网站| 久久精品一区二区三区不卡 | 国产成a人无v码亚洲福利| 久久久精品国产99久久精品芒果 | 国产成人精品免费在线| 国产欧美一区二区三区网站| 国产精品乡下勾搭老头1| 国产三级三级三级精品8ⅰ区| 国产精品亚洲第一| 中文字幕不卡在线| 成人18视频在线播放| 亚洲人成小说网站色在线| 91丨porny丨国产入口| 亚洲一区在线电影| 欧美电影在哪看比较好| 久久99精品国产麻豆婷婷洗澡| 久久久久久久久伊人| 成人午夜电影小说| 一区二区三区在线免费播放| 欧美日韩精品一区二区三区| 全国精品久久少妇| 久久久久久久网| 色哟哟国产精品| 青青草视频一区| 精品第一国产综合精品aⅴ| 国产成人免费网站| 亚洲一区中文在线| 精品久久久久久久久久久久久久久| 国产精品伊人色| 一区二区不卡在线播放 | 91精品综合久久久久久| 精品在线你懂的| 国产精品毛片无遮挡高清| 91精品91久久久中77777| 日韩在线一二三区| 国产亚洲欧美色| 欧美亚洲综合色| 九一九一国产精品| 亚洲视频在线一区| 欧美一区二区三区免费视频 | 欧洲精品在线观看| 经典三级在线一区| 亚洲精品成人精品456| 欧美一区二区三区小说| 国产69精品久久久久毛片| 亚洲国产欧美日韩另类综合| 久久午夜电影网| 在线观看视频一区| 国产98色在线|日韩| 亚洲成人av一区二区三区| 国产亚洲一区二区三区在线观看| 日本高清不卡在线观看| 国产大陆亚洲精品国产| 亚洲高清免费一级二级三级| 国产三级精品在线| 91精品国产乱码| 91色在线porny| 国产精品66部| 日本不卡在线视频| 一区二区免费在线播放| 国产欧美精品一区二区三区四区| 欧美久久久久久久久| 一本色道亚洲精品aⅴ| 国产精品一区二区果冻传媒| 视频一区视频二区在线观看| 亚洲毛片av在线| 中文在线一区二区| 精品国产一区二区三区av性色| 欧美午夜一区二区三区|