Moved client and server from header.
Fixed so user are able to start a server and client on the same computer. Starting 2 servers on the same computer will probably still crash the newest server (Don't do it).
This commit is contained in:
@@ -36,8 +36,6 @@ private:
|
|||||||
RenderQueueFactory* m_RenderQueueFactory;
|
RenderQueueFactory* m_RenderQueueFactory;
|
||||||
// Network variables
|
// Network variables
|
||||||
boost::thread m_NetworkThread;
|
boost::thread m_NetworkThread;
|
||||||
Server m_Server;
|
|
||||||
Client m_Client;
|
|
||||||
// Network methods
|
// Network methods
|
||||||
void NetworkFunction();
|
void NetworkFunction();
|
||||||
// Network events
|
// Network events
|
||||||
|
|||||||
@@ -206,11 +206,20 @@ void Client::ParseSnapshot(char* data, size_t length)
|
|||||||
|
|
||||||
int Client::Receive(char* data, size_t length)
|
int Client::Receive(char* data, size_t length)
|
||||||
{
|
{
|
||||||
int bytesReceived = m_Socket.receive_from(boost
|
|
||||||
::asio::buffer((void*)data, length),
|
try {
|
||||||
m_ReceiverEndpoint,
|
int bytesReceived = m_Socket.receive_from(boost
|
||||||
0);
|
::asio::buffer((void*)data, length),
|
||||||
return bytesReceived;
|
m_ReceiverEndpoint,
|
||||||
|
0);
|
||||||
|
return bytesReceived;
|
||||||
|
} catch (const std::exception& err) {
|
||||||
|
// To not spam "socket closed messages"
|
||||||
|
//if (std::string(err.what()).find("forcefully closed") != std::string::npos) {
|
||||||
|
std::cout << "Read from client crashed: " << err.what();
|
||||||
|
//}
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
int Client::CreateMessage(MessageType type, std::string message, char* data)
|
int Client::CreateMessage(MessageType type, std::string message, char* data)
|
||||||
|
|||||||
+4
-2
@@ -48,8 +48,8 @@ Game::Game(int argc, char* argv[])
|
|||||||
Game::~Game()
|
Game::~Game()
|
||||||
{
|
{
|
||||||
// Call before to ensure that thread closes correctly.
|
// Call before to ensure that thread closes correctly.
|
||||||
m_Client.Close();
|
//m_Client.Close();
|
||||||
m_Server.Close();
|
//m_Server.Close();
|
||||||
|
|
||||||
delete m_FrameStack;
|
delete m_FrameStack;
|
||||||
delete m_EventBroker;
|
delete m_EventBroker;
|
||||||
@@ -84,9 +84,11 @@ void Game::NetworkFunction()
|
|||||||
std::cout << "Start client or server? (c/s)" << std::endl;
|
std::cout << "Start client or server? (c/s)" << std::endl;
|
||||||
std::cin >> inputMessage;
|
std::cin >> inputMessage;
|
||||||
if (inputMessage == "c" || inputMessage == "C") {
|
if (inputMessage == "c" || inputMessage == "C") {
|
||||||
|
Client m_Client;
|
||||||
m_Client.Start(m_World, m_EventBroker);
|
m_Client.Start(m_World, m_EventBroker);
|
||||||
}
|
}
|
||||||
if (inputMessage == "s" || inputMessage == "S") {
|
if (inputMessage == "s" || inputMessage == "S") {
|
||||||
|
Server m_Server;
|
||||||
m_Server.Start(m_World);
|
m_Server.Start(m_World);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user