Hi, I modified a little the echo server
example and to build up a simple tcp server; basically what I do is:
-
Start the server in a thread
-
When a session is created I start
async read
-
If my session receive a signal I
write a data with async write function
-
Handle data written then start
again async read ( otherwise the connection should be closed )
I have some specific functions which prepare
packets and then invoke the write method
I would like to avoid static allocation of
my buffer instead of dynamic one; for doing that I supposed to use
shared_array<T>
I can’t do that because the boost::asio::buffer,
required by the write method, doesn’t seem to accept smart pointer.
So my questions are:
-
Is there a common pattern to
follow for preparing data and delete them after the delivery ?
-
Is it possible to use smart
pointers with async_write ?
-
Is the async_write executed in
another thread ? should I have concurrency problems if I would use an unique
output buffer and clear it on the handle_write callback ?
Thanks
Matteo