server_main.cpp 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. #include <iostream>
  2. #include <string>
  3. #include <boost/bind.hpp>
  4. #include <boost/asio.hpp>
  5. #include "../global.h"
  6. #include "../lib/Connection.h"
  7. std::string NAME = NAME_VER + std::string(" (server)");
  8. using boost::asio::ip::tcp;
  9. using namespace boost;
  10. using namespace boost::asio;
  11. using namespace boost::asio::ip;
  12. class CVCMIServer
  13. {
  14. tcp::acceptor acceptor;
  15. std::vector<CConnection*> connections;
  16. public:
  17. CVCMIServer(io_service& io_service)
  18. : acceptor(io_service, tcp::endpoint(tcp::v4(), 3030))
  19. {
  20. start_accept();
  21. }
  22. private:
  23. void start_accept()
  24. {
  25. boost::system::error_code error;
  26. std::cout<<"Listening for connections at port " << acceptor.local_endpoint().port() << std::endl;
  27. tcp::socket s(acceptor.io_service());
  28. acceptor.accept(s,error);
  29. if (!error)
  30. {
  31. CConnection *connection = new CConnection(&s,&s.io_service(),NAME,std::cout);
  32. std::cout<<"Got connection!" << std::endl;
  33. }
  34. else
  35. {
  36. std::cout<<"Got connection but there is an error " << std::endl;
  37. }
  38. //asio::write(s,asio::buffer("570"));
  39. //new_connection->witaj();
  40. //acceptor.async_accept(s,
  41. // boost::bind(&CVCMIServer::gotConnection, this, &s,
  42. // placeholders::error));
  43. }
  44. void gotConnection(tcp::socket *s,const boost::system::error_code& error)
  45. {
  46. }
  47. };
  48. int main()
  49. {
  50. try
  51. {
  52. io_service io_service;
  53. CVCMIServer server(io_service);
  54. io_service.run();
  55. }
  56. catch (std::exception& e)
  57. {
  58. std::cerr << e.what() << std::endl;
  59. }
  60. return 0;
  61. }