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

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

?? icqclient.pas

?? 本程序是轉載的
?? PAS
?? 第 1 頁 / 共 5 頁
字號:
  flap: TFlapHdr;
begin
  inherited;
  for i := 0 to BufLen - 1 do
  begin
    FSrcBuf[FSrcLen] := PByte(LongWord(Buffer) + i)^;
    Inc(FSrcLen);
    //Searching for the Flap header
    if (FSrcLen >= TFLAPSZ) and (not FFlapSet) then
    begin
      FFlapSet := True;
      FNewFlap := PFlapHdr(@FSrcBuf)^;
      FNewFlap.DataLen := Swap16(FNewFlap.DataLen);
      FNewFlap.Seq := Swap16(FNewFlap.Seq);
      if FNewFlap.DataLen > 8192 then
      begin
        if Assigned(OnError) then
          OnError(Self, ERR_PROTOCOL, ICQLanguages[FErrLang].Translate(IMSG_EPROTO_LEN));
        FreeSocket(FSocket);
        FreeSocket(FSendSocket);
        Exit;
      end;
    end;
    //Whole packet was received
    if FSrcLen = FNewFlap.DataLen + TFLAPSZ then
    begin
      if FNewFlap.Ident <> $2a then
      begin
        if Assigned(OnError) then
          OnError(Self, ERR_PROTOCOL, ICQLanguages[FErrLang].Translate(IMSG_EMALFORMED_PKT));
        FreeSocket(FSocket);
        FreeSocket(FSendSocket);
        Exit;
      end;
      Move(FNewFlap, flap, SizeOf(FNewFlap));
      //Preparing structures for receiving the next packet
      FNewFlap.DataLen := 0;
      len := FSrcLen; FSrcLen := 0;
      FFlapSet := False;
      //Dump packet (if needed)
      if Assigned(OnPktParse) then
        OnPktParse(Self, @FSrcBuf, len, True);
      //Handling packet
      if Assigned(OnHandlePkt) then
        FOnHandlePkt(flap, Ptr(LongWord(@FSrcBuf) + TFLAPSZ));
    end;
  end;
end;

procedure TICQNet.Connect;
begin
  FSrcLen := 0;
  FFlapSet := False;
  FreeSocket(FSocket);
  FreeSocket(FSendSocket);
  FHTTPConnected := False;
  FCanSend := False;
  case FProxyType of
    P_NONE:     FSocket := TEventSocket.Create;         {do not use proxy}
    P_SOCKS4:   FSocket := TSOCKS4Socket.Create;        {use socks4/4a proxy}
    P_SOCKS5:   FSocket := TSOCKS5Socket.Create;        {use socks5 proxy}
    P_HTTP:     FSocket := THTTPSocket.Create;          {use http proxy}
    P_HTTPS:    FSocket := THTTPSSocket.Create;         {use https proxy}
  else
    Exit;
  end;
  if FProxyType = P_NONE then begin
    FSocket.ProxyReady := True;
    FSocket.ProxyHost := FHost;
    FSocket.ProxyPort := FPort;
  end else
  if FProxyType = P_HTTP then begin
    FSocket.ProxyHost := FProxyHost;
    FSocket.ProxyPort := FProxyPort;
    FSocket.Host := 'http.proxy.icq.com';
    FSocket.Port := 80;
    FSocket.ProxyReady := False;
  end else begin
    FSocket.Host := FHost;
    FSocket.Port := FPort;
    FSocket.ProxyHost := FProxyHost;
    FSocket.ProxyPort := FProxyPort;
    FSocket.ProxyReady := False;
  end;

  if FProxyType = P_HTTP then begin
    FHTTPBuffer.Enter;
    FHTTPBuffer.Clear;
    FHTTPBuffer.Leave;
  end;

  FSocket.ProxyUser := FProxyUser;
  FSocket.ProxyPass := FProxyPass;
  FSocket.ProxyAuth := FProxyAuth;
  FSocket.ProxyResolve := FProxyResolve;
  FSocket._OnConnect := _OnConnect;
  FSocket._OnError := _OnError;
  FSocket._OnConnectError := _OnConnectError;
  FSocket._OnDisconnect := _OnDisconnect;
  FSocket._OnReceive := _OnReceive;
  FSocket.Connect;
