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

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

?? nntpcli.pas

?? 包含常用Internet協(xié)議TCP,UDP、HTTP、FTP、Telnet等
?? PAS
?? 第 1 頁 / 共 4 頁
字號(hào):
    else
        raise NntpException.Create('Internal error: Invalid Request Type');
    end;

    if FState <> nntpReady then
        raise NntpException.Create('Not ready for ' + Cmd);
    FDataStream      := DestStream;
    FRequestType     := RqType;
    FRequestDoneFlag := FALSE;
    FArticleNumber   := -1;
    FArticleID       := '';
    FRequest         := Cmd + ID;
    FNext            := GetArticleNext;
    StateChange(nntpWaitingResponse);
    SendRequest;
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure TNntpCli.GetArticleNext;
var
    Data  : PChar;
begin
    Data := GetInteger(@FLastResponse[1], FStatusCode);
    if not (FStatusCode in [100, 215, 220, 221,
                            222, 223, 224, 231]) then begin
        TriggerRequestDone(FStatusCode);
        Exit;
    end;

    Data := GetInteger(Data, FArticleNumber);
    GetMessageID(Data, FArticleID);

    if FStatusCode in [223] then
        TriggerRequestDone(0)
    else begin
        FNext            := GetArticleLineNext;
        FLastCmdResponse := FLastResponse;;
        StateChange(nntpWaitingResponse);

        if Assigned(FOnMessageBegin) then
            FOnMessageBegin(Self);
    end;
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure TNntpCli.GetArticleLineNext;
const
    CrLf : String[2] = #13#10;
begin
    if FLastResponse = '.' then begin
        if FLastCmdResponse <> '' then begin
            FLastResponse    := FLastCmdResponse;
            FLastCmdResponse := '';
        end;
        if Assigned(FOnMessageEnd) then
            FOnMessageEnd(Self);
        TriggerRequestDone(0);
    end
    else begin
        if FLastResponse = '..' then
            FLastResponse := '.';
        if Assigned(FDataStream) then begin
            if Length(FLastResponse) > 0 then
                FDataStream.Write(FLastResponse[1], Length(FLastResponse));
            FDataStream.Write(CrLf[1], Length(CrLf));
        end;
        if Assigned(FOnMessageLine) then
            FOnMessageLine(Self);
    end;
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure TNntpCli.Next;
begin
    if FState <> nntpReady then
        raise NntpException.Create('Not ready for NEXT');
    FRequestDoneFlag := FALSE;
    FRequestType     := nntpNext;
    FArticleNumber   := -1;
    FArticleID       := '';
    FRequest         := 'NEXT';
    FNext            := GetArticleNext;
    StateChange(nntpWaitingResponse);
    SendRequest;
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure TNntpCli.Last;
begin
    if FState <> nntpReady then
        raise NntpException.Create('Not ready for LAST');
    FRequestDoneFlag := FALSE;
    FRequestType     := nntpLast;
    FArticleNumber   := -1;
    FArticleID       := '';
    FRequest         := 'LAST';
    FNext            := GetArticleNext;
    StateChange(nntpWaitingResponse);
    SendRequest;
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure TNntpCli.List(DestStream : TStream);
begin
    if FState <> nntpReady then
        raise NntpException.Create('Not ready for LIST');
    FDataStream      := DestStream;
    FRequestDoneFlag := FALSE;
    FRequestType     := nntpList;
    FRequest         := 'LIST';
    FNext            := GetArticleNext;
    StateChange(nntpWaitingResponse);
    SendRequest;
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure TNntpCli.Help(DestStream : TStream);
begin
    if FState <> nntpReady then
        raise NntpException.Create('Not ready for HELP');
    FDataStream      := DestStream;
    FRequestDoneFlag := FALSE;
    FRequestType     := nntpHelp;
    FRequest         := 'HELP';
    FNext            := GetArticleNext;
    StateChange(nntpWaitingResponse);
    SendRequest;
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure TNntpCli.Quit;
begin
    if FState <> nntpReady then
        raise NntpException.Create('Not ready for QUIT');
    FRequestDoneFlag := FALSE;
    FRequestType     := nntpQuit;
    FRequest         := 'QUIT';
    FNext            := QuitNext;
    StateChange(nntpWaitingResponse);
    SendRequest;
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure TNntpCli.QuitNext;
begin
    GetInteger(@FLastResponse[1], FStatusCode);
    TriggerRequestDone(0);
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure TNntpCli.Abort;
begin
    FRequestType     := nntpAbort;
    FWSocket.Close;
    FLastResponse    := '205 Closing connection - goodbye';
    FStatusCode      := 205;
    FRequestDoneFlag := FALSE;
    TriggerRequestDone(0);
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure TNntpCli.Post(FromStream : TStream);
begin
    if FState <> nntpReady then
        raise NntpException.Create('Not ready for POST');
    FDataStream      := FromStream;
    FRequestDoneFlag := FALSE;
    FRequestType     := nntpPost;
    FRequest         := 'POST';
    FSentFlag        := FALSE;
    FNext            := PostNext;
    StateChange(nntpWaitingResponse);
    SendRequest;
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure TNntpCli.PostNext;
begin
    GetInteger(@FLastResponse[1], FStatusCode);
    if FStatusCode <> 340 then begin
        TriggerRequestDone(FStatusCode);
        Exit;
    end;
    FNext               := PostSendNext;
    FWSocket.OnDataSent := WSocketDataSent;
    PostBlock;
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure TNntpCli.PostBlock;
var
    Len  : Integer;
