Network - Fixed small errors

This commit is contained in:
Pontus Fransson 2013-12-04 14:58:15 +01:00
parent e81062b875
commit df1594a43b
8 changed files with 47 additions and 12 deletions

View File

@ -116,7 +116,6 @@ int Connection::Recieve(Utility::DynamicMemory::SmartPointer<OysterByte> &bytes)
{
int nBytes;
bytes.Get()->Resize(1000);
bytes->Resize(1000);
nBytes = recv(this->socket, *bytes , 500, 0);
if(nBytes == SOCKET_ERROR)
@ -138,7 +137,7 @@ int Connection::Listen()
int clientSocket;
if((clientSocket = accept(this->socket, NULL, NULL)) == INVALID_SOCKET)
{
return WSAGetLastError();
return INVALID_SOCKET;//WSAGetLastError();
}
return clientSocket;

View File

@ -44,9 +44,12 @@ int Listener::Accept()
SmartPointer<int> clientSocket = SmartPointer<int>(new int());
*clientSocket = connection->Listen();
mutex.LockMutex();
postBox->PostMessage(clientSocket);
mutex.UnlockMutex();
if(*clientSocket != -1)
{
mutex.LockMutex();
postBox->PostMessage(clientSocket);
mutex.UnlockMutex();
}
return clientSocket;
}

View File

@ -16,6 +16,19 @@ OysterByte::OysterByte(int cap)
byteArray = new unsigned char[capacity];
}
OysterByte::OysterByte(const OysterByte& obj)
{
delete[] this->byteArray;
this->byteArray = new unsigned char[obj.capacity];
for(int i = 0; i < obj.size; i++)
{
this->byteArray[i] = obj.byteArray[i];
}
this->size = obj.size;
this->capacity = obj.capacity;
}
OysterByte::~OysterByte()
{
delete[] byteArray;
@ -67,6 +80,21 @@ void OysterByte::SetSize(unsigned int size)
this->size = size;
}
OysterByte& OysterByte::operator =(const OysterByte& obj)
{
delete[] this->byteArray;
this->byteArray = new unsigned char[obj.capacity];
for(int i = 0; i < obj.size; i++)
{
this->byteArray[i] = obj.byteArray[i];
}
this->size = obj.size;
this->capacity = obj.capacity;
return *this;
}
OysterByte::operator char*()
{
return (char*)byteArray;

View File

@ -16,6 +16,7 @@ namespace Oyster
public:
OysterByte();
OysterByte(int cap);
OysterByte(const OysterByte& obj);
virtual ~OysterByte();
void Clear(); //Resets size to 0
@ -28,6 +29,8 @@ namespace Oyster
void SetBytes(unsigned char* bytes);
void SetSize(unsigned int size); //Only sets the private variable 'size'
OysterByte& operator =(const OysterByte& obj);
operator char*();
operator const char*();
operator unsigned char*();

View File

@ -75,7 +75,7 @@ int ThreadedClient::Recv()
{
int errorCode = 0;
SmartPointer<OysterByte> temp = SmartPointer<OysterByte>(new OysterByte());
SmartPointer<OysterByte> temp = new OysterByte();
errorCode = this->connection->Recieve(temp);
if(errorCode == 0)

View File

@ -59,7 +59,7 @@ void chat(ThreadedClient &client)
client.setRecvPostBox(postBox);
SmartPointer<OysterByte> msgRecv = NULL;
SmartPointer<OysterByte> msgRecv = SmartPointer<OysterByte>(new OysterByte());
SmartPointer<OysterByte> msgSend = SmartPointer<OysterByte>(new OysterByte());
ProtocolSet* set = new ProtocolSet;
@ -83,7 +83,6 @@ void chat(ThreadedClient &client)
if(postBox->FetchMessage(msgRecv))
{
t->Unpack(set, msgRecv);
delete msgRecv;
PrintOutMessage(set);
set->Release();

View File

@ -26,7 +26,7 @@ void PrintOutMessage(ProtocolSet* set);
int main()
{
SmartPointer<OysterByte> sendBuffer = SmartPointer<OysterByte>(new OysterByte);
SmartPointer<OysterByte> recvBuffer = NULL;
SmartPointer<OysterByte> recvBuffer = SmartPointer<OysterByte>(new OysterByte());
ProtocolSet* set = new ProtocolSet;
IPostBox<SmartPointer<int>> *postBox = new PostBox<SmartPointer<int>>();
IPostBox<SmartPointer<OysterByte>> *recvPostBox = new PostBox<SmartPointer<OysterByte>>();
@ -91,7 +91,6 @@ int main()
if(recvPostBox->FetchMessage(recvBuffer))
{
t.Unpack(set, recvBuffer);
delete recvBuffer;
PrintOutMessage(set);
set->Release();
@ -100,9 +99,13 @@ int main()
Sleep(1);
}
listener.Shutdown();
Sleep(1000);
system("pause");
for(int i = 0; i < clients.size(); i++)
delete clients.at(i);
delete postBox;
return 0;
}