Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void EchoServer::HandleClient(std::shared_ptr<tinyfiber::tcp::Socket> socket_ptr) {
- static const size_t kBufSize = 1237;
- char buf[kBufSize];
- std::cout << "Ready to read (server)" << std::endl;
- size_t bytes_read = socket_ptr->ReadSome(asio::buffer(buf, kBufSize));
- std::cout << "bytes_ read = " << bytes_read << std::endl;
- socket_ptr->Write(asio::buffer(buf)).ExpectOk();
- SpawnHandler(socket_ptr);
- }
- void EchoServer::SpawnHandler(std::shared_ptr<tinyfiber::tcp::Socket> socket_ptr) {
- auto handler_client = [this, socket_ptr]() {
- this->HandleClient(socket_ptr);
- };
- tinyfiber::Spawn(handler_client);
- }
- void EchoServer::ServeForever() {
- while (true) {
- tinyfiber::tcp::Socket socket = acceptor_.Accept();
- std::cout << "Accepted" << std::endl;
- std::shared_ptr<tinyfiber::tcp::Socket> socket_ptr =
- std::make_shared<tinyfiber::tcp::Socket>(std::move(socket));
- SpawnHandler(socket_ptr);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement