Duration of the online course: 3 hours and 26 minutes
New
Networked applications power everything from web browsing and APIs to streaming and real-time systems. This free online course helps you understand what actually happens when programs talk across a network, and shows you how to build that communication yourself in C. Instead of treating networking as magic, you will learn to design clients and servers that exchange data reliably, diagnose common pitfalls, and write code that behaves well under real workloads.
You will start with the fundamentals of sockets, learning how a web client connects to a server and how a server accepts incoming connections. From there, you will move beyond the simplest examples by handling practical details that matter in production, such as working with client addresses, converting IP formats, and resolving host names into usable network addresses. You will also confront issues that silently break programs, like endianness and the concept of network byte order, so your code stays portable across systems.
Once the basics are clear, the course focuses on scalability. You will explore multiple ways to handle many connections: multithreading, thread pools, and coordination using condition variables. You will also learn event-driven techniques where one thread can monitor multiple sockets using select, a key skill for efficient servers. Along the way, you will see how higher-level libraries such as libcurl can accelerate development when you need networking capabilities without reimplementing low-level details.
To make your programs more robust, you will examine why progress indicators can be misleading in networked software and how to think about progress realistically. You will also learn strategies to detect data corruption using checksums, reinforcing the mindset that correctness and resilience are as important as functionality. Finally, you will expand your toolkit by working with both major socket types, understanding when to choose TCP versus UDP, and implementing datagram-based sending and receiving.
By the end, you will be able to read and write network code with confidence, build your own clients and servers, and choose the right concurrency and protocol approach for a given problem. The exercises reinforce each concept so you finish with practical experience, not just theory, and a clearer path toward roles in systems, backend, and web infrastructure development.
3 hours and 26 minutes of online video course
Digital certificate of course completion (Free)
Exercises to train your knowledge
100% free, from content to certificate
Ready to get started?Download the app and get started today.
Install the app now
to access the courseOver 5,000 free courses
Programming, English, Digital Marketing and much more! Learn whatever you want, for free.
Study plan with AI
Our app's Artificial Intelligence can create a study schedule for the course you choose.
From zero to professional success
Improve your resume with our free Certificate and then use our Artificial Intelligence to find your dream job.
You can also use the QR Code or the links below.

Free CourseProgressive Web Application PWA for Beginners
3h24m
15 exercises

Free CourseJavaScript for beginners
1h40m
2 exercises

Free CourseUmbraco CMS
6h21m
19 exercises

Free CourseFull Stack Web Development
26h16m
48 exercises

Free CourseAngular 2 for Beginners
1h02m
9 exercises

Free CourseDesign and code a landing page
4h40m
15 exercises

Free CourseJavascript
4h52m
46 exercises

Free CourseWeb Development for beginners
5h21m
30 exercises

Free CoursejQuery
9h04m
7 exercises

Free CourseHTML for absolute beginners
1h00m
Thousands of online courses in video, ebooks and audiobooks.
To test your knowledge during online courses
Generated directly from your cell phone's photo gallery and sent to your email
Download our app via QR Code or the links below::.
+ 10 million
students
Free and Valid
Certificate
60 thousand free
exercises
4.8/5 rating in
app stores
Free courses in
video and ebooks