begin
    Len := FDataStream.Read(FSendBuffer, SizeOf(FSendBuffer));
    if Len <= 0 then begin
        if FSentFlag then
            Exit;
        FSentFlag := TRUE;
        StrCopy(@FSendBuffer, #13#10 + '.' + #13#10);
        Len := 5;
    end;
    FWSocket.Send(@FSendBuffer, Len);
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure TNntpCli.PostSendNext;
begin
    FWSocket.OnDataSent := nil;
    GetInteger(@FLastResponse[1], FStatusCode);
    if FStatusCode = 240 then
        TriggerRequestDone(0)
    else
        TriggerRequestDone(FStatusCode);
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure TNntpCli.PostDone;
begin
    FLastResponse := '441 posting failed';
    PostSendNext;
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure TNntpCli.NewGroups(
    When          : TDateTime;
    GMTFLag       : Boolean;
    Distributions : String;
    DestStream    : TStream);
begin
    if FState <> nntpReady then
        raise NntpException.Create('Not ready for NEWGROUPS');
    FDataStream      := DestStream;
    FRequestDoneFlag := FALSE;
    FRequestType     := nntpNewGroups;
    if When = 0 then
        When := Now;
    FRequest         := 'NEWGROUPS ' + FormatDateTime('yymmdd hhnnss', When);
    if GMTFlag then
        FRequest := FRequest + ' GMT';
    if Length(Distributions) > 0 then
        FRequest     := FRequest + ' <' + Distributions + '>';
    FNext            := GetArticleNext;
    StateChange(nntpWaitingResponse);
    SendRequest;
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure TNntpCli.NewNews(
    When          : TDateTime;
    GMTFLag       : Boolean;
    NewsGroupName : String;
    Distributions : String;
    DestStream    : TStream);
begin
    if FState <> nntpReady then
        raise NntpException.Create('Not ready for NEWNEWS');
    FDataStream      := DestStream;
    FRequestDoneFlag := FALSE;
    FRequestType     := nntpNewNews;
    if When = 0 then
        When := Now;
    if NewsGroupName = '' then
        NewsGroupName := '*';
    FRequest         := 'NEWNEWS ' + NewsGroupName + ' ' +
                        FormatDateTime('yymmdd hhnnss', When);
    if GMTFlag then
        FRequest := FRequest + ' GMT';
    if Length(Distributions) > 0 then
        FRequest     := FRequest + ' <' + Distributions + '>';
    FNext            := GetArticleNext;
    StateChange(nntpWaitingResponse);
    SendRequest;
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
{ Articles can be: a) a single (positive) article number                    }
{                  b) an article number followed by a dash                  }
{                  c) two article numbers separated by a dash               }
procedure TNntpCli.XOver(
    Articles   : String;
    DestStream : TStream);
