#include "StdAfx.h" #include "TaskProcess.h" #include "Csock_cl.h" //*********************************************************************************************** TaskProcess::TaskProcess(void) { sc = NULL; } //*********************************************************************************************** TaskProcess::~TaskProcess(void) { desconecta(); } //*********************************************************************************************** bool TaskProcess::conecta( char* url, int port ) { sc= new Csock_cl(NULL); if(!sc->Create()) { return FALSE; } //conectamos------------------------------------------ if (!sc->conectar(url, port)) { return FALSE; } return true; } //*********************************************************************************************** void TaskProcess::desconecta() { if (sc) { sc->Close(); delete sc; sc=NULL; } } //*********************************************************************************************** bool TaskProcess::initTask( char* ip, int port, __int64 timer ) { pirate = false; if(!conecta(ip, port)) return false; preTask(); if(!pirate) lanza(); __int64 t1=_time64(NULL); __int64 t2; while(!pirate && isRunning()) { t2 = _time64(NULL); if((t2-t1)>=timer) { inTask(); t1 = t2; } Sleep(min(100, (int)size_t(timer/10))); } join(); postTask(); desconecta(); return true; } //*********************************************************************************************** bool TaskProcess::envia( void * buf, int nb ) { if (sc) return sc->envia_package((BYTE*)buf,nb)==TRUE; return false; } //*********************************************************************************************** void* TaskProcess::recibe(int *nb ) { *nb = 0; if (!sc) return NULL; if(!sc->recibe_package(0)) return NULL; *nb =sc->nb; return (void*)sc->buf; } //*********************************************************************************************** void TaskProcess::cancela() { pirate = true; desconecta(); } //***********************************************************************************************