Boost logo

Boost Users :

Subject: Re: [Boost-users] [ASIO] Do coroutines allow serving multiple clients at once?
From: Oliver Kowalke (oliver.kowalke_at_[hidden])
Date: 2016-10-10 09:19:46


2016-10-10 9:44 GMT+02:00 mmarkd9_at_[hidden] <mmarkd9_at_[hidden]>:

> I'd like to know if this code is able to serve multiple clients connecting
> at the same time to the server.
>

I would say no. You spawn only one coroutine that calls in the for-loop
async. operations of accept(), read() and write() in a sequence.
No other client is able to connect to your server, e.g. connect() on the
client side returns, until you enter accept() again.

In order to serve multiple clients at the same time you need to spawn a
coroutine that accepts new connections and for each client request
(read()/write() operations) you need to spawn a new coroutine.



Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net