Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up

ASIO Cooperative Task for await-based coroutine

NotificationsYou must be signed in to change notification settings

jamboree/act

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

27 Commits
 
 
 
 

Repository files navigation

ASIO Cooperative Task

Requirements

  • Compiler that implementsN4286
  • Or emulation library likeCO2

Dependencies

Example

async echo server

task<void>session(asio::ip::tcp::socket sock){try    {char buf[1024];        std::cout <<"connected:" << sock.remote_endpoint() << std::endl;for ( ; ; )        {            act::error_code ec;auto len =co_awaitact::read_some(sock,asio::buffer(buf), ec);if (ec == asio::error::eof)co_return;co_awaitact::write(sock,asio::buffer(buf, len));        }    }catch (std::exception& e)    {        std::cout <<"error:" << sock.remote_endpoint() <<":" << e.what() << std::endl;    }}task<void>server(asio::io_service& io,unsignedshort port){    asio::ip::tcp::endpoint endpoint{asio::ip::tcp::v4(), port};    asio::ip::tcp::acceptor acceptor{io, endpoint};    asio::ip::tcp::socket sock{io};    std::cout <<"server running at:" << endpoint << std::endl;for ( ; ; )    {co_awaitact::accept(acceptor, sock);session(std::move(sock));    }}intmain(int argc,char *argv[]){    asio::io_service io;server(io,std::atoi(argv[1]));    io.run();return EXIT_SUCCESS;}

License

Copyright (c) 2015-2018 JamboreeDistributed under the Boost Software License, Version 1.0. (See accompanyingfile LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

About

ASIO Cooperative Task for await-based coroutine

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages


[8]ページ先頭

©2009-2025 Movatter.jp