93 lines
2.1 KiB
C++
93 lines
2.1 KiB
C++
#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();
|
|
}
|
|
|
|
//***********************************************************************************************
|