Network Programming in C: Develop Reliable Client/Server Applications
1h 56mIntermediate2024-12-12
Authors

Dan Gookin
Creator, Teacher, and Technology Writer with 20+ years of experience
Course details
Are you a C programmer looking to explore networking programming? In this course, instructor Dan Gookin provides an overview of network communications, terms, strategies, and concepts. Dan explores this complex topic in a step-by-step progression, exploring networking in Linux, macOS, or Windows 10/11 running the Windows Subsystem for Linux (WSL). Included are relevant parts of the operating system and how to access local networking features. The core of the course deals with socket programming at the client/server level. The IPv4 and IPv6 protocols are covered, as are TCP and UDP connections. Dan shows you how to program a client and server for both types of connections. The course finishes with a challenge: Code a Linux, text-mode real time chat server that accepts multiple connections, tracks conversations, and logs connections.
Skills covered
CProgramming LanguagesOpen SourceSoftware DevelopmentOne-Off
Concepts
0. Introduction
- 01 - Network with the world
- 02 - What you need for this course
- 03 - Traps and pitfalls
1. Network Communications
- 04 - View the big network picture
- 05 - Configure the firewall
- 06 - Understand the Internet Protocol (IP)
- 07 - Explore network addresses and ports
- 08 - Access local network details
- 09 - Discover local interfaces
- 10 - Review the client server roles
2. Network Programming
- 11 - Understand socket programming
- 12 - Explore the getaddrinfo() function
- 13 - Open a socket
- 14 - Bind and connect
- 15 - Listen and accept
- 16 - Challenge - Check for errors
- 17 - Solution - Check for errors
3. TCP Connections
- 18 - Create a TCP server
- 19 - Call a TCP server
- 20 - Code a dual stack configuration
- 21 - Challenge - A generic TCP client
- 22 - Solution - A generic TCP client
4. UDP Connections
- 23 - Code a UDP server
- 24 - Code a UDP client
- 25 - Challenge - Code a UDP client and server
- 26 - Solution - Code a UDP client and server
5. A Chat Server
- 27 - Obtain the client's address
- 28 - Maintain the connection
- 29 - Accept multiple connections
- 30 - Managing multiple connections
- 31 - Challenge - Write a chat server
- 32 - Solution - Write a chat server
Conclusion
- 33 - Next Steps
Related courses
- Training Neural Networks in C++
- Training Neural Networks in C++ (2021)
- Programming Foundations: Algorithms (2018)
- Programming Foundations: Algorithms
- Linux for PHP Developers
- Rust Programming: Beginner to Advanced
- CompTIA IT Fundamentals (FC0-U61) Cert Prep 3: Computer Maintenance and Troubleshooting, Databases, and Programming
- Perl 5 Essential Training
Related learn paths
- Advancing Your Azure Developer Skills: Exploring Complex Application Development
- Become a Programmer: Foundations
- Become an Arduino Developer
- Get Started with PHP
- Develop Your SPSS Skills
- Getting Started with Python
- Getting Started with R for Data Science
- Advance Your Skills in Deep Learning and Neural Networks