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

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

?? idmappedporttcp.pas

?? Indy 9.00.17 for C++Builder
?? PAS
?? 第 1 頁 / 共 2 頁
字號:
{ $HDR$}
{**********************************************************************}
{ Unit archived using Team Coherence                                   }
{ Team Coherence is Copyright 2002 by Quality Software Components      }
{                                                                      }
{ For further information / comments, visit our WEB site at            }
{ http://www.TeamCoherence.com                                         }
{**********************************************************************}
{}
{ $Log:  10247: IdMappedPortTCP.pas 
{
{   Rev 1.0    2002.11.12 10:45:12 PM  czhower
}
unit IdMappedPortTCP;
interface
{
2001-12-xx - Andrew P.Rybin
  -new architecture
2002-02-02 - Andrew P.Rybin
  -DoDisconnect fix
}
uses
  Classes,
  IdGlobal, IdTCPConnection, IdTCPServer, IdAssignedNumbers,
  SysUtils;

type
  TIdMappedPortThread = class (TIdPeerThread)
  protected
    FOutboundClient: TIdTCPConnection;//was TIdTCPClient
    FReadList: TList;
    FNetData: String; //data buf
    FConnectTimeOut: Integer;
    //
    procedure Cleanup; override; //Free OutboundClient
    procedure OutboundConnect; virtual;
  public
    constructor Create(ACreateSuspended: Boolean = True); override;
    destructor Destroy; override;
    //
    property  ConnectTimeOut: Integer read FConnectTimeOut write FConnectTimeOut default IdTimeoutDefault;
    property  NetData: String read FNetData write FNetData;
    property  OutboundClient: TIdTCPConnection read FOutboundClient write FOutboundClient;
    property  ReadList: TList read FReadList;
  End;//TIdMappedPortThread

  TIdMappedPortThreadEvent = procedure(AThread: TIdMappedPortThread) of object;
  TIdMappedPortOutboundConnectEvent = procedure(AThread: TIdMappedPortThread; AException: Exception) of object;//E=NIL-OK

  TIdMappedPortTCP = class(TIdTCPServer)
  protected
    FMappedHost: String;
    FMappedPort: Integer;

    //AThread.Connection.Server & AThread.OutboundClient
    FOnOutboundConnect: TIdMappedPortOutboundConnectEvent;
    FOnOutboundData: TIdMappedPortThreadEvent;
    FOnOutboundDisConnect: TIdMappedPortThreadEvent;
    //
    procedure DoConnect(AThread: TIdPeerThread); override;
    function  DoExecute(AThread: TIdPeerThread): boolean; override;
    procedure DoDisconnect(AThread: TIdPeerThread); override; //DoLocalClientDisconnect
    procedure DoLocalClientConnect(AThread: TIdMappedPortThread); virtual;
    procedure DoLocalClientData(AThread: TIdMappedPortThread); virtual;//APR: bServer

    procedure DoOutboundClientConnect(AThread: TIdMappedPortThread; const AException: Exception=NIL); virtual;
    procedure DoOutboundClientData(AThread: TIdMappedPortThread); virtual;
    procedure DoOutboundDisconnect(AThread: TIdMappedPortThread); virtual;

    function  GetOnConnect: TIdMappedPortThreadEvent;
    function  GetOnExecute: TIdMappedPortThreadEvent;
    procedure SetOnConnect(const Value: TIdMappedPortThreadEvent);
    procedure SetOnExecute(const Value: TIdMappedPortThreadEvent);
    function  GetOnDisconnect: TIdMappedPortThreadEvent;
    procedure SetOnDisconnect(const Value: TIdMappedPortThreadEvent);
    // try to hide
    property  OnBeforeCommandHandler;// NOT USED
    property  OnAfterCommandHandler;// NOT USED
    property  OnNoCommandHandler;// NOT USED
  public
    constructor Create(AOwner: TComponent); override;
  published
    property  MappedHost: String read FMappedHost write FMappedHost;
    property  MappedPort: Integer read FMappedPort write FMappedPort;
    //
    property  OnConnect: TIdMappedPortThreadEvent read GetOnConnect write SetOnConnect; //OnLocalClientConnect
    property  OnOutboundConnect: TIdMappedPortOutboundConnectEvent read FOnOutboundConnect write FOnOutboundConnect;

    property  OnExecute: TIdMappedPortThreadEvent read GetOnExecute write SetOnExecute;//OnLocalClientData
    property  OnOutboundData: TIdMappedPortThreadEvent read FOnOutboundData write FOnOutboundData;

    property  OnDisconnect: TIdMappedPortThreadEvent read GetOnDisconnect write SetOnDisconnect;//OnLocalClientDisconnect
    property  OnOutboundDisconnect: TIdMappedPortThreadEvent read FOnOutboundDisconnect write FOnOutboundDisconnect;
  End;//TIdMappedPortTCP

  //=============================================================================
  // * Telnet *
  //=============================================================================

  TIdMappedTelnetThread = class (TIdMappedPortThread)
  protected
    FAllowedConnectAttempts: Integer;
    //
    procedure OutboundConnect; override;
  public
    property  AllowedConnectAttempts: Integer read FAllowedConnectAttempts;
  End;//TIdMappedTelnetThread

  TIdMappedTelnetCheckHostPort = procedure (AThread: TIdMappedPortThread; const AHostPort: String; var VHost,VPort: String) of object;

  TIdCustomMappedTelnet = class (TIdMappedPortTCP)
  protected
    FAllowedConnectAttempts: Integer;
    FOnCheckHostPort: TIdMappedTelnetCheckHostPort;

    procedure DoCheckHostPort (AThread: TIdMappedPortThread; const AHostPort: String; var VHost,VPort: String); virtual;
    procedure SetAllowedConnectAttempts(const Value: Integer);
    procedure ExtractHostAndPortFromLine(AThread: TIdMappedPortThread; const AHostPort: String);
  public
    constructor Create(AOwner: TComponent); override;
    //
    property  AllowedConnectAttempts: Integer read FAllowedConnectAttempts write SetAllowedConnectAttempts default -1;
    //
    property  OnCheckHostPort: TIdMappedTelnetCheckHostPort read FOnCheckHostPort write FOnCheckHostPort;
  published
    property  DefaultPort default IdPORT_TELNET;
    property  MappedPort default IdPORT_TELNET;
  End;//TIdCustomMappedTelnet

  TIdMappedTelnet = class (TIdCustomMappedTelnet)
  published
    property  AllowedConnectAttempts: Integer read FAllowedConnectAttempts write SetAllowedConnectAttempts default -1;
    //
    property  OnCheckHostPort: TIdMappedTelnetCheckHostPort read FOnCheckHostPort write FOnCheckHostPort;
  End;//TIdMappedTelnet

  //=============================================================================
  // * P O P 3 *
  // USER username#host:port
  //=============================================================================

  TIdMappedPop3Thread = class (TIdMappedTelnetThread)
  protected
    procedure OutboundConnect; override;
  public
  End;//TIdMappedPop3Thread

  TIdMappedPop3 = class (TIdMappedTelnet)
  protected
    FUserHostDelimiter: String;
  public
    constructor Create(AOwner: TComponent); override;
  published
    property  DefaultPort default IdPORT_POP3;
    property  MappedPort default IdPORT_POP3;
    property  UserHostDelimiter: String read FUserHostDelimiter write FUserHostDelimiter;
  End;//TIdMappedPop3

Implementation

uses
  IdStack, IdIOHandlerSocket, IdException, IdResourceStrings, IdTCPClient;

resourcestring
  RSEmptyHost = 'Host is empty';    {Do not Localize}
  RSPop3ProxyGreeting = 'POP3 proxy ready';    {Do not Localize}
  RSPop3UnknownCommand = 'command must be either USER or QUIT';    {Do not Localize}
  RSPop3QuitMsg = 'POP3 proxy signing off';    {Do not Localize}

constructor TIdMappedPortTCP.Create(AOwner: TComponent);
Begin
  inherited Create(AOwner);
  ThreadClass := TIdMappedPortThread;
End;//

procedure TIdMappedPortTCP.DoLocalClientConnect(AThread: TIdMappedPortThread);
Begin
  if Assigned(FOnConnect) then FOnConnect(AThread);
End;//

procedure TIdMappedPortTCP.DoOutboundClientConnect(AThread: TIdMappedPortThread; const AException: Exception=NIL);
Begin
  if Assigned(FOnOutboundConnect) then FOnOutboundConnect(AThread,AException);
End;//

procedure TIdMappedPortTCP.DoLocalClientData(AThread: TIdMappedPortThread);
Begin
  if Assigned(FOnExecute) then FOnExecute(AThread);
End;//

procedure TIdMappedPortTCP.DoOutboundClientData(AThread: TIdMappedPortThread);
Begin
  if Assigned(FOnOutboundData) then FOnOutboundData(AThread);
End;//

procedure TIdMappedPortTCP.DoDisconnect(AThread: TIdPeerThread);
Begin
  inherited DoDisconnect(AThread);
  if Assigned(TIdMappedPortThread(AThread).FOutboundClient) and
    TIdMappedPortThread(AThread).FOutboundClient.Connected
  then begin//check for loop
    TIdMappedPortThread(AThread).FOutboundClient.Disconnect;
  end;
End;//DoDisconnect

procedure TIdMappedPortTCP.DoOutboundDisconnect(AThread: TIdMappedPortThread);
Begin
  if Assigned(FOnOutboundDisconnect) then begin
    FOnOutboundDisconnect(AThread);
  end;
  AThread.Connection.Disconnect; //disconnect local
End;//


procedure TIdMappedPortTCP.DoConnect(AThread: TIdPeerThread);
begin
  //WARNING: Check TIdTCPServer.DoConnect and synchronize code. Don't call inherited!=> OnConnect in OutboundConnect    {Do not Localize}
  AThread.Connection.WriteRFCReply(Greeting); //was: inherited DoConnect(AThread);
  TIdMappedPortThread(AThread).OutboundConnect;
End;

function TIdMappedPortTCP.DoExecute(AThread: TIdPeerThread): boolean;
var
  LConnectionHandle: TObject;
  LOutBoundHandle: TObject;
begin
  Result:= TRUE;
  try
    LConnectionHandle:= TObject(
      (AThread.Connection.IOHandler as TIdIOHandlerSocket).Binding.Handle);
    LOutBoundHandle:= TObject(
      (TIdMappedPortThread(AThread).FOutboundClient.IOHandler as TIdIOHandlerSocket).Binding.Handle);
    with TIdMappedPortThread(AThread).FReadList do begin
      Clear;
      Add(LConnectionHandle);
      Add(LOutBoundHandle);

      if GStack.WSSelect(TIdMappedPortThread(AThread).FReadList, nil, nil, IdTimeoutInfinite) > 0 then begin
        //TODO: Make a select list that also has a function to check of handles
        if IndexOf(LConnectionHandle) > -1 then begin
          // TODO: WSAECONNRESET (Exception [EIdSocketError] Socket Error # 10054 Connection reset by peer)
          TIdMappedPortThread(AThread).FNetData := AThread.Connection.CurrentReadBuffer;
          if Length(TIdMappedPortThread(AThread).FNetData)>0 then begin
            DoLocalClientData(TIdMappedPortThread(AThread));//bServer
            TIdMappedPortThread(AThread).FOutboundClient.Write(TIdMappedPortThread(AThread).FNetData);
          end;//if
        end;
        if IndexOf(LOutBoundHandle) > -1 then begin
          TIdMappedPortThread(AThread).FNetData := TIdMappedPortThread(AThread).FOutboundClient.CurrentReadBuffer;
          if Length(TIdMappedPortThread(AThread).FNetData)>0 then begin
            DoOutboundClientData(TIdMappedPortThread(AThread));
            AThread.Connection.Write(TIdMappedPortThread(AThread).FNetData);
          end;//if
        end;
      end;//if select
    end;//with
  finally
    if NOT TIdMappedPortThread(AThread).FOutboundClient.Connected then begin
      DoOutboundDisconnect(TIdMappedPortThread(AThread)); //&Connection.Disconnect

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美一区二区三区视频免费| 国产成人综合亚洲网站| 国产精品乱人伦中文| 精品少妇一区二区三区在线播放 | 日韩激情一二三区| 亚洲精品伦理在线| 亚洲少妇最新在线视频| 成人免费一区二区三区视频| 欧美激情一区在线| 国产精品视频一二三| 国产精品麻豆一区二区| 成人免费在线观看入口| 亚洲精品亚洲人成人网在线播放| 亚洲日本va在线观看| 亚洲自拍偷拍网站| 日本一道高清亚洲日美韩| 蜜臀av性久久久久蜜臀av麻豆 | 日韩欧美在线123| 欧美白人最猛性xxxxx69交| 欧美xxx久久| 久久久久国产精品厨房| 国产精品国产自产拍高清av王其 | 精品国产乱码久久久久久影片| 91精品麻豆日日躁夜夜躁| 精品少妇一区二区三区免费观看 | 欧美中文字幕一区二区三区亚洲| 91国偷自产一区二区三区观看| 欧美日韩精品一区二区在线播放| 欧美一级精品在线| 中文字幕不卡在线| 亚洲二区视频在线| 国产精品99久久久| 在线视频你懂得一区| 日韩欧美国产综合在线一区二区三区 | 久久夜色精品一区| 欧美激情一区在线观看| 亚洲成人免费在线| 国产一区二区精品久久99| 色一情一乱一乱一91av| 日韩一级片在线观看| 国产精品嫩草影院av蜜臀| 亚洲123区在线观看| 国产精品91xxx| 欧美疯狂性受xxxxx喷水图片| 国产视频911| 午夜国产精品一区| av成人老司机| 日韩精品影音先锋| 亚洲午夜精品网| 成年人国产精品| 日韩精品一区二区三区老鸭窝| 亚洲少妇30p| 激情六月婷婷综合| 欧美亚洲精品一区| 中文字幕一区二区三中文字幕| 蜜臀精品一区二区三区在线观看| 色哟哟精品一区| 国产精品狼人久久影院观看方式| 日本免费新一区视频| 在线观看一区二区视频| 中文字幕高清不卡| 国产一区二区调教| 日韩欧美亚洲一区二区| 亚洲777理论| 欧美日韩一区二区三区四区| 亚洲欧洲日韩综合一区二区| 国产精品一区二区久久精品爱涩| 欧美日韩在线观看一区二区 | 亚洲裸体在线观看| 成人久久18免费网站麻豆| 精品国产在天天线2019| 日韩高清欧美激情| 久久久精品影视| 毛片av一区二区三区| 91精品在线免费| 婷婷丁香激情综合| 欧美性受xxxx黑人xyx| 亚洲一区影音先锋| 欧洲视频一区二区| 亚洲第一福利一区| 日韩一级大片在线观看| 日本午夜一本久久久综合| 3atv在线一区二区三区| 日韩电影在线一区| 日韩一级片在线播放| 激情综合网激情| 国产色爱av资源综合区| 成人美女视频在线看| 亚洲精品第一国产综合野| 日本韩国视频一区二区| 亚洲一区二区中文在线| 欧美精品免费视频| 久久99久久久久久久久久久| 久久综合久久鬼色中文字| 国产精品99久久久久| 国产精品人人做人人爽人人添| www.日韩精品| 亚洲成人精品影院| 成人高清在线视频| 日韩欧美二区三区| 成人a区在线观看| 怡红院av一区二区三区| 欧美色网一区二区| 另类小说图片综合网| 国产三级久久久| 精品婷婷伊人一区三区三| 久久99精品久久久| 亚洲欧美在线视频| 91精品婷婷国产综合久久性色| 黑人巨大精品欧美一区| 自拍偷拍亚洲综合| 欧美一级二级三级乱码| 成人黄色在线网站| 丝袜美腿亚洲色图| 中文字幕成人av| 欧美一区二区不卡视频| aaa亚洲精品| 另类小说综合欧美亚洲| 亚洲免费观看高清在线观看| 欧美一级黄色录像| 色综合久久久网| 国产一区二区影院| 日本女优在线视频一区二区| 国产精品伦一区| 久久一二三国产| 欧美放荡的少妇| 色婷婷激情综合| 成人精品视频一区二区三区| 日韩精品成人一区二区三区| 成人欧美一区二区三区视频网页| 日韩欧美一区中文| 欧美日本视频在线| 欧美综合亚洲图片综合区| 国产xxx精品视频大全| 欧美aⅴ一区二区三区视频| 亚洲日本va午夜在线电影| 久久精品日产第一区二区三区高清版 | 国产欧美一区二区精品婷婷| 欧美福利电影网| 欧美色综合天天久久综合精品| 成人h动漫精品一区二| 国产精品一区二区在线观看不卡 | 国产一级精品在线| 日韩激情一区二区| 亚欧色一区w666天堂| 一区二区三区在线播| 亚洲美女区一区| 亚洲精品欧美在线| 亚洲精品视频在线观看免费| 国产精品久久久久久久久免费桃花 | 在线不卡中文字幕播放| 欧美性猛交xxxx黑人交| 日本韩国欧美在线| 在线亚洲一区二区| 欧洲视频一区二区| 欧美日韩一区不卡| 欧美日韩高清在线| 欧美绝品在线观看成人午夜影视| 在线免费不卡视频| 欧美无人高清视频在线观看| 欧美性三三影院| 日韩一区二区三区视频在线| 69精品人人人人| 欧美videofree性高清杂交| 精品国产自在久精品国产| 久久婷婷成人综合色| 欧美极品少妇xxxxⅹ高跟鞋 | 色老头久久综合| 欧美视频在线播放| 欧美一级一级性生活免费录像| 日韩欧美成人一区| 久久精品亚洲精品国产欧美 | 日韩在线卡一卡二| 麻豆久久一区二区| 国产99久久久国产精品| 99久久精品免费| 欧美年轻男男videosbes| 欧美电视剧在线看免费| 国产区在线观看成人精品| 亚洲女与黑人做爰| 日韩高清不卡一区二区三区| 国产精品一卡二| 91小视频免费看| 日韩一区二区三区电影| 欧美国产精品一区| 亚洲男人电影天堂| 美脚の诱脚舐め脚责91 | 久久99精品久久久| 99riav久久精品riav| 欧美日韩一区二区在线观看视频| 欧美大胆人体bbbb| 亚洲图片激情小说| 久久精品国产亚洲aⅴ| 99国产精品久久久| 日韩写真欧美这视频| 日韩码欧中文字| 国产精品自拍毛片| 欧美一区二区三区四区高清| 国产精品久久久一本精品| 日本不卡不码高清免费观看|