ESocket::ESocket()
{
connectError = -1;
sock = -1;
bCreated = false;
myPort = 0;
myIps = ETelematikApplication::ourFunctions->mySettings->GetIpVector();
myPort = atoi(ETelematikApplication::ourFunctions->mySettings->GetPort().c_str());
if ( myIps.size() > 0 && myPort > 0 )
if( createSocket() == 0 )
bCreated = true;
}
ESocket::~ESocket() {}
//---------------------------------------------------------------
/**
* create a socket
* @return -1 on error or 0 if no error occured
*/
int ESocket::createSocket()
{
// obtain descriptor for socket ( TCP/IP )
sock = socket ( AF_INET, SOCK_STREAM, 0 );
if (sock == -1)
{
EGeneralMethods::SendMessage ( "Error couldn't initialized socket...\n",ERROR_LOG,".log" );
return -1;
}
// create struct and init
memset ( &addr, 0, sizeof ( addr ) );
addr.sin_family = AF_INET;
addr.sin_port = htons ( myPort );
// connect
#ifdef DEBUG
//printf("wait in socket retrySock %d | socket %d...\n", retrySock,sock);
#endif
// count of ips
for(uint i=0;i<myIps.size();i++)
{
addr.sin_addr.s_addr = inet_addr ( myIps[i].c_str() );
( *ETelematikApplication::ourFunctions->Fncusecsleep ) ( 1,0 );
connectError = connect ( sock, ( sockaddr* ) &addr, sizeof ( addr ) );
if ( connectError == -1 )
{
EGeneralMethods::SendMessage ( "Error couldn't connect to server...\n",ERROR_LOG,".log" );
//retrySock++;
}
else
break;
}
if ( connectError == -1 )
return -1;
return 0;
}