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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? pop3prot.pas

?? 包含常用Internet協議TCP,UDP、HTTP、FTP、Telnet等
?? PAS
?? 第 1 頁 / 共 4 頁
字號:
    if pop3FctRSet in FFctSet then begin
        FFctPrv := pop3FctRSet;
        FFctSet := FFctSet - [FFctPrv];
        RSet;
        Exit;
    end;

    if pop3FctAPop in FFctSet then begin
        FFctPrv := pop3FctAPop;
        FFctSet := FFctSet - [FFctPrv];
        APop;
        Exit;
    end;

    if pop3FctRetr in FFctSet then begin
        FFctPrv := pop3FctRetr;
        FFctSet := FFctSet - [FFctPrv];
        Retr;
        Exit;
    end;

    if pop3FctTop in FFctSet then begin
        FFctPrv := pop3FctTop;
        FFctSet := FFctSet - [FFctPrv];
        Top;
        Exit;
    end;

    if pop3FctStat in FFctSet then begin
        FFctPrv := pop3FctStat;
        FFctSet := FFctSet - [FFctPrv];
        Stat;
        Exit;
    end;

    if pop3FctUidl in FFctSet then begin
        FFctPrv := pop3FctUidl;
        FFctSet := FFctSet - [FFctPrv];
        Uidl;
        Exit;
    end;

    if pop3FctLast in FFctSet then begin
        FFctPrv := pop3FctLast;
        FFctSet := FFctSet - [FFctPrv];
        Last;
        Exit;
    end;

    if pop3FctQuit in FFctSet then begin
        FFctPrv := pop3FctQuit;
        FFctSet := FFctSet - [FFctPrv];
        Quit;
        Exit;
    end;

    {$IFDEF TRACE} TriggerDisplay('! HighLevelAsync done'); {$ENDIF}
    FFctSet          := [];
    FNextRequest     := nil;
    FRequestDoneFlag := FALSE;
    TriggerRequestDone(FHighLevelResult);
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure TCustomPop3Cli.HighLevelAsync(
    RqType : Tpop3Request; Fcts : Tpop3FctSet);
begin
    if FConnected and (pop3FctConnect in Fcts) then
        raise pop3Exception.Create('pop3 component already connected');
    CheckReady;
    FLastResponseSave := FLastResponse;
    FStatusCodeSave   := -1;
    FRequestType      := RqType;
    FRequestResult    := 0;
    FFctSet           := Fcts;
    FFctPrv           := pop3FctNone;
    FHighLevelResult  := 0;
    FHighLevelFlag    := TRUE;
    FLastResponse     := '';
    FErrorMessage     := '';
    FRestartFlag      := FALSE;
    DoHighLevelAsync;
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure TCustomPop3Cli.ProcessUidl(Sender : TObject);
begin
    ExtractUidl(FMsgNum, FMsgUidl);
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure TCustomPop3Cli.ProcessList(Sender : TObject);
begin
    ExtractNumbers(FMsgNum, FMsgSize);
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
function TCustomPop3Cli.ExtractUidl(var N1 : Integer; var N2 : String) : Boolean;
var
    p : PChar;
begin
    Result := FALSE;
    N1     := 0;
    N2     := '';

