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

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

?? icqsock.pas

?? 本程序是轉(zhuǎn)載的
?? PAS
?? 第 1 頁 / 共 4 頁
字號(hào):
      if S[i] = ' ' then Inc(c);
end;

{ TMySocket }
constructor TMySocket.Create;
Begin
  Inherited Create;
  FEventSocket := TEventSocket.Create;
  FEventSocket._OnConnectError := OnConnectErrorProc;
  FEventSocket._OnConnect      := OnConnect;
  FEventSocket._OnDisconnect   := OnDisconnectProc;
  FEventSocket._OnError        := OnErrorProc;
  FEventSocket._OnReceive      := OnReceive;
  FEventSocket._OnDataSent     := OnDataSentProc;
  fSocket := INVALID_SOCKET;
End;

destructor TMySocket.Destroy;
Begin
  FEventSocket.Free;
End;

Procedure TMySocket.OnConnectErrorProc(Sender: TObject);
Begin
  If Assigned(fOnConnectError) then
    fOnConnectError(Self);
End;

Procedure TMySocket.OnDisconnectProc(Sender: TObject);
Begin
  If Assigned(fOnDisconnect) then
    fOnDisconnect(Self);
  fEventSocket.FreeSocket;
End;

Procedure TMySocket.OnConnect(Sender: TObject);
Begin
  If Assigned(FOnConnectProc) then
    fOnConnectProc(Self);
End;

Procedure TMySocket.OnErrorProc(Sender: TObject; ErrorType: TErrorType; ErrorMsg: String);
Begin
  If Assigned(fOnError) then
    fOnError(Self, ErrorType, ErrorMsg);
End;

Procedure TMySocket.OnReceive(Sender: TObject; Buffer: Pointer; BufLen: LongWord);
Begin
  If Assigned(fOnRecv) then
    fOnRecv(Self, ClientSocket, Buffer, BufLen);
End;

Procedure TMySocket.OnDataSentProc(Sender: TObject);
Begin
  If Assigned(fOnDataSent) then
    fOnDataSent(Self);
End;

function TMySocket.GetClientSocket: TSocket;
Begin
  If FSocket = INVALID_SOCKET then
    Result := FEventSocket.FSocket
  Else
    Result := FSocket;
End;

procedure TMySocket.SetClientSocket(Socket: TSocket);
Begin
  fSocket := Socket;
  fEventSocket.ProxyReady := True;
  FEventSocket.StartWork(fSocket);

End;

function TMySocket.IsConnected: Boolean;
Begin
  Result := FEventSocket.Connected;
End;

procedure TMySocket.Connect;
Begin
  If FEventSocket.Connected Then exit;
  FEventSocket.Host := fHost;
  FEventSocket.Port := fPort;

  FEventSocket.ProxyReady := True;
  FEventSocket.ProxyHost  := fHost;
  FEventSocket.ProxyPort  := fPort;

  FEventSocket.Connect;
End;

procedure TMySocket.Disconnect;
Begin
  If Not FEventSocket.Connected then Exit;
  FEventSocket.FreeSocket;
End;

procedure TMySocket.SendData(var Buf; BufLen: LongWord);
Begin
  FEventSocket.SendData(@Buf, BufLen);
End;

Procedure TMySocket.SetHost( aHost: String);
Begin
  FEventSocket.Host := aHost;
End;

Procedure TMySocket.SetPort( aPort: Word);
Begin
  FEventSocket.Port := aPort
End;

Function  TMySocket.GetHost: String;
Begin
  Result := FEventSocket.Host;
End;

Function  TMySocket.GetPort: Word;
Begin
  Result := FEventSocket.Port;
End;

Procedure TMySocket.SetProxyType( aProxyType: TProxyType);
Begin
  //
End;

Procedure TMySocket.SetProxyHost( aProxyHost: String);
Begin
  FEventSocket.ProxyHost := aProxyHost;
End;

Procedure TMySocket.SetProxyPort( aProxyPort: Word);
Begin
  FEventSocket.ProxyPort := aProxyPort;
End;

Procedure TMySocket.SetProxyAuth( aProxyAuth: Boolean);
Begin
  FEventSocket.ProxyAuth := aProxyAuth;
End;

Procedure TMySocket.SetProxyPass( aProxyPass: String);
Begin
  FEventSocket.ProxyPass := aProxyPass;
End;

Procedure TMySocket.SetProxyUser( aProxyUser: String);
Begin
  FEventSocket.ProxyUser := aProxyUser;
End;

