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

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

?? icqsock.pas

?? 本程序是轉載的
?? PAS
?? 第 1 頁 / 共 4 頁
字號:
              DoSocks5Connect;
            end;
          end;
        end;
        1:
        begin
          if FSrcLen = 2 then
          begin
            if FSrcBuf[1] <> 0 then
            begin
              FLastError := 0;
              FLastErrMsg := ICQLanguages[FErrLang].Translate(IMSG_ESOCK_SOCKS5NA);
              Synchronize(OnConnectError);
              Exit;
            end;
            FSrcLen := 0;
            Inc(FSocksProgress);
            DoSocks5Connect;
          end;
        end;
        2:
        begin
          if FSrcLen = 10 then
          begin
            if (FSrcBuf[0] <> 5) or (FSrcBuf[1] <> 0) then
            begin
              FLastError := 0;
              FLastErrMsg := ICQLanguages[FErrLang].Translate(IMSG_ESOCK_SOCKS5CONN);
              Synchronize(OnConnectError);
              Exit;
            end;
            FSrcLen := 0;
            ProxyReady := True;
            Synchronize(OnConnect);
            if i < BufLen - 1 then begin
              Buffer := Ptr(LongWord(Buffer) + i);
              Synchronize(OnReceive); //Continue handling of remaining data
            end;
          end;
        end;
      end;
    end;
  end else
    inherited;
end;





{ THTTPSocket }

procedure THTTPSocket.OnConnect;
begin
  inherited;
  FLen := 0;
  FCurLen := 0;
end;

procedure THTTPSocket.OnReceive;
  function GetHTTPLength(List: TStringList): Integer;
  var
    i: Word;
  begin
    Result := 0;
    if List.Count < 1 then Exit;
    for i := 0 to List.Count - 1 do
      if Copy(List.Strings[i], 0, 16) = 'Content-Length: ' then
      begin
        Result := StrToInt(Copy(List.Strings[i], 16, $FF));
        Exit;
      end;
  end;

  function StrToInt(const Value: String): LongWord;
  var
    nCode: Integer;
  begin
    Val(Value, Result, nCode);
  end;

var
  i: LongWord;
  List: TStringList;
  S: String;
