Advanced TCP/IP Socket Programming in C/C++ ( Posix )
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++
Requirements
- Knowledge of Basic Socket Programming
- Basic Multi-threading Concepts
- C or C++ in preferable, but if your fav language is any other mainstream language then also it is ok. Borrow the concepts and implement it in your fav language.
- Github Account
- Zeal to learn and excel - beyond what Crowd is doing ( DS/ALGO/CP ) basic Data structures such as Linked-List.
Description
*** 12 June 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
<< Delivered Till here as on 12 June 2022 >>
Creating Multi-Threaded Clients
Forcefully disconnecting the client
Gracefully Shutting down TCP Server
Detecting connection live-ness using Keep-Alive msgs
Handling Concurrency using locks
Maintaining statistics per client connection
TCP Message Demarcation
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
Instructors
I have been engaged with coding and software for a decade now. I am a Networking developer at MNC. My rich working experience is backed by graduation from IIT Bombay as an MTech specialist. I am restless for more in-depth knowledge, and always working out the ways to integrate what I know in practical ways. I am always happy to train and encourage people on Udemy – the next-gen education platform.
I will help you to strengthen the networking concepts and fundamentals in a very practical way. I also hones in System Software Development, Linux System Programming and Network Software Development. I love to create courses on unique non-standard topics, and projects. Check my catalogue, you will find couple of project based courses which you can add to your resume.
You’ll complete assignments and work on a project where you’ll use all the theory. I make sure you build a proper understanding and that you’ll get all the questions and doubts answered. Let me take the privilege to guide you and bring useful additions to your resume !
Hi, Myself Shivani Nigam, PhD in Marketing. I expertise in researching the consumer behavior in the context of purchasing the products online. I take the responsibility of marketing the online content (Udemy courses) on this platform.
I also ensure the courses are delivered with perfect Audio/Video Quality by technical Instructors, and ensures that students queries and doubts are addressed by technical instructors with priority.
Hi, I am Ekta, a facility Manager for Csepracticals. I am responsible for the maintenance and upkeep of an organization’s infrastructure, ensuring that they meet legal requirements and health and safety standards.
I ensure that the facility is operating as it should on a daily basis by completing daily inspections and conducting proactive and reactive maintenance.