Procedure TMySocket.SetProxyRslv( aProxyRslv: Boolean);
Begin
  FEventSocket.ProxyResolve := aProxyRslv;
End;

Function  TMySocket.GetProxyType: TProxyType;
Begin
  Result := P_NONE;
End;

Function  TMySocket.GetProxyHost: String;
Begin
  Result := FEventSocket.ProxyHost;
End;

Function  TMySocket.GetProxyPort: Word;
Begin
  Result := FEventSocket.ProxyPort;
End;

Function  TMySocket.GetProxyAuth: Boolean;
Begin
  Result := FEventSocket.ProxyAuth;
End;

Function  TMySocket.GetProxyPass: String;
Begin
  Result := FEventSocket.ProxyPass;
End;

Function  TMySocket.GetProxyUser: String;
Begin
  Result := FEventSocket.ProxyUser;
End;

Function  TMySocket.GetProxyRslv: Boolean;
Begin
  Result := FEventSocket.ProxyResolve;
End;

{ TSrvSocket }
constructor TSrvSocket.Create;
Begin
  inherited Create;
  fSrv := TServerSocket.Create;
  //fSrv.OnConnected := OnCliConnProc;
  fSrv.FreeOnTerminate    := False;
  fSrv._OnClientConnected := OnSrvConnProc;
  fSrv._OnError           := OnSrvErrProc;
  fIsListening := False;
End;

destructor TSrvSocket.Destroy;
Begin
  fSrv.FreeOnTerminate := True;
  StopServer;
  inherited Destroy;
End;

procedure TSrvSocket.OnSrvErrProc(Sender: TObject; ErrorType: TErrorType; ErrorMsg: String);
Begin
  If assigned(fOnError) then
    fOnError(Sender, ErrorType, ErrorMsg);
End;

procedure TSrvSocket.OnSrvConnProc(Sender: TObject; Socket: TSocket);
Var
  aMS:TMySocket;
Begin
  If Assigned(fOnClientConnected) then Begin
    aMS := TMySocket.Create;
    aMS.ProxyType := P_None;
    aMS.ClientSocket := Socket;
    fOnClientConnected(Self, aMS);
  End;
End;

function TSrvSocket.GetPort:Word;
Begin
  Result := fSrv.Port;
End;

procedure TSrvSocket.SetPort( aPort: Word);
Begin
  fSrv.Port := aPort;
  fPort := aPort;
End;

function TSrvSocket.StartServer(Port: Word): Boolean;
Begin
  fSrv.Port := Port;
  fPort := Port;
  Result := fSrv.Start;
  fIsListening := Result;
End;

function TSrvSocket.StopServer: Boolean;
Begin
  fSrv.FreeSocket;
  fIsListening := False;
  Result := True;
End;

{ TServerSocket }

procedure TServerSocket.OnClientConnected;
Begin
  If assigned(fOnCliConn) then
    Synchronize(DoConnEvent);
End;

procedure TServerSocket.DoConnEvent;
Begin
  fOnCliConn(Self, fClient);
End;

constructor TNetBuffer.Create;
begin
  inherited Create;
  FPkt := nil;
  Shared := 0;
end;

destructor TNetBuffer.Destroy;
begin
  Clear;
  if Shared = 1 then DeleteCriticalSection(CS);
  inherited;
end;

{Swap pointers}
procedure XChg(var Critical, Normal); assembler;
asm
  mov  ecx, [edx]
  xchg [eax], ecx
  mov  [edx], ecx
end;

procedure TNetBuffer.Enter; {Synchronization - enter critical section}
var
  j: Integer;
begin
  j := 1; XChg(Shared, j); if j = 0 then InitializeCriticalSection(CS);
  EnterCriticalSection(CS);
end;

procedure TNetBuffer.Leave; {Synchronization - leave critical section}
begin
  LeaveCriticalSection(CS);
end;

procedure TNetBuffer.Clear;
var
  p: Pointer;
begin
  while FPkt <> nil do begin
    p := FPkt^.Next;
    FreeMem(FPkt);
    FPkt := p;
  end;
end;

procedure TNetBuffer.AddPacket(Buffer: Pointer; BufLen: LongWord);
var
  p: PNetPacket;
begin
  if BufLen > CNetPktLen then BufLen := CNetPktLen;
  if FPkt = nil then begin
    GetMem(FPkt, SizeOf(TNetPacket));
    p := FPkt;
  end else begin
    p := FPkt;
    while p <> nil do begin
      if p^.Next = nil then Break;
      p := p^.Next;
    end;
    GetMem(p^.Next, SizeOf(TNetPacket));
    p := p^.Next;
  end;
  p^.BufLen := BufLen;
  p^.Offset := 0;
  p^.Next := nil;
  Move(Buffer^, p^.Buf, BufLen);
