Advanced TCP/IP Socket Programming in C/C++ ( Posix )

Advanced TCP/IP Socket Programming in C/C++ ( Posix )

English | MP4 | AVC 1280×720 | AAC 44KHz 2ch | 36 lectures (3h 41m) | 1.54 GB

TCP/IP Socket Programming, C/C++ Project, Multi-Threading, POSIX, Network Systems Programming, Linux OS based

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
  • Creating Multi-Threaded Clients
  • Forcefully disconnecting the client
  • Gracefully Shutting down TCP Server
  • Notifying events to the application
  • Client new connection
  • Client disconnection
  • Client msg recvd
  • 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

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++
Table of Contents

What this Course is all about
1 Agenda and Pre-requisites
2 End Product of this Course
3 Code Access for this Course

Understanding Project Design and Goals
4 Properties of Typical TCP Servers
5 Project Design & Architecture – Overview
6 Project Design & Architecture – Overview – Continued

Project Implementation – Getting Started
7 Processing New Client Connection Initiation ( SYN ) Request
8 Creating Project FIles
9 Get Makefile Ready
10 Defining Constructors of all Classes
11 Starting the TcpServer Services using Start() Method
12 CAS Implementation – Creating FD to accept new Connections
13 Pre-Requisites before proceeding further
14 CAS Implementation – Accept New Connections
15 Managing TCP Clients
16 Sending Client Connect Notification to Application – Design
17 Sending Client Connect Notification to Application – Implementation
18 Display APIs Implementation

Appendix A Joinable Threads
19 Joinable Threads
20 Detached Threads
21 Joinable Threads in Action
22 Whom to Join
23 When to Create JoinableDetached Thread

Appendix B1 Thread Cancellation
24 Why Thread Cancellation
25 Understanding Thread Cancellation – Asynchronous Mode
26 Asynchronous Thread Cancellation – Demo Base Program
27 Asynchronous Cancellation – Code Changes
28 Thread Resource Leaking Problem
29 Data Structure Corruption – Invariants
30 Thread Cancellation Causing Deadlocks
31 Handling Resource Leaking on Thread Cancellation
32 Code Changes and Demo
33 Cleanup handlers Usage

Appendix B2 Deferred Thread Cancellation
34 Understanding Deferred Cancellation
35 Deferred Cancellation Implementation
36 Bonus