begin
  if not ProxyReady then begin
    if BufLen < 1 then Exit;
    for i := 0 to BufLen - 1 do
    begin
      FBuf[FCurLen] := PByte(LongWord(Buffer) + i)^;
      Inc(FCurLen);
      if FLen = 0 then
        if FCurLen > 3 then
          if Copy(PChar(@FBuf), FCurLen - 3, 4) = #13#10#13#10 then
          begin
            List := TStringList.Create;
            List.Text := PChar(@FBuf);
            S := GetHTTPStatus(List);
            FLen := GetHTTPLength(List);
            List.Free;
            if S <> '200 OK' then
            begin
              FLastError := 0;
              FLastErrMsg := ICQLanguages[FErrLang].Translate(IMSG_ESOCK_HTTPSTAT) + S;
              Synchronize(OnError);
              Exit;
            end;
            if FLen + FCurLen > SizeOf(FBuf) then begin
              FLastError := 0;
              FLastErrMsg := ICQLanguages[FErrLang].Translate(IMSG_ESOCK_HTTPBUF);
              Synchronize(OnError);
              Exit;
            end;
            FCurLen := 0;
            {$IFDEF PARSE}
            LogText('http.txt', 'Received (proxy): '#13#10 + PChar(@FBuf));
            {$ENDIF}
          end;
      if (FCurLen = FLen) then
      begin

        {We suppose that only one page can be received}
        ProxyReady := True;
        Buffer := @FBuf;
        BufLen := FCurLen;
        Synchronize(OnReceive);
        Exit;
      end;
    end;
  end else
    inherited;
end;





{ THTTPSSocket }

procedure THTTPSSocket.OnConnect;
begin
  inherited;
  if not ProxyReady then begin
    FCurLen := 0;
    if FProxyResolve then
      SendStr('CONNECT ' + FDestHost + ':' + IntToStr(FDestPort) + ' HTTP/1.0' + #13#10)
    else
      SendStr('CONNECT ' + WSockAddrToIp(FDestIp) + ':' + IntToStr(FDestPort) + ' HTTP/1.0' + #13#10);
    SendStr('User-Agent: Mozilla/4.08 [en] (WinNT; U ;Nav)' + #13#10);
    if FProxyAuth then
      SendStr('Proxy-Authorization: Basic ' + EncodeBase64(ProxyUser + ':' + ProxyPass) + #13#10);
    SendStr(#13#10);
  end;
end;

procedure THTTPSSocket.OnReceive;
var
  i: LongWord;
  List: TStringList;
  S: String;
begin
  if not ProxyReady then begin
    if BufLen < 1 then Exit;
    for i := 0 to BufLen - 1 do
    begin
      FBuf[FCurLen] := PByte(LongWord(Buffer) + i)^;
      Inc(FCurLen);
      if FCurLen > 3 then
        if Copy(PChar(@FBuf), FCurLen - 3, 4) = #13#10#13#10 then
        begin
          List := TStringList.Create;
          List.Text := PChar(@FBuf);
          S := GetHTTPStatus(List);
          List.Free;
          CharLowerBuff(@S[1], Length(S));
          if S <> '200 connection established' then
          begin
            FLastError := 0;
            FLastErrMsg := ICQLanguages[FErrLang].Translate(IMSG_ESOCK_HTTPSTAT) + S;
            Synchronize(OnError);
            Exit;
          end;
          ProxyReady := True;
          {Handle remaining data}
          if i < BufLen - 1 then begin
            Buffer := Ptr(LongWord(Buffer) + i);
            BufLen := BufLen - i;
            Synchronize(OnReceive);
            Exit;
          end;
        end;
    end;
  end else
    inherited;
end;

{ TTCPServer }

constructor TTCPServer.Create;
begin
  inherited Create(True);
  FSocket := INVALID_SOCKET;
end;

destructor TTCPServer.Destroy;
begin
  FreeSocket;
  inherited;
end;

procedure TTCPServer.FreeSocket;
begin
  if not Terminated then Terminate;
  if FSocket <> INVALID_SOCKET then
    closesocket(FSocket);
end;

procedure TTCPServer.WaitForConnection;
Var
  FD,FDW,FDE:TFDSet;
Begin
  FD_ZERO(FD);
  FD_SET(fSocket, FD);
  FD_ZERO(FDW);
  FD_SET(fSocket, FDW);
  FD_ZERO(FDE);
  FD_SET(fSocket, FDE);
  select(fSocket + 1, @FD, @FDW, @FDE, nil); // Need to add a timeout maybe.
End;

procedure TTCPServer.Execute;
begin
  while not Terminated do begin
    //Should Wait For Connection here.
    WaitForConnection;
    FClient := accept(FSocket, nil, nil);
    if (FClient = INVALID_SOCKET) then begin
      if not Terminated then begin
        FLastError := WSAGetLastError;
        FLastErrMsg := ICQLanguages[FErrLang].Translate(IMSG_ESOCK_ACCEPT);
        Synchronize(OnError);
      end;
      Exit;
    end else
      Synchronize(OnClientConnected);
  end;
end;

function TTCPServer.Start: Boolean;
var
  srv_addr: TSockAddrIn;
begin
  Result := False;
//  FreeSocket;
  FSocket := socket(PF_INET, SOCK_STREAM, 0);
  srv_addr.sin_family := AF_INET;
  srv_addr.sin_port := htons(FPort);
  srv_addr.sin_addr.S_addr := INADDR_ANY;
  if bind(FSocket, srv_addr, sizeof(srv_addr)) = SOCKET_ERROR then begin
    FLastError := WSAGetLastError;
    FLastErrMsg := ICQLanguages[FErrLang].Translate(IMSG_ESOCK_BIND);
    Synchronize(OnError);
    Exit;
  end;
  if listen(FSocket, SOMAXCONN) = SOCKET_ERROR then begin
    FLastError := WSAGetLastError;
    FLastErrMsg := ICQLanguages[FErrLang].Translate(IMSG_ESOCK_LISTEN);
    Synchronize(OnError);
    Exit;
  end;
  Result := True;
  Self.Resume;
end;

procedure TTCPServer.OnError;
begin
  FreeSocket;
  if Assigned(_OnError) then
    FOnError(Self, ERR_SOCKET, FLastErrMsg);
end;

procedure TTCPServer.OnClientConnected;
begin
  if Assigned(_OnClientConnected) then
    FOnClientConnected(Self, FClient);
end;




///-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

function WSAErrorToStr(ErrorNo: Integer): String;
begin
  case ErrorNo of
    WSAEINTR:           Result := 'Interrupted system call';
    WSAEBADF:           Result := 'Bad file number';
    WSAEACCES:          Result := 'Permission denied';
    WSAEFAULT:          Result := 'Bad address';
    WSAEINVAL:          Result := 'Invalid argument';
    WSAEMFILE:          Result := 'Too many open files';
    WSAEWOULDBLOCK:     Result := 'Operation would block';
    WSAEINPROGRESS:     Result := 'Operation now in progress';
    WSAEALREADY:        Result := 'Operation already in progress';
    WSAENOTSOCK:        Result := 'Socket operation on non-socket';
    WSAEDESTADDRREQ:    Result := 'Destination address required';
    WSAEMSGSIZE:        Result := 'Message too long';
    WSAEPROTOTYPE:      Result := 'Protocol wrong type for socket';
    WSAENOPROTOOPT:     Result := 'Protocol not available';
    WSAEPROTONOSUPPORT: Result := 'Protocol not supported';
    WSAESOCKTNOSUPPORT: Result := 'Socket type not supported';
    WSAEOPNOTSUPP:      Result := 'Operation not supported on socket';
    WSAEPFNOSUPPORT:    Result := 'Protocol family not supported';
    WSAEAFNOSUPPORT:    Result := 'Address family not supported by protocol family';
    WSAEADDRINUSE:      Result := 'Address already in use';
    WSAEADDRNOTAVAIL:   Result := 'Can''t assign requested address';
    WSAENETDOWN:        Result := 'Network is down';
    WSAENETUNREACH:     Result := 'Network is unreachable';
    WSAENETRESET:       Result := 'Network dropped connection on reset';
    WSAECONNABORTED:    Result := 'Software caused connection abort';
    WSAECONNRESET:      Result := 'Connection reset by peer';
    WSAENOBUFS:         Result := 'No buffer space available';
    WSAEISCONN:         Result := 'Socket is already connected';
    WSAENOTCONN:        Result := 'Socket is not connected';
    WSAESHUTDOWN:       Result := 'Can''t send after socket shutdown';
    WSAETOOMANYREFS:    Result := 'Too many references: can''t splice';
    WSAETIMEDOUT:       Result := 'Connection timed out';
    WSAECONNREFUSED:    Result := 'Connection refused';
    WSAELOOP:           Result := 'Too many levels of symbolic links';
    WSAENAMETOOLONG:    Result := 'File name too long';
    WSAEHOSTDOWN:       Result := 'Host is down';
    WSAEHOSTUNREACH:    Result := 'No route to host';
    WSAENOTEMPTY:       Result := 'Directory not empty';
    WSAEPROCLIM:        Result := 'Too many processes';
    WSAEUSERS:          Result := 'Too many users';
    WSAEDQUOT:          Result := 'Disc quota exceeded';
    WSAESTALE:          Result := 'Stale NFS file handle';
    WSAEREMOTE:         Result := 'Too many levels of remote in path';
    WSASYSNOTREADY:     Result := 'Network sub-system is unusable';
    WSAVERNOTSUPPORTED: Result := 'WinSock DLL cannot support this application';
    WSANOTINITIALISED:  Result := 'WinSock not initialized';
    WSAHOST_NOT_FOUND:  Result := 'Host not found';
    WSATRY_AGAIN:       Result := 'Non-authoritative host not found';
    WSANO_RECOVERY:     Result := 'Non-recoverable error';
    WSANO_DATA:         Result := 'No Data';
    else                Result := 'Not a WinSock error';
  end;
end;

function FindBindPort: Word;
var
  i: Word;
  srv_address: sockaddr_in;
  sock: TSocket;
begin
  Result := 0;
  sock := socket(AF_INET, SOCK_STREAM, 0);
  if sock = INVALID_SOCKET then
    Exit;
  srv_address.sin_family := AF_INET;
  srv_address.sin_addr.s_addr := INADDR_ANY;
  for i := gPortRange.First to gPortRange.Last do
  begin
    srv_address.sin_port := htons(i);
    if bind(sock, srv_address, SizeOf(srv_address)) <> SOCKET_ERROR then
    begin
      closesocket(sock);
      Result := i;
      Exit;
    end;
  end;
end;

function GetLocalIP: Integer;
type
  PaPInAddr = ^TaPInAddr;
  TaPInAddr = array[0..$FFFE] of PInAddr;
var
  phe: PHostEnt;
  pptr: PaPInAddr;
  Buffer: array[0..MAXGETHOSTSTRUCT - 1] of Char;
  I: Integer;
begin
  Result := -1;
  GetHostName(Buffer, SizeOf(Buffer));
  phe := GetHostByName(Buffer);
  if phe = nil then Exit;
  pptr := PaPInAddr(Phe^.h_addr_list);
  I := 0;
  while pptr^[I] <> nil do
  begin
    Result := pptr^[I]^.S_addr;
    Inc(I);
  end;
end;

function WSockAddrToIp(Value: LongWord): String;
var
  ia: in_addr;
begin
  ia.S_addr := Value;
  Result := inet_ntoa(ia);
end;

initialization
  {Use WinSock 1.1}
  if WSAStartup(MAKEWORD(1, 1), WSAData) <> 0 then begin
    {$IFDEF DEBUG}
    MessageBox(0, PChar('Could not start WSA'), 'Error!', MB_ICONERROR);
    {$ENDIF}
    WSAStarted := False;
  end else
    WSAStarted := True;

finalization
  if WSACleanUp <> 0 then begin
    {$IFDEF DEBUG}
    MessageBox(0, PChar('Could not cleanup WSA'), 'Error!', MB_ICONERROR);
    {$ENDIF}
  end;
  WSAStarted := False;
end.

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产亚洲女人久久久久毛片| 欧美精品乱人伦久久久久久| 一区二区三区四区在线播放| 欧美成人福利视频| 色综合av在线| 成人晚上爱看视频| 青青草伊人久久| 亚洲精品乱码久久久久| 亚洲国产高清在线| 欧美xingq一区二区| 欧美男人的天堂一二区| 91年精品国产| av电影一区二区| 99re免费视频精品全部| 成人综合婷婷国产精品久久蜜臀| 久久99最新地址| 激情成人综合网| 精品一区在线看| 激情久久五月天| 狠狠色丁香久久婷婷综| 国产一区二区三区国产| 国产麻豆成人精品| 国产一区二区免费视频| 国产精品一二二区| 成人免费视频caoporn| 91蝌蚪国产九色| 欧美亚洲日本国产| 欧美久久一二三四区| 欧美嫩在线观看| 日韩一区二区三区电影在线观看| 日韩一二三区视频| 国产午夜精品美女毛片视频| 国产精品久久久久9999吃药| 亚洲欧美经典视频| 亚洲午夜一二三区视频| 日本va欧美va精品| 国产成人aaa| 欧美日韩一区二区三区在线| 欧美不卡视频一区| 亚洲欧美激情小说另类| 日产国产欧美视频一区精品 | 成人免费在线播放视频| 亚洲一区中文日韩| 国产福利91精品一区二区三区| 不卡的电影网站| 91精品国产福利在线观看 | 久久免费电影网| 亚洲综合在线第一页| 国产一区二区三区综合| 91网页版在线| 国产午夜亚洲精品不卡| 亚洲va天堂va国产va久| 国产成+人+日韩+欧美+亚洲| 欧美艳星brazzers| 中文字幕亚洲一区二区va在线| 午夜激情综合网| 在线观看一区日韩| 国产精品福利在线播放| 久久机这里只有精品| 欧美日韩国产高清一区二区| 亚洲精品国产高清久久伦理二区| 国产一区不卡视频| 欧美大片一区二区| 日韩国产精品91| 欧美丰满少妇xxxxx高潮对白| 日韩美女视频一区二区 | 亚洲另类春色校园小说| 成人精品亚洲人成在线| 久久免费看少妇高潮| 国产精品伊人色| 国产无人区一区二区三区| 毛片不卡一区二区| 日韩欧美亚洲国产精品字幕久久久| 亚洲成a人v欧美综合天堂| 欧美午夜一区二区三区| 亚洲18影院在线观看| 欧美日韩视频一区二区| 日韩影视精彩在线| 日韩西西人体444www| 国内精品伊人久久久久av影院 | 亚洲精品欧美在线| 欧美日本视频在线| 久久99久久久欧美国产| 久久精品视频网| 色诱视频网站一区| 午夜精品成人在线视频| 日韩精品中文字幕在线不卡尤物 | 99免费精品视频| 午夜欧美在线一二页| 欧美一区永久视频免费观看| 国产最新精品免费| 樱花草国产18久久久久| 91精品国产综合久久香蕉的特点 | 国产精品一区二区在线观看不卡 | 99天天综合性| 日韩精品一区第一页| 久久人人爽爽爽人久久久| 91在线国产福利| 激情综合色播五月| 一区二区三区四区不卡在线 | 91在线一区二区三区| 午夜精品久久久久影视| 久久久99精品免费观看不卡| 91免费小视频| 国产成人亚洲精品狼色在线| 亚洲va欧美va国产va天堂影院| 久久精品视频免费| 日韩三级伦理片妻子的秘密按摩| 97se亚洲国产综合自在线不卡| 麻豆精品视频在线观看视频| 亚洲美女少妇撒尿| 国产欧美一区二区精品性色| 日韩视频免费直播| 欧美日韩一区国产| 亚洲成人动漫在线观看| 欧洲在线/亚洲| proumb性欧美在线观看| 黑人精品欧美一区二区蜜桃| 蜜桃精品视频在线| 日韩电影在线一区二区| 亚洲成人手机在线| 亚洲一区在线观看网站| 亚洲一区二区精品久久av| 国产精品三级av| 亚洲女人的天堂| 亚洲午夜日本在线观看| 亚洲永久免费av| 日韩不卡一区二区| 日韩电影在线免费| 国内精品久久久久影院色| 国产真实乱对白精彩久久| 国产精品88888| 99麻豆久久久国产精品免费优播| 94色蜜桃网一区二区三区| 91免费观看国产| 777xxx欧美| 欧美国产在线观看| 亚洲第一会所有码转帖| 久久国内精品视频| 97久久人人超碰| 日韩三级视频在线观看| 中文字幕的久久| 亚洲va在线va天堂| 国产成人精品一区二区三区四区| 91原创在线视频| 日韩美女天天操| 亚洲午夜电影在线| 国产成人综合自拍| 9191成人精品久久| 国产精品福利一区二区三区| 蜜桃视频在线观看一区二区| 国产99一区视频免费| 欧美亚洲动漫精品| 国产视频一区二区在线观看| 亚洲香蕉伊在人在线观| 成人永久免费视频| 精品少妇一区二区| 婷婷久久综合九色国产成人| 成人激情文学综合网| 精品国免费一区二区三区| 一区二区三区四区不卡在线| 成人免费看片app下载| 欧美大片日本大片免费观看| 午夜精品一区二区三区电影天堂 | 午夜激情一区二区三区| 色激情天天射综合网| 国产精品高潮呻吟| 成人免费看片app下载| 中文字幕va一区二区三区| 免费的国产精品| 日韩午夜精品视频| 蜜臀av性久久久久蜜臀aⅴ流畅 | 欧美极品美女视频| 国产成人av影院| 日本一区二区综合亚洲| 国产精品99久久久久久似苏梦涵| 欧美成人女星排行榜| 国内精品久久久久影院薰衣草 | 一区二区三区美女| 欧美伊人久久久久久午夜久久久久| 亚洲欧美日韩国产成人精品影院 | 欧美sm极限捆绑bd| 久久aⅴ国产欧美74aaa| 欧美精品一区二区精品网| 久久99久久99精品免视看婷婷 | 久久99久久99小草精品免视看| 久久一区二区三区四区| 国产精品亚洲人在线观看| 国产色爱av资源综合区| 99久久国产综合精品色伊| 亚洲视频免费在线| 欧美中文一区二区三区| 蜜桃av一区二区三区电影| 久久综合成人精品亚洲另类欧美| 粉嫩一区二区三区在线看| 一二三区精品视频| 日韩欧美一级特黄在线播放| 不卡的电影网站| 久久电影网电视剧免费观看| 国产精品天美传媒|