GameServer.cpp 1.5 KB

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