_uc_tektek_thread.pas

unit _uc_tektek_thread;

interface

uses
     Windows,SysUtils,Classes,ScktComp,ComCtrls;

type
  TTekTekTHREAD = class(TThread)
  private
   FCCC       :TClientSocket;
   _WinSk     :TWinSocketStream;
   StatError  :Integer;
   _sDataZund : string;
   _sDataRESPONSE :String;
   procedure Shawa_connecting;
   procedure OnTekTerminated(Sender: TObject);

  protected
    procedure Execute; override;

  public


    _tek_Domain : string;
    _tek_port   : integer;
    _tek_full_http_link_stok : string;
    _tek_com_path_plus_Tik_File : string;

    _tek_access_password : string;

    _ZunderStartBoxITEM:TListItem;
    constructor Create;
    destructor Destroy; override;
  end;

implementation

  uses unit1,_uc_refs_vars,_uc_funcs,_uc_refs_consts,_uc_ip_codecs,_uc_tek_builder_func;

{ TTekTekTHREAD }

//------------------------------------------------------------------------------
//------------------------------------------------------------------------------
//------------------------------------------------------------------------------
constructor TTekTekTHREAD.Create;
begin

inherited Create(True); // Intially suspended
FreeOnTerminate := True;
OnTerminate     := OnTekTerminated;
FCCC            := TClientSocket.Create(nil);
FCCC.ClientType := ctBlocking;

end;

//------------------------------------------------------------------------------
destructor TTekTekTHREAD.Destroy;
begin
  FCCC.Free;
  inherited;
end;


//------------------------------------------------------------------------------
procedure TTekTekTHREAD.Shawa_connecting;
begin
//_FXOC_MAIN.TheLOGGER.Log('Starting ... : '+_tek_Domain);
end;

//------------------------------------------------------------------------------
procedure TTekTekTHREAD.OnTekTerminated(Sender: TObject);
begin

if (_FXOC_MAIN.izDebugerON.Checked)
then _FXOC_MAIN.TheLOGGER.Log('data:'+_tek_Domain+ret+_sDataRESPONSE+ret+sep+ret+_sDataZund+ret+sep);


TStartingComBUILDER._goBuilderComTekData(_sDataRESPONSE,
                                         _tek_full_http_link_stok,
                                         _tek_Domain,
                                         _tek_com_path_plus_Tik_File,
                                         _tek_port,
                                         _ZunderStartBoxITEM);
end;

//------------------------------------------------------------------------------
procedure TTekTekTHREAD.Execute;
var
_RcvL:integer;
_pBuf: PChar;
aa : string;
begin

StatError:=0;
_RcvL:=0;
_sDataRESPONSE:='';

try


aa:='p='+_tek_access_password+'&e=_T1&v='+_VV_LOCAL_USER_PC_ID;
if (_VV_LOCAL_CONFIG_ROUTER_IS_ON) then aa:=aa+'&n=1'  // NAT-Active
else aa:=aa+'&c='+TIpCodecs.encry(TIpCodecs.ip_to_int(_VV_LOCAL_USER_IP_MASTER));  // NORMAL
// this will BOYA dend ipwhatver it is = good or lan



_sDataZund:='GET '+_tek_com_path_plus_Tik_File+'?'+aa+' HTTP/1.0'+ret+
            'User-Agent: '+_C_EXOSEE_WEB_TEK_USER_MERDA+ret+
            'Host: '+_tek_Domain+ret+
            'Connection: Close'+ret+  //
            ret;



           


            Synchronize(Shawa_connecting);
            FCCC.Host_name := _tek_Domain;
            FCCC.Port      := _tek_port;
            FCCC.Active    := True;
           

            if FCCC.Socket.Connected then
            begin
            //Synchronize(Shawa_connected);

                _WinSk := TWinSocketStream.Create(FCCC.Socket, 10000);
                try ////----------------t2

                _WinSk.Write(_sDataZund[1],length(_sDataZund));


                      GetMem(_pBuf, _C_EXOSEE_WEB_TEK_BUFFER_SIZE);
                      try

                          while (not Terminated)and(FCCC.Socket.Connected) do
                          begin

                             if _WinSk.WaitForData(10000) then
                             begin
                             _RcvL:=_WinSk.Read(_pBuf^,_C_EXOSEE_WEB_TEK_BUFFER_SIZE);
                             _sDataRESPONSE:=_sDataRESPONSE+ copy(_pBuf,1,_RcvL);
                             end; // 5 sec data on

                          if _RcvL=0 then break;

                          end; // end Loop ---------------------------------------------------------------



                      finally FreeMem(_pBuf); end; //------------4




                finally
                FCCC.Socket.Close;
                _WinSk.Free;
                end; //----------------t2

            end
            else
            StatError:=1; //error_connection);



except  end;  // avoid errors

end;

end.





../delphi71code/exosee-code-source/uc_tektek_thread-pas..