end;

procedure TNetBuffer.DelPacket;
var
  p: PNetPacket;
begin
  if (FPkt = nil) then Exit;
  if FPkt^.Next <> nil then
  begin
    p := FPkt^.Next;
    FreeMem(FPkt);
    FPkt := p;
  end else
  begin
    FreeMem(FPkt);
    FPkt := nil;
  end;
end;

function TNetBuffer.GetPacket(Buffer: Pointer): LongWord;
begin
  if (FPkt = nil) or (FPkt^.Offset >= FPkt^.BufLen) then
    Result := 0
  else begin
    Move(Ptr(LongWord(@FPkt^.Buf) + FPkt^.Offset)^, Buffer^, FPkt^.BufLen - FPkt^.Offset);
    Result := FPkt^.BufLen - FPkt^.Offset;
  end;
end;

function TNetBuffer.SkipData(Len: Word): Boolean;
begin
  if FPkt = nil then
    Result := True
  else begin
    Inc(FPkt^.Offset, Len);
    Result := FPkt^.Offset >= FPkt^.BufLen;
  end;
end;

procedure TNetBuffer.AddStr(const Value: String);
begin
  AddPacket(@Value[1], Length(Value));
end;

function TNetBuffer.GetStr: String;
var
  p: array[0..CNetPktLen] of Char;
begin
  p[GetPacket(@p)] := #0;
  Result := PChar(@p);
end;

function TNetBuffer.GetLength: LongWord;
var
  p: PNetPacket;
begin
  Result := 0;
  p := FPkt;
  while p <> nil do begin
    Inc(Result, p^.BufLen);
    p := p^.Next;
  end;
end;


//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

{ TCustromSocket }

{** CONSTRUCTOR **}
constructor TCustomSocket.Create;
begin
  inherited Create(True);
  FConnected := False;
  FWorking := False;
  FAssync := DefaultSockType;
  FBuffer := TNetBuffer.Create;
end;


{** DESTRUCTOR **}
destructor TCustomSocket.Destroy;
begin
  FreeSocket;
  if FBuffer <> nil then FBuffer.Free;
  inherited Destroy;