begin
    if FState <> nntpReady then
        raise NntpException.Create('Not ready for XOVER');
    FDataStream      := DestStream;
    FRequestDoneFlag := FALSE;
    FRequestType     := nntpXOver;
    FRequest         := 'XOVER ' + Articles;
    FNext            := GetArticleNext;
    StateChange(nntpWaitingResponse);
    SendRequest;
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure TNntpCli.ListOverViewFmt(DestStream : TStream);
begin
    if FState <> nntpReady then
        raise NntpException.Create('Not ready for LIST OVERVIEW.FMT');
    FDataStream      := DestStream;
    FRequestDoneFlag := FALSE;
    FRequestType     := nntpListOverViewFmt;
    FRequest         := 'LIST OVERVIEW.FMT';
    FNext            := GetArticleNext;
    StateChange(nntpWaitingResponse);
    SendRequest;
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure TNntpCli.DateNext;
var
    Data  : PChar;
    Buf   : String;
    Year, Month, Day, Hour, Min, Sec : Word;
begin
    Data := StpBlk(GetInteger(@FLastResponse[1], FStatusCode));
    if FStatusCode <> 111 then begin

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人欧美一区二区三区在线播放| 国产尤物一区二区| 日韩女优av电影| 色综合天天综合网天天看片| 高清国产午夜精品久久久久久| 日本女人一区二区三区| 一区二区日韩av| 一区av在线播放| 国产精品996| av色综合久久天堂av综合| 国产成人丝袜美腿| 91在线视频网址| 精品视频一区 二区 三区| 精品视频一区二区三区免费| 中文无字幕一区二区三区| 欧美一区二区精品久久911| 日韩一区二区三区电影| 欧美精品一区二区三区在线| 精品奇米国产一区二区三区| 日本一区二区视频在线| 亚洲天堂av一区| 亚洲va天堂va国产va久| 久久99精品国产麻豆婷婷洗澡| 久久精品免费看| 高清国产一区二区| 久久久天堂av| 洋洋成人永久网站入口| 99re在线视频这里只有精品| 中文一区一区三区高中清不卡| 岛国精品一区二区| 欧美日韩久久久| 久久久久久久电影| 极品少妇一区二区三区精品视频| 日韩一区二区电影网| 免费欧美高清视频| gogogo免费视频观看亚洲一| 国产精品视频你懂的| 成人性生交大片免费看在线播放 | 日韩美女天天操| 免费在线看成人av| 日韩精品一区二区三区中文精品| 裸体歌舞表演一区二区| 久久五月婷婷丁香社区| 亚洲免费资源在线播放| 国内外成人在线| 欧美亚洲一区二区在线| 久久精品一区二区三区四区| 亚洲 欧美综合在线网络| 欧美久久婷婷综合色| 亚洲欧美自拍偷拍色图| 在线精品视频小说1| 国产视频一区在线观看 | 8x8x8国产精品| 日韩毛片一二三区| 欧美在线看片a免费观看| 亚洲aⅴ怡春院| 欧美va天堂va视频va在线| 国产成人精品影院| 亚洲欧美日韩一区二区三区在线观看 | 精品人在线二区三区| 成人综合婷婷国产精品久久蜜臀 | 91蜜桃免费观看视频| 久久久久久久性| 99久久99久久精品免费观看| 亚洲国产wwwccc36天堂| 色综合天天综合在线视频| 午夜国产不卡在线观看视频| 欧美三级在线播放| 国产精品一区二区三区网站| 亚洲精品中文在线| 99久久精品国产网站| 香蕉影视欧美成人| 亚洲国产精品黑人久久久| 欧美性猛交xxxxxx富婆| 国模冰冰炮一区二区| 一区二区三区波多野结衣在线观看| 91精品国产综合久久精品图片| 丰满亚洲少妇av| 日韩在线一二三区| 日韩一区国产二区欧美三区| 成人精品在线视频观看| 日本午夜一区二区| 国产精品福利电影一区二区三区四区 | 日韩专区一卡二卡| 国产精品久久久久毛片软件| 欧美一区二区三区四区五区| 色一区在线观看| 一区二区三区波多野结衣在线观看| 精品国产精品网麻豆系列| 91首页免费视频| 成人一级片在线观看| 看片的网站亚洲| 日本欧美在线观看| 亚洲国产精品欧美一二99| 国产精品萝li| 久久久久久久精| 精品裸体舞一区二区三区| 911精品国产一区二区在线| 色综合久久中文字幕综合网| 国产精品亚洲成人| 精品无人区卡一卡二卡三乱码免费卡| 亚洲午夜电影网| 亚洲码国产岛国毛片在线| 国产日韩v精品一区二区| 日韩一区二区中文字幕| 7777精品伊人久久久大香线蕉的| 色久综合一二码| 奇米四色…亚洲| 婷婷开心久久网| 亚洲一区二区三区视频在线播放| 欧美大片拔萝卜| 欧美一区二区网站| 欧美一区二区视频在线观看2022| 欧美中文字幕一二三区视频| 色综合久久久久久久久久久| 色又黄又爽网站www久久| 91欧美一区二区| 99re视频这里只有精品| 91啪九色porn原创视频在线观看| 不卡高清视频专区| 麻豆一区二区99久久久久| 国产精品国产自产拍在线| 久久久亚洲精华液精华液精华液 | 国产成人免费视频网站高清观看视频 | 全部av―极品视觉盛宴亚洲| 日精品一区二区| 精品在线播放免费| 国产精品一区专区| 成年人网站91| 91福利小视频| 欧美亚洲高清一区| 欧美一区二区三区电影| 26uuu亚洲婷婷狠狠天堂| 国产日本欧美一区二区| 国产精品电影一区二区| 色综合久久久久综合| 中文字幕 久热精品 视频在线| 久久久久久99精品| 国产精品嫩草影院av蜜臀| 亚洲免费观看在线观看| 亚洲人精品一区| 亚洲尤物视频在线| 免费三级欧美电影| 大桥未久av一区二区三区中文| 一本色道久久综合亚洲91| 欧美伦理电影网| 久久久久国产免费免费| 洋洋av久久久久久久一区| 捆绑调教美女网站视频一区| 成人网在线播放| 欧美日韩一级二级三级| 国产网红主播福利一区二区| 亚洲激情图片qvod| 韩国精品久久久| 色嗨嗨av一区二区三区| 精品国产一区久久| 一区二区三区在线播| 九九**精品视频免费播放| 91麻豆免费在线观看| 欧美电视剧免费全集观看| 亚洲精品视频在线观看网站| 麻豆传媒一区二区三区| 99久久婷婷国产| 欧美v亚洲v综合ⅴ国产v| 亚洲专区一二三| 国产成人亚洲精品青草天美| 欧美人伦禁忌dvd放荡欲情| 国产午夜精品久久久久久免费视 | 久久精品免费观看| 色天天综合色天天久久| 久久综合九色综合欧美亚洲| 亚洲成年人网站在线观看| 成人免费观看视频| 精品乱人伦小说| 手机精品视频在线观看| 91丨九色丨尤物| 日本一区二区三区视频视频| 麻豆高清免费国产一区| 欧美日韩精品三区| 亚洲色图制服丝袜| 成人18视频日本| 国产精品视频你懂的| 国产乱淫av一区二区三区| 欧美酷刑日本凌虐凌虐| 亚洲精选一二三| 99精品在线观看视频| 国产视频一区二区三区在线观看| 免费视频最近日韩| 欧美一区二区三区四区久久| 亚洲va欧美va人人爽| 欧美亚洲综合一区| 亚洲一区视频在线观看视频| 99re这里只有精品视频首页| 国产精品美女久久久久久久| 成人免费视频caoporn| 欧美激情在线看| av电影天堂一区二区在线观看| 国产精品视频一二| 99久久综合狠狠综合久久| 国产精品国产三级国产aⅴ中文|