GameServer.cpp 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  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. s = in.readChar('_') + s;
  48. }
  49. Stream answer;
  50. answer.write(s.data(), s.length());
  51. answer.sendToSocket(socket);
  52. }
  53. void GameServer::onClientDisconnect(int socket) const
  54. {
  55. std::cout << socket << " has disconnected" << std::endl;
  56. Stream answer;
  57. answer.write("Bye.");
  58. answer.sendToSocket(socket);
  59. }
  60. bool GameServer::isServer() const
  61. {
  62. return true;
  63. }