Example
Echo server
C++
//Ignore all errors
#include "zedio/core.hpp"
#include "zedio/net.hpp"
using namespace zedio;
using namespace zedio::async;
using namespace zedio::net;
auto process(TcpStream stream) -> Task<void> {
char buf[1024]{};
while (true) {
auto len = (co_await (stream.read(buf))).value();
if (len == 0) {
break;
}
co_await stream.write_all({buf, len});
}
}
auto server() -> Task<void> {
auto addr = SocketAddr::parse("localhost", 9999).value();
auto listener = TcpListener::bind(addr).value();
while (true) {
auto [stream, addr] = (co_await listener.accept()).value();
spawn(process(std::move(stream)));
}
}
auto main() -> int {
Runtime::create().block_on(server());
}