1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 |
- #include "FactoryClient.h"
- using namespace Network;
- FactoryClient::FactoryClient()
- {
- client = 0;
- connected = 0;
- reader = 0;
- }
- FactoryClient::~FactoryClient()
- {
- if( client )
- disconnect();
- }
- bool FactoryClient::connect( Text ip, short port, int accountId, Text secret )
- {
- if( client )
- disconnect();
- client = new SSLKlient();
- if( !client->verbinde( port, ip ) )
- return false;
- connected = 1;
- if( !client->sende( "\1", 1 ) )
- return false;
- if( !client->sende( (char *)&accountId, 4 ) )
- return false;
- unsigned char len = (unsigned char)secret.getLength();
- if( !client->sende( (char *)&len, 1 ) )
- return false;
- if( !client->sende( secret, len ) )
- return false;
- char result = 0;
- if( !client->getNachricht( &result, 1 ) || result != 1 )
- return false;
- reader = new NetworkReader( client );
- return true;
- }
- void FactoryClient::disconnect()
- {
- if( client )
- {
- if( connected )
- client->sende( "\2", 1 );
- delete reader;
- client->trenne();
- client->release();
- client = 0;
- }
- }
- NetworkReader *FactoryClient::getNextMessage()
- {
- if( !client )
- return 0;
- if( !client->hatNachricht( 0 ) )
- return 0;
- char type = 0;
- if( !client->getNachricht( &type, 1 ) )
- return 0;
- if( type == 1 )
- {
- client->trenne();
- client->release();
- client = 0;
- return 0;
- }
- if( !client->hatNachricht( 0 ) )
- return 0;
- return reader;
- }
|