Files
itgmania212121/stepmania/src/NetworkManager.cpp
T

103 lines
2.2 KiB
C++
Raw Normal View History

2003-09-09 10:21:06 +00:00
#include "global.h"
/*
-----------------------------------------------------------------------------
Class: NetworkManager
Desc: See Header.
Copyright (c) 2001-2003 by the person(s) listed below. All rights reserved.
Kevin Slaughter
-----------------------------------------------------------------------------
*/
#include "GameState.h"
#include "NetworkManager.h"
#include "RageLog.h"
2003-09-11 09:14:07 +00:00
#include "RageException.h"
2003-09-09 10:21:06 +00:00
#include "SongManager.h"
NetworkManager* NETWORKMAN = NULL;
NetworkManager::NetworkManager()
{
LOG->Trace("NetworkManager::NetworkManager");
if( SDLNet_Init()==-1 )
throw;
}
NetworkManager::~NetworkManager()
{
LOG->Trace("NetworkManager::~NetworkManager");
SDLNet_Quit();
}
bool NetworkManager::Connect()
{
LOG->Trace("NetworkManager::Connect()");
2003-09-11 09:14:07 +00:00
RageException* Bitcher;
2003-09-09 10:21:06 +00:00
IPaddress ip;
TCPsocket tcpsock;
2003-09-11 09:14:07 +00:00
SDLNet_SocketSet socketset;
/* Allocate the socket set for polling the network */
socketset = SDLNet_AllocSocketSet(2);
if ( socketset == NULL )
Bitcher->Throw("Couldn't create socket set: %s\n",SDLNet_GetError());
SDLNet_TCP_AddSocket(socketset, tcpsock);
2003-09-09 10:21:06 +00:00
2003-09-11 09:14:07 +00:00
if(SDLNet_ResolveHost(&ip,"127.0.0.1",6288)) // Establish a connection.
{
2003-09-09 10:21:06 +00:00
LOG->Trace("SDLNet_ResolveHost: %s\n", SDLNet_GetError());
2003-09-11 09:14:07 +00:00
Bitcher->Throw("SDLNet_ResolveHost() FAILED. --> %s", SDLNet_GetError());
throw;
}
2003-09-09 10:21:06 +00:00
2003-09-11 09:14:07 +00:00
tcpsock=SDLNet_UDP_Open(&ip);
2003-09-09 10:21:06 +00:00
if(!tcpsock) // Make sure we opened a valid connection.
2003-09-11 09:14:07 +00:00
Bitcher->Throw("NetworkManager::SDLNet_TCP_Open: %s\n", SDLNet_GetError());
2003-09-09 10:21:06 +00:00
// Test send & recv data //
Uint8 data[512];
char* test[1+1+256];
// int pos
int len;
// int used;
/* Has the connection been lost with the server? */
test[3] = "$";
SDLNet_TCP_Send(tcpsock, test, 4);
LOG->Trace("\n\n\nDATA BEING SENT..");
len = SDLNet_TCP_Recv(tcpsock, (char *)data, 512);
LOG->Trace("\n\n\nDATA RECEIVED!!!");
/* if ( len <= 0 ) {
//SDLNet_TCP_DelSocket(socketset, tcpsock);
SDLNet_TCP_Close(tcpsock);
tcpsock = NULL;
LOG->Trace("NetworkManager:: Connection lost!\n");
}
else
{
pos = 0;
while ( len > 0 )
{
used = 1;
pos += used;
len -= used;
if ( used == 0 )
{
// We might lose data here.. oh well,
// we got a corrupt packet from server
len = 0;
}
}
}
*/
return true;
2003-09-09 20:24:28 +00:00
}