Udemy
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
Turn what you know into an opportunity and reach millions around the world.
Learn More
Your cart is empty.
Keep shopping
Code Together
Rating: 4.3 out of 5(3 ratings)
36 students

Code Together

C++ Http Client (with boost asio)
Last updated 1/2024
English
English [Auto],

What you'll learn

  • Will achieve practical understanding of multitasking
  • Will be able to implement a http client
  • Will be able to implement practical execution flows with multitasking
  • Will be able to use an HTTP client from C++

Course content

5 sections48 lectures9h 8m total length
  • Introduction6:30

    Launch a header-only C++ networking library with HTTP and WebSocket clients and servers using Boost.Beast. Establish a cross-platform Windows and Linux repository with tests and a readme.

  • Build boost7:00

    Build Boost C++ on Windows with Visual Studio 2022. Bootstrap the builder, use b2 to compile Boost as shared libraries, and skip MPI and Python to streamline the build.

  • Prepare Directory Layout13:06

    Prepare a third party directory with artifacts, lib, and include, then set up a Visual Studio solution and an http server test project with catch two.

  • Add Necessary Projects12:10

    Organize a Visual Studio solution by creating an HTTP server project, a separate HTTP client, and a shared common library, then set up folders, rename, and adjust build targets.

  • Git First Commit2:23

    Add all project files to git, ignore the build directory with a Visual Studio gitignore, copy the template, then stage, commit, and push the changes.

  • Boost Asio Basics16:42

    Learn the Boost.Asio basics: the IO context centers task execution, post and run, and how threads, work objects, and strands coordinate asynchronous tasks, with timers as convenient utilities.

Requirements

  • Familiarity with C++ multitasking with boost asio is preferred

Description

Good software developers invest considerable time into learning. Learning programming languages, techniques, getting the basics, and having a clear theoretical knowledge is a starting point and is definitely necessary. Though, what comes next is often even more valuable. Unfortunately, many times it is ignored.


“Gaining real-life experience while developing something actually useful and doing it together with someone who knows what s/he is doing”.


Doing homework, reading, or writing code snippets have their own merits, but some things can only be learned through experience. It is through this valuable experience that you actually internalize what you have been learning. You learn what to do and what not to do, when and where.


The very first steps of human improvement involve imitation of successful behavior. Many of us who are lucky enough to have a senior developer that we can observe at work, have already somewhat understood this fact. For the rest of us who does not have a relevant senior developer close to us, or for those of us who still feels lacking experience about certain subjects, this course is for you.


In “Code Together” series you will actively observe a senior developing a practically useful piece of software. We will

  - prepare a minimal work definition

  - write samples

  - design an API

  - do the implementation


together with you. You are advised to actively follow the work being done

  - by listening/watching carefully

  - by stopping the videos and writing/replicating the code yourself

or even redesigning things where you see appropriate.


The code we show in this lecture is available as an opensource project on github.

In this episode we will be developing a client and a server with http(s) support.


By the end of this course, you will have experience on

  - how to implement

    o http clients

    o API definitions

    o sample apps

  - how to use boost asio

  - how to implement proper lock-safe multitasking. (i.e. using minimal number of locks or no locks at all)

Above all, you will accumulate useful experience about how a seasoned developer thinks and approaches things.

Who this course is for:

  • C++ developers with some amount of know how on multi tasking
  • C++ developers with strong urge to discover and learn