end;

procedure TICQNet.SendData(var Data; DataLen: LongWord);
begin
  if FProxyType <> P_HTTP then begin
    if FSocket <> nil then begin
      if Assigned(OnPktParse) then
        OnPktParse(Self, @Data, DataLen, False);
      FSocket.SendData(@Data, DataLen);
    end
  end else begin
    if Assigned(OnPktParse) then
      OnPktParse(Self, @Data, DataLen, False);
    FHTTPBuffer.Enter;
    FHTTPBuffer.AddPacket(@Data, DataLen);
    FHTTPBuffer.Leave;
    SendHTTPData;
  end;
end;

procedure TICQNet.FreeSocket(var Socket: TEventSocket);
begin
  {Free socket safe}
  if (Socket <> nil) then begin
    if Socket.Working then begin {working means not-terminated}
      Socket.FreeOnTerminate := True;
      Socket.Terminate;
    end else
      Socket.Free;
    Socket := nil;
  end;
end;

procedure TICQNet.FreeSockets;
begin
  FreeSocket(FSocket);
  FreeSocket(FSendSocket);
end;

procedure TICQNet.Disconnect;
begin
  FreeSockets;
  if Assigned(OnDisconnect) then
    FOnDisconnect(Self);
end;
{-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-}

{*** CONSTRUCTOR ***}
constructor TICQClient.Create(AOwner: TComponent);
begin
  inherited;
  FLastError := '';                     //Last error

  gPortRange.First := 3000;             // Kludge for port range support
  gPortRange.Last  := 50000;

  FContactLst := TStringList.Create;    //Contact list
  FVisibleLst := TStringList.Create;    //Visible list
  FInvisibleLst := TStringList.Create;  //Invisible list

  FInfoChain := TStringList.Create;     //Info request chain
  FSInfoChain := TStringList.Create;    //Short info request chain

  //Socket for working with TCP
  FSock := TICQNet.Create;
  //Assign events  
  FSock.OnError := OnIntError;
  FSock.OnHandlePkt := HandlePacket;
  FSock.OnDisconnect := FTOnDisconnect;
  FSock.OnConnectError := FTOnConnectError;
  FSock.OnPktParse := FTOnPktParse;

  //Set default port and server
  if ICQPort = 0 then ICQPort := 5190;
  if ICQServer = '' then ICQServer := 'login.icq.com';


  FTimer := TMyTimer.Create;              //Timeout timer
  FTimer.OnTimer := OnTimeout;          //Set timeout event
  FTimer.Enabled := False;              //Disable timer by default

  Randomize;                            //Initialize random generator
  FSeq := Random($AAAA);                //Choose random seq, which is used in Flap header

  FDirect := nil;                       //Do not initialize direct control until we connect
end;

{*** DESTRUCTOR ***}
destructor TICQClient.Destroy;
begin
  if FDirect <> nil then
    FDirect.Free;

  FSock.OnConnectError := nil;
  //FSock.OnConnect := nil;
  FSock.OnDisconnect := nil;
  FSock.OnError := nil;
  //FSock.OnSockReceive := nil;
  FSock.Free;

  FTimer.OnTimer := nil;
  FTimer.Free;

  //Free TStringList objects
  FContactLst.Free;
  FVisibleLst.Free;
  FInvisibleLst.Free;
  FInfoChain.Free;
  FSInfoChain.Free;

  inherited;
end;

