mirror of
https://github.com/boostorg/redis.git
synced 2026-01-19 04:42:09 +00:00
Small improvements.
This commit is contained in:
@@ -13,25 +13,27 @@ using net::ip::tcp;
|
||||
using tcp_socket = net::use_awaitable_t<>::as_default_on_t<net::ip::tcp::socket>;
|
||||
using timer_type = net::use_awaitable_t<>::as_default_on_t<net::steady_timer>;
|
||||
|
||||
net::awaitable<void> example(std::string msg, int n)
|
||||
net::awaitable<void>
|
||||
example(boost::asio::ip::tcp::endpoint ep, std::string msg, int n)
|
||||
{
|
||||
try {
|
||||
auto ex = co_await net::this_coro::executor;
|
||||
|
||||
tcp::resolver resv{ex};
|
||||
auto const res = resv.resolve("127.0.0.1", "55555");
|
||||
tcp_socket socket{ex};
|
||||
co_await socket.async_connect(*std::begin(res));
|
||||
co_await socket.async_connect(ep);
|
||||
|
||||
std::string buffer;
|
||||
auto dbuffer = net::dynamic_buffer(buffer);
|
||||
for (int i = 0; i < n; ++i) {
|
||||
co_await net::async_write(socket, net::buffer(msg));
|
||||
co_await net::async_read_until(socket, dbuffer, "\n");
|
||||
//std::printf("Nada %s", buffer.data());
|
||||
auto n = co_await net::async_read_until(socket, dbuffer, "\n");
|
||||
//std::printf("> %s", buffer.data());
|
||||
dbuffer.consume(n);
|
||||
}
|
||||
} catch (...) {
|
||||
std::cerr << "Error" << std::endl;
|
||||
|
||||
std::printf("Ok: %s", msg.data());
|
||||
} catch (std::exception const& e) {
|
||||
std::cerr << "Error: " << e.what() << std::endl;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -40,9 +42,13 @@ int main()
|
||||
try {
|
||||
net::io_context ioc;
|
||||
|
||||
tcp::resolver resv{ioc};
|
||||
auto const res = resv.resolve("127.0.0.1", "55555");
|
||||
auto ep = *std::begin(res);
|
||||
|
||||
int n = 100;
|
||||
for (int i = 0; i < 500; ++i)
|
||||
net::co_spawn(ioc, example("Some message\n", n), net::detached);
|
||||
for (int i = 0; i < 2; ++i)
|
||||
net::co_spawn(ioc, example(ep, "Some message\n", n), net::detached);
|
||||
|
||||
ioc.run();
|
||||
} catch (std::exception const& e) {
|
||||
|
||||
Reference in New Issue
Block a user