Advanced TCP/IP Socket Programming in C/C++ ( Posix )
Learn advanced TCP/IP socket programming techniques to solve complex networking problems. Build a complete TCP server program, manage multiple clients, handle concurrency, and more. This course is for intermediate-level programmers looking to enhance their skills and crack interview questions on OS and multithreading concepts. No third-party libraries are used, and the emphasis is on logistics concepts rather than the programming language. Linux/Mac OS and basic knowledge of TCP/IP socket programming, C/C++ programming, and multithreading are prerequisites.
What you’ll learn
- Advanced TCP Socket Programming
- Building Circular Byte Buffers
- Defining TCP Message Boundaries
- Creating Multi-Threaded TCP Clients
- Develop TCP Server Socket Library in C++
*** 30 Oct 2022 – This Course is under Development ***
Welcome to this Course on TCP/IP Socket Programming. Unlike other Courses, this is Advanced Course on Socket Programming. This course assumes that you are already familiar with Socket Programming basics and now want to take it to the next level. This course is about how TCP/IP Socket Programming is deployed in the industry to solve complex networking problems.
We will go beyond simple implementation of client/servers programs present all over the internet ( Advanced Course )
Course objective: Learn how to implement a typical complex Socket based Programs, closely tied to thread management
In this course, we will be going to build the Complete TcpServer Program in which we will cover :
How to manage Multiple Clients through Multiplexing
Notifying events to the application
Client new connection
Client disconnection
Client msg recvd
TCP Message Demarcation
Fixed Message Size Demarcation
Variable Message Size Demarcation
Integrate CLI interface with the Project
Gracefully Shutting down TCP Server
Creating Multi-Threaded Clients
Forcefully disconnecting the client
Detecting connection live-ness using Keep-Alive msgs
Handling Concurrency using locks
Maintaining statistics per client connection
Client Migration from Multiplexed to Multi-Threaded ( Or Vice Versa )
Building Socket Programming C++ Library over Posix
Pre-requisites :
1. Basic knowledge of TCP/IP Socket Programming through C/C++
2. C/C++ programming ( Intermediate Level )
3. Multi-Threading Basic Concepts ( creating a thread, Cancelling a thread, Producer/Consumer Pattern, Binary and Zero Semaphores )
4. Zeal to learn, explore and do research
5. Linux-based Course, should be done on Linux/MAC-OS only. No Windows Pls.
6. You should have a GitHub account.
This Course is not a :
1. Teaching basic Socket Programming and fundamentals
2. C/C++ programming language tutorial
3. Data Structure or Algorithm Course
4. Multithreading Tutorial
* We don’t use any third-party library. Everything is built up from scratch.
* This Course is protected by a full refund policy within 30 days of purchase
* The Emphasis of this course is on Logistics & Concepts, rather than Programming Language. You should be able to do this Course in a programming language of your choice – Java/Python etc.
Who this course is for:
- Warning : Not for Absolute beginners in Programming
- Who want to take their programming Skills from Beginner to Professional Level
- Final year students looking to crack the Interview Questions on OS, Multithreading Concepts