{Set NetICQ's properties}
procedure TICQClient.InitNetICQ;
begin
  //Assign properties
  FSock.Host := FIp;
  FSock.Port := FPort;
  FSock.ProxyType := FProxyType;
  FSock.ProxyHost := FProxyHost;
  FSock.ProxyPort := FProxyPort;
  FSock.ProxyUser := FProxyUser;
  FSock.ProxyAuth := FProxyAuth;
  FSock.ProxyPass := FProxyPass;
  FSock.ProxyResolve := FProxyResolve;
  FSock.ErrorLanguage := FErrLang;

//  //Assign events
//  FSock.OnHandlePkt := HandlePacket;
//  FSock.OnDisconnect := FTOnDisconnect;
//  FSock.OnConnectError := FTOnConnectError;
//  FSock.OnPktParseA := FTOnPktParse;
end;

{Called when error happened.}
procedure TICQClient.OnIntError(Sender: TObject; ErrorType: TErrorType; ErrorMsg: String);
begin
  FLastError := ErrorMsg;
  if Assigned(OnError) then
    FOnError(Self, ErrorType, ErrorMsg);
end;

{Logoff of server.}
Procedure TICQClient.LogOff;
var
  pkt: TRawPkt;
Begin
  CreateCLI_GOODBYE(@pkt, fSeq);
  fSock.SendData(Pkt, Pkt.Len);
  Sleep(10);
  Disconnect;
//  FSock.Disconnect;
  If fDirect <> nil then Begin
    fDirect.free;
    fDirect := nil;
  End;
  FTimer.Enabled := False;
  if assigned(OnLogOff) Then
    fOnLogOff(Self);
End;

{Logins to server.}
procedure TICQClient.Login(Status: LongWord = S_ONLINE; BirthDay: Boolean = False);
begin
  if FDirect <> nil then
  begin
    FDirect.OnError := nil;
    FDirect.OnHandle := nil;
    FDirect.OnPktDump := nil;
    FDirect.Free;
  end;

  if not DisableDirectConnections then
  begin
    FDirect := TDirectControl.Create(FLUIN);
    FDirect.OnPktDump := FTOnDirectParse;
    FDirect.OnHandle := HDirectMsg;
    FDirect.OnError := OnIntError;
    FDirect.OnFTInit := OnFTInitProc;
    FDirect.OnFTStart := OnFTStartProc;
    FDirect.OnFTFileData := OnFTFileDataProc;
    FDirect.OnSendFileStart := OnSendFileStartProc;
    FDirect.OnSendFileData  := OnSendFileDataProc;

    //Assign proxy settings
    FDirect.ProxyType := ProxyType;
    FDirect.ProxyHost := ProxyHost;
    FDirect.ProxyPort := ProxyPort;
    FDirect.ProxyUserID := ProxyUserID;
    FDirect.ProxyAuth := ProxyAuth;
    FDirect.ProxyPass := ProxyPass;
    FDirect.UseProxyResolve := ProxyResolve;
  end;


  FDSeq := Random(High(Word));
  FSeq2 := 2;
  FCookie := '';
  FFirstConnect := True;
  FStatus := Status;
  If BirthDay then FStatus := FStatus or SF_BIRTH;
  FLoggedIn := False;
  FRegisteringUIN := False;

  InitNetICQ;
  FTimer.Interval := FTimeout * 1000;
  FTimer.Enabled := False;
  if FTimeout <> 0 then
    FTimer.Enabled := True;

  FSock.Connect;
end;

procedure TICQClient.RequestOfflineMessages; // *yegor
var
   pkt: TRawPkt;
begin
     CreateCLI_TOICQSRV(@pkt, FLUIN, CMD_REQOFFMSG, nil, 0, FSeq, FSeq2);{SNAC(x15/x02)}
     FSock.SendData(pkt, pkt.Len);
end; // **yegor

{Registers a new UIN.}
procedure TICQClient.RegisterNewUIN(const Password: String);
begin
  FRegisteringUIN := True;
  FRegPassword := Password;
  FLoggedIn := False;
  InitNetICQ;
  FTimer.Interval := FTimeout * 1000;
  FTimer.Enabled := True;
  FSock.Connect;
end;

{Disconnect user from server.}
procedure TICQClient.Disconnect;
begin
  FTimer.Enabled := False;
  FSock.Disconnect;
  if Assigned(OnConnectionFailed) then
    FOnConnectionFailed(Self);
end;

{Send a message to UIN.}
procedure TICQClient.SendMessage(UIN: LongWord; const Msg: String);
var
  pkt: TRawPkt;
begin
  if not LoggedIn then Exit;
  CreateCLI_SENDMSG(@pkt, 0, Random($FFFFAA), UIN, Msg, FSeq);
  FSock.SendData(pkt, pkt.Len);
end;

{Send an URL message to UIN.}
procedure TICQClient.SendURL(UIN: LongWord; const URL, Description: String);
var
  pkt: TRawPkt;
begin
  if not LoggedIn then Exit;
  CreateCLI_SENDURL(@pkt, 0, Random($FFFFAA), FLUIN, UIN, URL, Description, FSeq);
  FSock.SendData(pkt, pkt.Len);
end;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久精品国产亚洲aⅴ| 久久久久久久综合色一本| 国产乱码精品一区二区三| 亚洲小说春色综合另类电影| 国产免费成人在线视频| 91麻豆精品国产无毒不卡在线观看| 99国内精品久久| 99国内精品久久| 99久免费精品视频在线观看| 成人一级片网址| 成人av资源站| 99精品国产99久久久久久白柏| 91网站在线观看视频| 91免费国产在线| 7777精品伊人久久久大香线蕉最新版| 欧美三日本三级三级在线播放| 欧美日韩日日夜夜| 91精品在线麻豆| 精品欧美久久久| 久久青草国产手机看片福利盒子 | 亚洲伦理在线精品| 一区二区成人在线| 日日夜夜精品免费视频| 蜜桃av一区二区在线观看| 狠狠色综合日日| 国产精品白丝jk白祙喷水网站| 99久久久无码国产精品| 欧美在线一区二区| 精品粉嫩超白一线天av| 国产欧美一区二区精品婷婷| 亚洲精品写真福利| 男男gaygay亚洲| 成人自拍视频在线观看| 欧美综合色免费| 日韩欧美卡一卡二| 亚洲乱码国产乱码精品精小说| 午夜精品久久久久久不卡8050| 国产在线播放一区三区四| 成人avav影音| 日韩一二三区视频| 亚洲欧洲精品成人久久奇米网| 亚洲高清免费在线| 粉嫩绯色av一区二区在线观看| 色八戒一区二区三区| 日韩精品中文字幕在线不卡尤物| 国产精品对白交换视频 | 精品少妇一区二区三区| 综合激情网...| 狠狠色丁香婷婷综合久久片| 91视频一区二区三区| 精品99999| 午夜精品影院在线观看| 丁香另类激情小说| 日韩免费高清视频| 亚洲一区av在线| av在线不卡电影| www精品美女久久久tv| 午夜国产精品影院在线观看| 99精品欧美一区| 国产视频一区二区在线| 视频一区欧美日韩| 在线精品视频小说1| 国产精品蜜臀av| 精品一区二区三区免费毛片爱| 欧美日本在线视频| 一区二区三区四区不卡视频| 成人动漫中文字幕| 久久久不卡网国产精品二区| 日韩va欧美va亚洲va久久| 欧美最猛性xxxxx直播| 亚洲视频一区二区在线观看| 色综合久久六月婷婷中文字幕| 欧美精品一区二区三区蜜桃视频| 婷婷国产在线综合| 欧美日韩精品一区二区三区| 一区二区三区丝袜| 色狠狠色狠狠综合| 亚洲观看高清完整版在线观看| 欧美在线制服丝袜| 亚洲狠狠丁香婷婷综合久久久| 成人性视频网站| 国产精品国产三级国产专播品爱网| 国产高清视频一区| 欧美国产禁国产网站cc| 成人动漫一区二区在线| 亚洲人成亚洲人成在线观看图片 | 日韩中文字幕亚洲一区二区va在线 | 国产精品福利影院| 中文字幕一区二区在线观看 | 日韩美女一区二区三区四区| 色呦呦网站一区| 亚洲毛片av在线| 国产精品1024| 捆绑紧缚一区二区三区视频| www.欧美日韩| 一级日本不卡的影视| 成人亚洲一区二区一| 亚洲精品一区二区精华| 国产河南妇女毛片精品久久久| 91精品国产综合久久精品app| 中文字幕乱码亚洲精品一区 | 自拍偷自拍亚洲精品播放| 日韩不卡手机在线v区| 色欧美日韩亚洲| 亚洲欧美另类小说| 99精品视频在线免费观看| 久久九九影视网| 美女视频免费一区| 欧美一区二区三区在线电影| 亚洲成人免费av| 色婷婷一区二区三区四区| 国产精品美女久久久久av爽李琼| 国产精品2024| 国产亚洲精品超碰| 欧美在线高清视频| 亚洲成av人片在线| 欧美日韩在线免费视频| 午夜在线成人av| 欧美亚洲日本国产| 日韩精品1区2区3区| 日韩一区二区影院| 久久国产视频网| 久久女同精品一区二区| 国产成人精品免费视频网站| 91伊人久久大香线蕉| 中文字幕第一区| 亚洲综合精品自拍| caoporn国产精品| 亚洲美腿欧美偷拍| 在线欧美日韩国产| 日韩电影免费一区| 久久无码av三级| 在线观看免费视频综合| 天天影视网天天综合色在线播放| 欧美一级二级三级蜜桃| 欧美一区二区久久久| 一区二区三区欧美| 欧美精品tushy高清| 精品久久久久久久久久久院品网| 天使萌一区二区三区免费观看| 欧美区在线观看| 日韩av不卡一区二区| 国产欧美日韩中文久久| 色先锋久久av资源部| 日本v片在线高清不卡在线观看| 日韩欧美黄色影院| 国产大陆a不卡| 香蕉久久一区二区不卡无毒影院| 精品成人a区在线观看| 91视视频在线观看入口直接观看www | 亚洲高清免费观看| 色吊一区二区三区| 蜜臀av性久久久久av蜜臀妖精| 91猫先生在线| 午夜国产精品影院在线观看| 国内精品久久久久影院薰衣草 | 日韩成人精品在线观看| 欧美专区日韩专区| 久久疯狂做爰流白浆xx| 亚洲欧美区自拍先锋| 精品影视av免费| 91精品国产91综合久久蜜臀| 97久久久精品综合88久久| 日本少妇一区二区| 亚洲欧美经典视频| 久久精品欧美一区二区三区不卡 | 粉嫩嫩av羞羞动漫久久久| 亚洲国产精品一区二区久久| 国产视频视频一区| 欧美一区二区视频在线观看2020| 99re热这里只有精品视频| 美腿丝袜在线亚洲一区| 精品国产一二三区| 色综合久久九月婷婷色综合| 国产剧情一区二区| 懂色一区二区三区免费观看| 开心九九激情九九欧美日韩精美视频电影| 国产欧美一区二区精品性色| 国产成人午夜视频| 中文字幕一区视频| 日本一区二区免费在线| 精品国产髙清在线看国产毛片| 欧美性猛交xxxx黑人交| 91亚洲大成网污www| 久久激五月天综合精品| 欧美欧美欧美欧美| 在线观看不卡一区| 99国产精品久久久久久久久久 | 成人成人成人在线视频| 国精品**一区二区三区在线蜜桃 | 91免费国产在线| 91亚洲永久精品| 亚洲国产成人高清精品| 亚洲国产日韩精品| 一卡二卡三卡日韩欧美| 欧美亚洲国产bt| 激情综合五月婷婷| 视频一区视频二区中文| 亚洲第一成年网| 亚洲一区免费视频|