diff --git a/Code/Network/NetworkDependencies/Connection.cpp b/Code/Network/NetworkDependencies/Connection.cpp index 08700b8c..26db50f8 100644 --- a/Code/Network/NetworkDependencies/Connection.cpp +++ b/Code/Network/NetworkDependencies/Connection.cpp @@ -12,14 +12,6 @@ Connection::~Connection() bool Connection::Connect(unsigned short port , const char serverName[]) { - this->socket = ::socket(AF_INET, SOCK_STREAM, 0); - if(this->socket == SOCKET_ERROR) - { - //error opening socket - return false; - } - - struct hostent *hostEnt; if((hostEnt = gethostbyname(serverName)) == NULL) { @@ -32,19 +24,10 @@ bool Connection::Connect(unsigned short port , const char serverName[]) server.sin_port = htons(port); server.sin_addr.s_addr = *(unsigned long*) hostEnt->h_addr; - while(1) + if(connect(this->socket, (sockaddr*)&server, sizeof(server)) == SOCKET_ERROR) { - if(connect(this->socket, (sockaddr*)&server, sizeof(server)) == SOCKET_ERROR) - { - //Error connecting to server - return false; - } - - else - { - break; - } - Sleep(10); + //Error connecting to server + return false; } //connection succesfull! @@ -77,11 +60,23 @@ bool Connection::InitiateServer(unsigned short port) { //"Listen failed! closesocket(this->socket); - return -1; + return false; } //Server started! - return this->socket; + return true; +} + +bool Connection::InitiateClient() +{ + this->socket = ::socket(AF_INET, SOCK_STREAM, 0); + if(this->socket == SOCKET_ERROR) + { + //error opening socket + return false; + } + + return true; } void Connection::Disconnect() diff --git a/Code/Network/NetworkDependencies/Connection.h b/Code/Network/NetworkDependencies/Connection.h index 34fd7ff4..6c679371 100644 --- a/Code/Network/NetworkDependencies/Connection.h +++ b/Code/Network/NetworkDependencies/Connection.h @@ -19,15 +19,14 @@ namespace Oyster Connection(int socket) { this->socket = socket; }; virtual ~Connection(); - virtual bool Connect( unsigned short port , const char serverName[] ); virtual bool InitiateServer( unsigned short port ); - //virutal bool initiateClient(); - - virtual void Disconnect(); + virtual bool InitiateClient(); virtual bool Send(const unsigned char message[]); virtual int Recieve(unsigned char message[]); + virtual void Disconnect(); + virtual bool Connect( unsigned short port , const char serverName[] ); virtual int Listen(); private: diff --git a/Code/Network/NetworkDependencies/IConnection.h b/Code/Network/NetworkDependencies/IConnection.h index 8b934a20..51b7631d 100644 --- a/Code/Network/NetworkDependencies/IConnection.h +++ b/Code/Network/NetworkDependencies/IConnection.h @@ -17,7 +17,7 @@ namespace Oyster virtual bool Send( const unsigned char message[] ) = 0; virtual int Recieve(unsigned char message[]) = 0; virtual bool InitiateServer( unsigned short port ) { return false; }; - virtual bool initiateClient( unsigned short port ) { return false; }; + virtual bool InitiateClient() { return false; }; virtual int Listen() { return -1; }; virtual bool Connect( unsigned short port, const char serverName[] ) { return false; }; }; diff --git a/Code/Network/OysterNetworkClient/Client.cpp b/Code/Network/OysterNetworkClient/Client.cpp index d77b1bf7..abe36d71 100644 --- a/Code/Network/OysterNetworkClient/Client.cpp +++ b/Code/Network/OysterNetworkClient/Client.cpp @@ -15,6 +15,7 @@ Client::~Client() bool Client::Connect(unsigned int port, char filename[]) { + connection->InitiateClient(); connection->Connect(port, filename); return true;