Asynchronous I/O with C++ — Den's WebsiteHow to write client-server systems in modern C++ with Boost.Asio, Boost.Beast and C++20 Networkinghttps://dens.website/tutorials/cpp-asiodens.websiteen-usFri, 02 Oct 2020 05:00:00 +0000Simple terminal serverAn implementation of a simple terminal server which you connect to with telnet and execute commandshttps://dens.website/tutorials/cpp-asio/simple-terminal-serverhttps://dens.website/tutorials/cpp-asio/simple-terminal-serverFri, 02 Oct 2020 05:00:00 +0000TCP echo server, part 4Third approach on improvement of TCP echo server implementation: multithreadinghttps://dens.website/tutorials/cpp-asio/tcp-echo-server-4https://dens.website/tutorials/cpp-asio/tcp-echo-server-4Thu, 24 Sep 2020 11:00:00 +0000TCP echo server, part 3Second approach on improvement of TCP echo server implementation: eliminating gaps and memory copyinghttps://dens.website/tutorials/cpp-asio/tcp-echo-server-3https://dens.website/tutorials/cpp-asio/tcp-echo-server-3Thu, 24 Sep 2020 10:00:00 +0000TCP echo server, part 2First approach on improvement of TCP echo server implementation: making read and write work in parallelhttps://dens.website/tutorials/cpp-asio/tcp-echo-server-2https://dens.website/tutorials/cpp-asio/tcp-echo-server-2Thu, 24 Sep 2020 09:00:00 +0000TCP echo serverSimple straightforward implementation and discussion of TCP echo serverhttps://dens.website/tutorials/cpp-asio/tcp-echo-serverhttps://dens.website/tutorials/cpp-asio/tcp-echo-serverThu, 24 Sep 2020 08:00:00 +0000A tale of a good serverA short notes on Boost.Asio server application quality issueshttps://dens.website/tutorials/cpp-asio/good-serverhttps://dens.website/tutorials/cpp-asio/good-serverThu, 24 Sep 2020 07:00:00 +0000Milestone 2A short break before we go into Boost.Asio application design principleshttps://dens.website/tutorials/cpp-asio/milestone-2https://dens.website/tutorials/cpp-asio/milestone-2Thu, 30 Apr 2020 23:00:00 +0000SSL and TLSHow to deal with secure connections with Boost.Asio and OpenSSLhttps://dens.website/tutorials/cpp-asio/ssl-tlshttps://dens.website/tutorials/cpp-asio/ssl-tlsThu, 30 Apr 2020 22:00:00 +0000Read and write data properly, part 3Several additional tips on dealing with Boost.Asio I/O free functionshttps://dens.website/tutorials/cpp-asio/read-write-3https://dens.website/tutorials/cpp-asio/read-write-3Sat, 25 Apr 2020 23:00:00 +0000Read and write data properly, part 2How to deal with Boost.Asio I/O free functions: async_read, async_read_until and async_writehttps://dens.website/tutorials/cpp-asio/read-write-2https://dens.website/tutorials/cpp-asio/read-write-2Sat, 25 Apr 2020 22:00:00 +0000Read and write data properlyHow to deal with read and write functions properly to gain desired I/O behaviorhttps://dens.website/tutorials/cpp-asio/read-writehttps://dens.website/tutorials/cpp-asio/read-writeSat, 25 Apr 2020 02:00:00 +0000So much buffers!Let's briefly summarize everything we've learned about different Boost.Asio buffershttps://dens.website/tutorials/cpp-asio/so-much-buffershttps://dens.website/tutorials/cpp-asio/so-much-buffersSat, 25 Apr 2020 01:00:00 +0000Dynamic buffers, part 2How to work with Boost.Asio dynamic buffers manuallyhttps://dens.website/tutorials/cpp-asio/dynamic-buffers-2https://dens.website/tutorials/cpp-asio/dynamic-buffers-2Sat, 25 Apr 2020 00:00:00 +0000Dynamic buffersHow to read data from Boost.Asio dynamic buffershttps://dens.website/tutorials/cpp-asio/dynamic-buffershttps://dens.website/tutorials/cpp-asio/dynamic-buffersFri, 24 Apr 2020 23:00:00 +0000Buffer sequence, part 2How to operate on the underlying buffer sequence data with Boost.Asio free functionshttps://dens.website/tutorials/cpp-asio/buffer-sequence-2https://dens.website/tutorials/cpp-asio/buffer-sequence-2Fri, 24 Apr 2020 22:00:00 +0000Buffer sequenceA closer look on how to pass data views into Boost.Asio functionshttps://dens.website/tutorials/cpp-asio/buffer-sequencehttps://dens.website/tutorials/cpp-asio/buffer-sequenceFri, 27 Mar 2020 02:15:00 +0000Milestone 1Let's take a break and briefly look across everything we've learned so farhttps://dens.website/tutorials/cpp-asio/milestone-1https://dens.website/tutorials/cpp-asio/milestone-1Fri, 27 Mar 2020 00:15:00 +0000Manual event pollingHow to deal with completion handlers manually to combine Boost.Asio with other APIshttps://dens.website/tutorials/cpp-asio/pollinghttps://dens.website/tutorials/cpp-asio/pollingWed, 25 Mar 2020 22:00:00 +0000A client, part 2Writing a very simple client application in C++ with Boost.Asiohttps://dens.website/tutorials/cpp-asio/client-2https://dens.website/tutorials/cpp-asio/client-2Wed, 25 Mar 2020 15:00:00 +0000Hostname resolversResolving hostnames into IP addresses before connecthttps://dens.website/tutorials/cpp-asio/resolvershttps://dens.website/tutorials/cpp-asio/resolversWed, 25 Mar 2020 12:00:00 +0000A client (at last!)What's the difference between a client and a server, and what do they have in commonhttps://dens.website/tutorials/cpp-asio/clienthttps://dens.website/tutorials/cpp-asio/clientWed, 25 Mar 2020 09:00:00 +0000TimersWorking with asynchronous timers within io_context polling loophttps://dens.website/tutorials/cpp-asio/timershttps://dens.website/tutorials/cpp-asio/timersTue, 12 Nov 2019 23:20:00 +0000Multithreaded execution, part 2A special execution model with a custom load balancerhttps://dens.website/tutorials/cpp-asio/multithreading-2https://dens.website/tutorials/cpp-asio/multithreading-2Tue, 12 Nov 2019 08:00:00 +0000Multithreaded executionWe've dealt with a single-threaded environment so far; now it's time to go multithreadinghttps://dens.website/tutorials/cpp-asio/multithreadinghttps://dens.website/tutorials/cpp-asio/multithreadingSun, 10 Nov 2019 13:30:00 +0000Post your own functors into io_contextHow execute a regular code within io_context::run polling loophttps://dens.website/tutorials/cpp-asio/posthttps://dens.website/tutorials/cpp-asio/postSun, 10 Nov 2019 13:15:00 +0000Prevent io_context::run from returningHow to keep io_context::run running even when there is no work to dohttps://dens.website/tutorials/cpp-asio/workhttps://dens.website/tutorials/cpp-asio/workSun, 10 Nov 2019 13:00:00 +0000Making things simplerPrinciples you should take into consideration during the development of your applicationshttps://dens.website/tutorials/cpp-asio/making-things-simplerhttps://dens.website/tutorials/cpp-asio/making-things-simplerSat, 02 Nov 2019 17:33:00 +0000TCP chat serverA bigger example of a server where you'll need to apply everything you've learned so farhttps://dens.website/tutorials/cpp-asio/tcp-chat-serverhttps://dens.website/tutorials/cpp-asio/tcp-chat-serverFri, 01 Nov 2019 09:45:00 +0000Learning furtherThere are several new things we should learn before jumping into a bigger example of a serverhttps://dens.website/tutorials/cpp-asio/learning-furtherhttps://dens.website/tutorials/cpp-asio/learning-furtherFri, 01 Nov 2019 09:00:00 +0000Error handlingHow to handle Boost.Asio errorshttps://dens.website/tutorials/cpp-asio/error-handlinghttps://dens.website/tutorials/cpp-asio/error-handlingMon, 28 Oct 2019 19:11:00 +0000Asynchronous TCP serverThe first simple asynchronous TCP serverhttps://dens.website/tutorials/cpp-asio/async-tcp-serverhttps://dens.website/tutorials/cpp-asio/async-tcp-serverSun, 27 Oct 2019 20:34:00 +0000Synchrony goodbye partyIt's time to say “goodbye” to a synchronous I/Ohttps://dens.website/tutorials/cpp-asio/sync-goodbye-partyhttps://dens.website/tutorials/cpp-asio/sync-goodbye-partyFri, 25 Oct 2019 09:00:00 +0000The simplest server there isWhat is server anyway? The most simple examplehttps://dens.website/tutorials/cpp-asio/simplest-serverhttps://dens.website/tutorials/cpp-asio/simplest-serverThu, 24 Oct 2019 14:50:00 +0000TCP and UDPA brief description of the difference between network transport protocolshttps://dens.website/tutorials/cpp-asio/tcp-udphttps://dens.website/tutorials/cpp-asio/tcp-udpThu, 24 Oct 2019 08:15:00 +0000IntroductionWhat should you know before get startedhttps://dens.website/tutorials/cpp-asio/introhttps://dens.website/tutorials/cpp-asio/introThu, 24 Oct 2019 07:00:00 +0000