Use C++20 coroutine to have async accept / recv / send operation
Exemple echo server with in the main.cc
The original project has a problem with socket liberation.
This implementation fixes socket resource liberation and task destructor.
The branch named cppcoro includes the original task by lewissbaker wich also correctly frees the resources.
Learning coroutine.
Inspired by:
- catch sigint + destroy coroutine
- move semantic on socket accept (RVO ?)
- handling error
- clean (remove logging, ...)