GameServer.cpp 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. #include "server/GameServer.h"
  2. #include "server/network/Server.h"
  3. GameServer::GameServer()
  4. {
  5. }
  6. GameServer::~GameServer()
  7. {
  8. }
  9. void GameServer::stop()
  10. {
  11. isRunning = false;
  12. }
  13. void GameServer::start(unsigned short port, unsigned short maxClients)
  14. {
  15. std::cout << port << std::endl;
  16. Server server(port, maxClients);
  17. server.start(this);
  18. isRunning = true;
  19. while(isRunning)
  20. {
  21. cout << "> ";
  22. string command;
  23. getline(cin, command, '\n');
  24. if(command == "q")
  25. {
  26. break;
  27. }
  28. commandManager.execute(*this, *this, command);
  29. }
  30. server.stop();
  31. }
  32. void GameServer::onFullServerClientConnect(int socket)
  33. {
  34. string s = "sorry, the server is full";
  35. Stream answer;
  36. answer.write(s.data(), s.length());
  37. answer.sendToSocket(socket);
  38. }
  39. void GameServer::onClientConnect(int socket)
  40. {
  41. cout << socket << " has connected" << endl;
  42. string s = "Welcome to the server.";
  43. Stream answer;
  44. answer.write(s.data(), s.length());
  45. answer.sendToSocket(socket);
  46. }
  47. void GameServer::onClientPackage(int socket, Stream& in)
  48. {
  49. string s = "";
  50. while(in.hasData())
  51. {
  52. s = in.readChar() + s;
  53. }
  54. Stream answer;
  55. answer.write(s.data(), s.length());
  56. answer.sendToSocket(socket);
  57. }
  58. void GameServer::onClientDisconnect(int socket)
  59. {
  60. cout << socket << " has disconnected" << endl;
  61. string s = "Bye.";
  62. Stream answer;
  63. answer.write(s.data(), s.length());
  64. answer.sendToSocket(socket);
  65. }
  66. bool GameServer::isServer() const
  67. {
  68. return true;
  69. }