end;

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
中文字幕一区二区三区视频| 亚洲视频中文字幕| 日韩电影网1区2区| 56国语精品自产拍在线观看| 五月开心婷婷久久| 欧美mv日韩mv| 91美女福利视频| 欧美96一区二区免费视频| 久久先锋影音av鲁色资源| 欧美色图天堂网| 国产福利精品一区二区| 亚洲日本在线观看| 亚洲精品在线观看网站| 欧美三区在线观看| 成人一级片在线观看| 全部av―极品视觉盛宴亚洲| 亚洲品质自拍视频网站| 欧美二区三区的天堂| 成人午夜电影网站| 蜜臀av性久久久久蜜臀aⅴ流畅| 国产精品天美传媒| 欧美久久久久免费| 成人开心网精品视频| 香蕉影视欧美成人| 国产精品无人区| 欧美少妇性性性| eeuss鲁片一区二区三区| 开心九九激情九九欧美日韩精美视频电影| 日韩伦理免费电影| 国产日韩欧美制服另类| 日韩一区二区视频| 91久久一区二区| 成人手机在线视频| 国产一区二区三区久久久| 免费在线看成人av| 午夜视频一区在线观看| 日韩码欧中文字| 中文字幕制服丝袜成人av| 精品国产第一区二区三区观看体验| 色av综合在线| 色一情一乱一乱一91av| 99re66热这里只有精品3直播 | 国产美女在线观看一区| 亚洲一区二区三区四区五区中文| 国产人妖乱国产精品人妖| 久久久久久久av麻豆果冻| 日韩视频一区二区| 91精品欧美久久久久久动漫| 欧美日韩美少妇| 欧美日韩激情一区二区三区| 欧美日精品一区视频| 欧美亚洲日本一区| 91免费在线看| 欧美三区在线视频| 欧美电影在线免费观看| 欧美绝品在线观看成人午夜影视| 99国产精品久久| 成人高清av在线| 国产毛片一区二区| 久久福利视频一区二区| 蜜臀av一区二区在线免费观看| 一区二区久久久| 亚洲午夜精品网| 日韩精品91亚洲二区在线观看 | 91精品国产一区二区三区香蕉| 欧美自拍丝袜亚洲| 欧美一区二区三区小说| 欧美一区二区美女| 精品久久久久久无| 欧美激情在线一区二区三区| 精品国产制服丝袜高跟| 国产肉丝袜一区二区| 亚洲欧美日韩国产综合在线| 一区二区在线观看视频在线观看| 夜色激情一区二区| 天天av天天翘天天综合网色鬼国产| 午夜精品免费在线| 久久黄色级2电影| 国产精品一区二区久久不卡| 国产一区二区h| 成人国产在线观看| 欧美性大战久久久久久久| 欧美精品aⅴ在线视频| 777a∨成人精品桃花网| 欧美本精品男人aⅴ天堂| 国产精品久久久久一区| 亚洲国产你懂的| 精品制服美女丁香| av在线不卡网| 欧美一级视频精品观看| 国产婷婷色一区二区三区 | 午夜久久久久久久久久一区二区| 全国精品久久少妇| 成人亚洲一区二区一| 欧美午夜电影网| 精品久久久久一区二区国产| 一色屋精品亚洲香蕉网站| 婷婷久久综合九色综合绿巨人 | 夜夜嗨av一区二区三区| 激情综合五月婷婷| 91麻豆国产精品久久| 日韩欧美一区二区免费| 欧美国产激情一区二区三区蜜月| 综合久久久久久| 日本人妖一区二区| 成人动漫一区二区在线| 色欧美乱欧美15图片| 精品久久久久久久一区二区蜜臀| 综合分类小说区另类春色亚洲小说欧美 | 亚洲精品一区二区三区福利| 亚洲视频1区2区| 日产国产欧美视频一区精品| 福利一区二区在线| 日韩美女视频一区二区在线观看| 国产精品久久久久aaaa樱花| 美日韩一区二区| 欧美性色欧美a在线播放| 国产精品美女视频| 激情文学综合网| 欧美丰满一区二区免费视频| 国产精品欧美极品| 黄页网站大全一区二区| 欧美精品乱码久久久久久| 亚洲欧洲精品一区二区三区| 婷婷六月综合亚洲| 色综合夜色一区| 久久久www免费人成精品| 日日摸夜夜添夜夜添国产精品| 99九九99九九九视频精品| 欧美xfplay| 五月婷婷激情综合网| 99精品视频在线观看| 中文字幕第一区二区| 国产综合色视频| 日韩欧美一区电影| 蜜臀av国产精品久久久久| 91 com成人网| 午夜精品久久久久久久久| 欧美综合色免费| 亚洲精品成人悠悠色影视| gogo大胆日本视频一区| 国产亚洲制服色| 狠狠色丁香久久婷婷综| 欧美大黄免费观看| 老色鬼精品视频在线观看播放| 欧美日韩激情一区| 亚洲高清免费观看| 欧美久久久一区| 免费看欧美女人艹b| 91精品国产手机| 青娱乐精品在线视频| 欧美精品一级二级三级| 丝袜亚洲另类欧美综合| 欧美一区二区三区免费观看视频| 日韩成人午夜电影| 精品美女在线播放| 国产成人在线免费观看| 国产欧美一区二区精品性色超碰| 国产精品18久久久久久久久久久久 | 欧美一区二区三区四区久久 | 日韩精品综合一本久道在线视频| 青青草国产成人99久久| 26uuu另类欧美亚洲曰本| 国产一区二区三区精品视频| 久久精品在这里| 成人a免费在线看| 亚洲欧美日韩系列| 欧美日韩一级片网站| 亚洲主播在线观看| 91精品国产丝袜白色高跟鞋| 免费观看久久久4p| 久久美女艺术照精彩视频福利播放| 蜜臀av一区二区| 精品久久99ma| 精品一区免费av| 欧美激情自拍偷拍| 欧美主播一区二区三区| 另类小说色综合网站| 欧美激情在线一区二区| 欧美怡红院视频| 国产一本一道久久香蕉| 自拍偷自拍亚洲精品播放| 欧美日韩精品一区视频| 国产麻豆视频一区| 亚洲精品少妇30p| 日韩丝袜美女视频| 成人一级视频在线观看| 亚洲电影一区二区| 日韩欧美卡一卡二| 色综合久久久久| 国产精品资源站在线| 午夜av区久久| 一色屋精品亚洲香蕉网站| 精品美女在线观看| 欧美日韩国产小视频| 风间由美一区二区三区在线观看| 视频在线在亚洲| 亚洲影院在线观看| 中文字幕高清不卡| 久久久久久久久久看片|