{$IFDEF VER80}
    { Delphi 1 do not automatically nul terminate strings }
    FLastResponse := FLastResponse + #0;
{$ENDIF}

    { Search for first digit in response }
    p := @FLastResponse[1];
    while (p^ <> #0) and (not (p^ in ['0'..'9'])) do
        Inc(p);
    if p^ = #0 then { Invalid response, need a number }
        Exit;

    { Convert first number }
    N1 := atoi(p);

    { Search end of number }
    while (p^ <> #0) and (p^ in ['0'..'9']) do
        Inc(p);

    { Search Uidl }
    while (p^ = ' ') do
        Inc(p);

    { Copy UIDL }
    while (p^ <> #0) and (p^ in [#33..#126]) do begin
        N2 := N2 + p^;
        Inc(p);
    end;

    Result := TRUE;
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
function TCustomPop3Cli.ExtractNumbers(var N1 : Integer; var N2 : Integer) : Boolean;
var
    p : PChar;
begin
    Result := FALSE;

{$IFDEF VER80}
    { Delphi 1 do not automatically nul terminate strings }
    FLastResponse := FLastResponse + #0;
{$ENDIF}

    { Search for first digit in response }
    p := @FLastResponse[1];
    while (p^ <> #0) and (not (p^ in ['0'..'9'])) do
        Inc(p);
    if p^ = #0 then begin
        { Invalid response, need a number }
        N1 := 0;
        N2 := 0;
        Exit;
    end;

    { Convert first number }
    N1 := atoi(p);

    { Search end of number }
    while (p^ <> #0) and (p^ in ['0'..'9']) do
        Inc(p);

    { Search next number }
    p := stpblk(p);

    if p^ = #0 then begin
        { Invalid response, need a number }
        N1 := 0;
        N2 := 0;
        Exit;
    end;

    N2     := atoi(p);
    Result := TRUE;
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure TCustomPop3Cli.SendCommand(Cmd : String);
begin
    Display('> ' + Cmd);
    Application.ProcessMessages;
    FWSocket.SendStr(Cmd + #13 + #10);
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
function TCustomPop3Cli.OkResponse : Boolean;
begin
    Result := ((Length(FLastResponse) > 0) and (FLastResponse[1] = '+'));
    if Result then
        FStatusCode := 0
    else
        FStatusCode := 500;
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure TCustomPop3Cli.Display(Msg : String);
begin
    if Assigned(FOnDisplay) then
        FOnDisplay(Self, Msg);
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure TCustomPop3Cli.ClearErrorMessage;
begin
    FErrorMessage := '';
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure TCustomPop3Cli.SetErrorMessage;
begin
    if FErrorMessage = '' then
        FErrorMessage := FLastResponse;
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure TCustomPop3Cli.CheckReady;
begin
    if not (FState in [pop3Ready, pop3InternalReady]) then
        raise pop3Exception.Create('POP3 component not ready');
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure TCustomPop3Cli.StateChange(NewState : TPop3State);
begin
    if FState <> NewState then begin
        FState := NewState;
        TriggerStateChange;
    end;
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure TCustomPop3Cli.DisplayLastResponse;
begin
     TriggerDisplay('< ' + FLastResponse);
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure TCustomPop3Cli.ExecAsync(
    RqType      : TPop3Request;
    Cmd         : String;             { Command to execute                     }
    NextState   : TPop3ProtocolState; { Next protocol state in case of success }
    DoneAsync   : TPop3NextProc);     { What to do when done                   }
begin
    CheckReady;

    if not FConnected then
        raise Pop3Exception.Create('POP3 component not connected');

    if not FHighLevelFlag then
        FRequestType := RqType;

    FRequestDoneFlag   := FALSE;
    FNext              := NextExecAsync;
    FNextProtocolState := NextState;
    FDoneAsync         := DoneAsync;
    StateChange(pop3WaitingResponse);
    SendCommand(Cmd);
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure TCustomPop3Cli.NextExecAsync;
begin
    DisplayLastResponse;

    if not OkResponse then begin
        FRequestResult := FStatusCode;
        SetErrorMessage;
        TriggerRequestDone(FRequestResult);
        Exit;
    end;

    FRequestResult := 0;
    FProtocolState := FNextProtocolState;

    if Assigned(FDoneAsync) then
        FDoneAsync
    else
        TriggerRequestDone(FRequestResult);
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure TCustomPop3Cli.User;
begin
    if FProtocolState > pop3WaitingUser then begin
        FErrorMessage := '-ERR USER command invalid now';
        Display(FErrorMessage);
        raise Pop3Exception.Create(FErrorMessage);
    end;

    FFctPrv := pop3FctUser;
    ExecAsync(pop3User, 'USER ' + Trim(FUserName), pop3WaitingPass, nil);
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure TCustomPop3Cli.Connect;
begin
    CheckReady;
    if FConnected then
        raise Pop3Exception.Create('POP3 component already connected');

    if not FHighLevelFlag then
        FRequestType  := pop3Connect;

    FRequestDoneFlag  := FALSE;
    FReceiveLen       := 0;
    FRequestResult    := 0;
    StateChange(pop3DnsLookup);
    FWSocket.OnDataSent      := nil;
    FWSocket.OnDnsLookupDone := WSocketDnsLookupDone;
    FWSocket.DnsLookup(FHost);
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure TCustomPop3Cli.Abort;
begin
    StateChange(pop3Abort);
    FWSocket.CancelDnsLookup;
    FWSocket.Abort;
    StateChange(pop3Ready);
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure TCustomPop3Cli.Pass;
begin
    if FProtocolState > pop3WaitingPass then begin
        FErrorMessage := '-ERR PASS command invalid now';
        Display(FErrorMessage);
        raise Pop3Exception.Create(FErrorMessage);
    end;

    FFctPrv := pop3FctPass;
    ExecAsync(pop3Pass, 'PASS ' + Trim(FPassWord), pop3Transaction, nil);
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure TCustomPop3Cli.RPop;
begin
    if FProtocolState > pop3WaitingPass then begin
        FErrorMessage := '-ERR RPOP command invalid now';
        Display(FErrorMessage);
        raise Pop3Exception.Create(FErrorMessage);
    end;

    FFctPrv := pop3FctRPop;
    ExecAsync(pop3RPop, 'RPOP ' + Trim(FPassWord), pop3Transaction, nil);
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure TCustomPop3Cli.APop;
begin
    if FProtocolState <> pop3WaitingUser then begin
        FErrorMessage := '-ERR APOP command invalid now';
        Display(FErrorMessage);
        raise Pop3Exception.Create(FErrorMessage);
    end;

    if FTimeStamp = '' then begin
        FErrorMessage := '-ERR Server do not support APOP (no timestamp)';
        Display(FErrorMessage);
        raise Pop3Exception.Create(FErrorMessage);
    end;

    FFctPrv := pop3FctAPop;
    ExecAsync(pop3APop, 'APOP ' + Trim(FUserName) + ' ' +
                        StrMD5(FTimeStamp + FPassWord),
                        pop3Transaction, nil);
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure TCustomPop3Cli.Quit;
begin
    CheckReady;
    FFctPrv := pop3FctQuit;
    if not FConnected then begin
        { We are not connected, it's ok... }
        FRequestType     := pop3Quit;
        FRequestDoneFlag := FALSE;
        TriggerRequestDone(0);
        Exit;
    end;
    ExecAsync(pop3Quit, 'QUIT', pop3Disconnected, nil); { Should I force a FWSocket.Close }
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure TCustomPop3Cli.Stat;
begin
    FFctPrv := pop3FctStat;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩久久不卡| 成人精品在线视频观看| 一卡二卡欧美日韩| 自拍偷拍欧美精品| 国产欧美一区二区精品性色超碰 | 色成年激情久久综合| 国产成人精品影视| 成人开心网精品视频| 东方aⅴ免费观看久久av| 国产一本一道久久香蕉| 国产精品一区一区| 99精品视频在线播放观看| a4yy欧美一区二区三区| 91麻豆蜜桃一区二区三区| 91美女片黄在线观看| 欧美日韩一区在线| 日韩精品影音先锋| 久久亚洲影视婷婷| 亚洲欧美另类综合偷拍| 午夜精品福利久久久| 激情综合网av| 99国产精品99久久久久久| 91老师国产黑色丝袜在线| 欧美视频一区在线观看| 91精品国产综合久久国产大片| 精品毛片乱码1区2区3区| 国产日产欧产精品推荐色| 亚洲同性同志一二三专区| 亚洲妇熟xx妇色黄| 国产精品99久久久| 欧美午夜免费电影| 久久影院午夜片一区| 自拍偷拍欧美激情| 久久精品国产亚洲高清剧情介绍 | 欧美激情在线看| 中文字幕在线一区二区三区| 亚洲一区二区三区中文字幕| 极品少妇一区二区三区精品视频| 色婷婷久久久综合中文字幕 | 欧美影视一区在线| 26uuu精品一区二区在线观看| 亚洲精品午夜久久久| 精品在线播放免费| 欧美亚洲综合在线| 欧美激情一区二区三区| 热久久久久久久| 欧美在线一二三| 国产精品国模大尺度视频| 精品一区二区在线观看| 在线观看视频91| 亚洲欧洲日韩在线| 国产福利视频一区二区三区| 日韩欧美色综合| 首页亚洲欧美制服丝腿| 91黄色免费看| 亚洲乱码中文字幕| 成人aaaa免费全部观看| 国产视频一区不卡| 美女视频黄久久| 7777精品伊人久久久大香线蕉 | 97久久超碰国产精品| 久久毛片高清国产| 久久aⅴ国产欧美74aaa| 欧美久久一二三四区| 一区二区三区四区精品在线视频 | 欧美曰成人黄网| 亚洲人成精品久久久久久| 成人自拍视频在线观看| 26uuu精品一区二区| 久久国产尿小便嘘嘘尿| 欧美精品在线观看播放| 亚洲成人av中文| 8x福利精品第一导航| 亚洲电影在线免费观看| 欧美日韩一区三区四区| 日日摸夜夜添夜夜添精品视频 | 国产一区二区三区免费在线观看 | 国产精品色一区二区三区| 国产一区视频在线看| 精品国产区一区| 国内精品国产三级国产a久久| 欧美成人女星排名| 国产精品一区二区三区99| 国产性做久久久久久| 国产成人av网站| 国产精品美女一区二区三区| 91免费精品国自产拍在线不卡| 亚洲另类一区二区| 欧美精品高清视频| 激情综合色播激情啊| 国产无一区二区| 91在线无精精品入口| 亚洲永久免费av| 欧美va亚洲va国产综合| 高清在线成人网| 亚洲日本青草视频在线怡红院 | 91久久精品一区二区三区| 亚洲国产日韩a在线播放性色| 欧美一区二区三区的| 激情成人综合网| 亚洲免费看黄网站| 4438x亚洲最大成人网| 国精产品一区一区三区mba视频 | 一级女性全黄久久生活片免费| 欧美日韩精品一区视频| 加勒比av一区二区| 亚洲欧洲综合另类在线| 91麻豆精品91久久久久同性| 国产v日产∨综合v精品视频| 亚洲制服欧美中文字幕中文字幕| 精品国产3级a| 在线免费不卡视频| 极品少妇一区二区| 亚洲国产日韩综合久久精品| 久久久久久日产精品| 欧美性猛交xxxxxx富婆| 粉嫩av一区二区三区| 婷婷成人综合网| 中文字幕在线不卡一区| 欧美成人免费网站| 欧洲精品一区二区三区在线观看| 国产在线不卡视频| 日本不卡在线视频| 亚洲欧美另类图片小说| 久久久久国色av免费看影院| 欧美日韩久久久一区| 91浏览器打开| 国产一区二区三区不卡在线观看| 天天影视涩香欲综合网| 亚洲人成精品久久久久| 日本一二三不卡| 久久人人超碰精品| 欧美一级一级性生活免费录像| 欧美专区亚洲专区| 色婷婷综合五月| av亚洲精华国产精华精| 国产又粗又猛又爽又黄91精品| 日本欧美韩国一区三区| 亚洲国产精品久久一线不卡| 成人欧美一区二区三区视频网页| 久久久久久久综合日本| 日韩精品中文字幕在线一区| 91精品国产综合久久国产大片| 精品视频一区 二区 三区| 91电影在线观看| 91在线porny国产在线看| 成人av免费在线| 成人午夜免费av| 不卡的电视剧免费网站有什么| 懂色av一区二区夜夜嗨| 国产成人免费在线视频| 国产超碰在线一区| 国产a级毛片一区| 成人涩涩免费视频| 成人av在线网站| 一本一道久久a久久精品| 91丝袜美女网| 欧美在线播放高清精品| 欧美日韩国产影片| 欧美一级xxx| 久久蜜桃av一区精品变态类天堂| 国产亚洲自拍一区| 国产精品国产精品国产专区不蜜 | 日韩亚洲欧美在线观看| 欧美成人性福生活免费看| 精品免费日韩av| 中文一区在线播放| 亚洲欧美日韩国产成人精品影院 | 亚洲成人资源网| 免费日韩伦理电影| 久久不见久久见免费视频7| 国产精品一区在线观看乱码| 91蜜桃免费观看视频| 在线精品视频一区二区| 日韩一级黄色大片| 久久精品免费在线观看| 亚洲蜜臀av乱码久久精品蜜桃| 日韩中文字幕1| 国产精品亚洲一区二区三区在线 | 亚洲美女在线国产| 日日骚欧美日韩| 粉嫩蜜臀av国产精品网站| 一本久道中文字幕精品亚洲嫩| 在线播放视频一区| 国产调教视频一区| 亚洲成人中文在线| 国产风韵犹存在线视精品| 欧美无乱码久久久免费午夜一区| 日韩天堂在线观看| 亚洲三级理论片| 久久精品国产精品亚洲精品| 欧美专区日韩专区| 91精品蜜臀在线一区尤物| 久久久91精品国产一区二区精品| 国产精品二三区| 久久99国产精品免费| 色94色欧美sute亚洲线路一ni | 自拍视频在线观看一区二区| 日本一不卡视频| 97久久精品人人做人人爽 |