آموزش برنامه‌نویسی پیشرفته سوکت TCP/IP در C/C++ (POSIX) - آخرین آپدیت

دانلود Advanced TCP/IP Socket Programming in C/C++ ( Posix )

نکته: ممکن هست محتوای این صفحه بروز نباشد ولی دانلود دوره آخرین آپدیت می باشد.
نمونه ویدیوها:
توضیحات دوره:

طراحی سرور پیچیده TCP و برنامه‌نویسی سیستم‌های شبکه پیشرفته با C/C++ در لینوکس

این دوره بر طراحی سرور پیچیده TCP، پروژه C/C++، چندنخی (Multi-Threading)، POSIX، برنامه‌نویسی سیستم‌های شبکه و توسعه در محیط لینوکس تمرکز دارد.

مفاهیم کلیدی پیشرفته در این دوره:

  • برنامه‌نویسی پیشرفته سوکت TCP
  • ساخت بافرهای بایت چرخشی (Circular Byte Buffers)
  • تعریف مرزهای پیام TCP (TCP Message Boundaries)
  • ایجاد کلاینت‌های TCP چندنخی
  • توسعه کتابخانه سوکت سرور TCP در C++

اگر شما با برنامه‌نویسی پایه سوکت و مفاهیم پایه چندنخی آشنا هستید و به زبان‌های C یا C++ علاقه‌مندید (البته مفاهیم برای سایر زبان‌های رایج نیز قابل استفاده است)، و همچنین حساب گیت‌هاب دارید و اشتیاق زیادی برای یادگیری و پیشرفت فراتر از مباحث رایج (مانند ساختار داده‌ها و الگوریتم‌ها) دارید، این دوره برای شماست.

به این دوره جامع و پیشرفته برنامه‌نویسی سوکت TCP/IP خوش آمدید. برخلاف بسیاری از دوره‌های موجود، هدف این دوره ارتقاء دانش شما از مبانی سوکت‌پروگرمینگ به سطح صنعتی است. ما به شما نشان خواهیم داد که چگونه از برنامه‌نویسی سوکت TCP/IP برای حل مشکلات پیچیده شبکه‌سازی در دنیای واقعی استفاده کنید.

این یک دوره پیشرفته است و ما فراتر از پیاده‌سازی‌های ساده کلاینت/سرور که به وفور در اینترنت یافت می‌شوند، گام برمی‌داریم.

هدف دوره:

یادگیری چگونگی پیاده‌سازی برنامه‌های پیچیده مبتنی بر سوکت، با تمرکز ویژه بر مدیریت نخ‌ها (Thread Management).

آنچه در این دوره خواهید ساخت و یاد خواهید گرفت:

در این دوره، ما یک برنامه کامل سرور TCP را از پایه خواهیم ساخت و مباحث زیر را پوشش خواهیم داد:

  1. نحوه مدیریت کلاینت‌های متعدد از طریق مالتی‌پلکسینگ (Multiplexing)
  2. اطلاع‌رسانی رویدادها به برنامه:
    1. اتصال جدید کلاینت
    2. قطع اتصال کلاینت
    3. دریافت پیام از کلاینت
  3. تشخیص مرز پیام TCP (TCP Message Demarcation):
    1. جداسازی پیام با اندازه ثابت
    2. جداسازی پیام با اندازه متغیر
  4. یکپارچه‌سازی رابط خط فرمان (CLI) با پروژه
  5. خاموش کردن اصولی و ایمن سرور TCP
  6. مدیریت همزمانی (Concurrency) با استفاده از قفل‌ها (Locks)
  7. پیاده‌سازی تابع connect() با قابلیت تلاش مجدد (Retries)

ویژگی‌های پیشرفته‌ای که پیاده‌سازی خواهیم کرد:

  1. ایجاد کلاینت‌های چندنخی (Multi-Threaded Clients)
  2. قطع اتصال اجباری کلاینت
  3. تشخیص فعال بودن اتصال (Liveness) با استفاده از پیام‌های Keep-Alive
  4. نگهداری آمار برای هر اتصال کلاینت
  5. مهاجرت کلاینت از حالت مالتی‌پلکس به چندنخی (و بالعکس)
  6. ساخت کتابخانه برنامه‌نویسی سوکت C++ بر روی POSIX

پیش‌نیازهای شرکت در دوره:

  • ۱. دانش پایه برنامه‌نویسی سوکت TCP/IP با C/C++
  • ۲. برنامه‌نویسی C/C++ (در سطح متوسط)
  • ۳. مفاهیم پایه چندنخی (Multi-Threading) شامل: ایجاد و لغو نخ، الگوی تولیدکننده/مصرف‌کننده، سمافرهای باینری و صفر
  • ۴. اشتیاق به یادگیری، کاوش و تحقیق
  • ۵. این دوره مبتنی بر لینوکس است و توصیه می‌شود تنها در محیط لینوکس یا مک‌اواس (macOS) آن را دنبال کنید. (سیستم‌عامل ویندوز توصیه نمی‌شود.)
  • ۶. داشتن حساب گیت‌هاب (GitHub).

این دوره شامل مباحث زیر *نمی‌شود*:

  • ۱. آموزش برنامه‌نویسی پایه سوکت و مبانی آن
  • ۲. آموزش زبان برنامه‌نویسی C/C++
  • ۳. دوره ساختار داده (Data Structure) یا الگوریتم
  • ۴. آموزش جامع چندنخی (Multithreading Tutorial)

* ما از هیچ کتابخانه شخص ثالثی استفاده نمی‌کنیم. تمام پروژه‌ها از صفر (from scratch) ساخته می‌شوند.

* این دوره تحت پوشش سیاست بازگشت کامل وجه تا ۳۰ روز پس از خرید می‌باشد.

* تاکید اصلی این دوره بر مفاهیم و منطق پیاده‌سازی است تا صرفاً یک زبان برنامه‌نویسی خاص. شما قادر خواهید بود مطالب این دوره را با زبان برنامه‌نویسی مورد علاقه خود، مانند جاوا (Java) یا پایتون (Python) و غیره، پیاده‌سازی کنید.


سرفصل ها و درس ها

این دوره در مورد چیست؟ What this Course is all about ?

  • سرفصل‌ها و پیش‌نیازها Agenda and Pre-requisites

  • خروجی نهایی این دوره End Product of this Course

  • دسترسی به کد برای این دوره Code Access for this Course

درک طراحی و اهداف پروژه Understanding Project Design and Goals

  • ویژگی‌های سرورهای TCP متداول Properties of Typical TCP Servers

  • طراحی و معماری پروژه - کلیات Project Design & Architecture - Overview

  • طراحی و معماری پروژه - کلیات - ادامه... Project Design & Architecture - Overview - Continued. . .

پیاده‌سازی پروژه - شروع کار Project Implementation - Getting Started

  • پردازش درخواست شروع اتصال کلاینت جدید (SYN) Processing New Client Connection Initiation ( SYN ) Request

  • ایجاد فایل‌های پروژه Creating Project FIles

  • تکلیف اجباری Mandatory Assignment

  • آماده‌سازی Makefile Get Makefile Ready

  • تعریف سازنده‌های تمامی کلاس‌ها Defining Constructors of all Classes

  • شروع سرویس‌های TcpServer با استفاده از متد Start() Starting the TcpServer Services using Start() Method

  • پیاده‌سازی CAS - ایجاد FD برای پذیرش اتصالات جدید CAS Implementation - Creating FD to accept new Connections

  • تکلیف Assignment

  • پیش‌نیازها قبل از ادامه Pre-Requisites before proceeding further

  • پیاده‌سازی CAS - پذیرش اتصالات جدید CAS Implementation - Accept New Connections

  • مدیریت کلاینت‌های TCP Managing TCP Clients

  • ارسال اعلان اتصال کلاینت به برنامه - طراحی Sending Client Connect Notification to Application - Design

  • ارسال اعلان اتصال کلاینت به برنامه - پیاده‌سازی Sending Client Connect Notification to Application - Implementation

  • پیاده‌سازی APIهای نمایش Display APIs Implementation

مدیر سرویس کلاینت TCP TCP Client Service Manager

  • شروع کار Getting Started

  • وظایف مدیر سرویس Functions of Service Manager

  • گوش دادن روی FD کلاینت جدید Listening on new Client FD

  • شروع رشته (Thread) مدیر سرویس Starting Service Manager Thread

  • تکلیف اجباری Mandatory Assignment

  • پیاده‌سازی مالتی‌پلکسینگ با استفاده از select() Implementing Multiplexing using select()

  • شامل کردن تمامی FDهای کلاینت در مالتی‌پلکسینگ Including All Client FDs in Multiplexing

  • لغو رشته (Thread Cancellation) - پیش‌نیازها Thread Cancellation - Pre-requisites

  • توقف/لغو رشته DRS Stopping/Cancelling the DRS thread

  • گوش دادن روی FD کلاینت جدید و چالش‌ها Listening on new Client FD & Challenges

جداسازی پیام TCP TCP Message Demarcation

  • مشکل مرزبندی پیام TCP TCP Message Boundary Problem

  • ماهیت بایت‌گرا بودن TCP - دمو TCP Byte Oriented Nature - Demo

  • راه‌حل‌هایی برای مشکل مرزبندی پیام TCP Solutions to TCP Msg Boundary Problem

  • جداسازی پیام TCP - راه‌حل اندازه ثابت TCP Msg Demarcation - Fixed Size Solution

  • جداسازی پیام TCP - راه‌حل اندازه متغیر TCP Msg Demarcation - Variable Size Solution

  • بافر دایره‌ای بایت Byte Circular Buffer

  • جداسازی پیام - نمودار کلاس Msg Demarcation - Class Diagram

  • پیاده‌سازی کلاس پایه Base Class Implementation

  • پیاده‌سازی کلاس مشتق شده - TcpMsgFixedSizeDemarcar Derived Class Implementation - TcpMsgFixedSizeDemarcar

  • تست راه‌حل جداسازی پیام با اندازه ثابت Testing Fixed Msg Size Demarcation Solution

  • تکلیف اجباری - پیاده‌سازی راه‌حل جداسازی اندازه متغیر Mandatory Assignment - Implement Variable Size Demarcation Solution

ادغام رابط CLI Integrating CLI Interface

  • معرفی رابط CLI Introducing CLI Interface

  • دانلود و ادغام کتابخانه CLI Downloading and Integrating CLI Library

  • نوشتن اولین CLI Writing First CLI

  • هندلرهای بک‌اند CLI CLI Backend Handlers

  • ایجاد چندین سرور TCP Creating Multiple TCP Servers

  • تکلیف اجباری Mandatory Assignment

حالت‌های سرور TCP Tcp Server States

  • حالت‌های سرور TCP TCP Server States

  • تکلیف اجباری Mandatory Assignment

  • پیاده‌سازی فلگ‌های سرور Implementing Server Flags

  • توقف سرویس CAS Stopping CAS Service

  • دمو - توقف گوش دادن برای اتصالات جدید Demo - Stop Listening for new Connections

  • تعلیق گوش دادن به کلاینت‌های متصل Suspending Listening to Connected Clients

  • تکلیف اجباری Mandatory Assignment

  • خلاصه و قدم بعدی Summary and What next

مدیریت همزمانی - همگام‌سازی رشته‌ها Concurrency Handling - Thread Synchronization

  • مدیریت همزمانی Handling Concurrency

  • اعمال قفل‌گذاری Deploy Locking

پیاده‌سازی فراخوانی سیستم Connect() Implementing Connect() System Call

  • صورت مسئله Problem Statement

  • درک بازکننده فعال و غیرفعال Understanding Active and Passive Opener

  • نمایش Connect() Connect() Demonstration

  • توسعه CLI برای Connect() Connect() Cli Development

  • تکلیف اجباری - حالت‌های TcpClient Mandatory Assignment - TcpClient States

پیوست A: رشته‌های قابل اتصال (Joinable Threads) Appendix A : Joinable Threads

  • رشته‌های قابل اتصال (Joinable Threads) Joinable Threads

  • رشته‌های جدا شده (Detached Threads) Detached Threads

  • رشته‌های قابل اتصال در عمل Joinable Threads in Action

  • به کدام رشته بپیوندیم؟ Whom to Join ?

  • چه زمانی رشته قابل اتصال/جدا شده ایجاد کنیم؟ When to Create Joinable/Detached Thread ?

پیوست B1: لغو رشته (Thread Cancellation) Appendix B1 : Thread Cancellation

  • چرا لغو رشته؟ Why Thread Cancellation ?

  • درک لغو رشته - حالت ناهمزمان Understanding Thread Cancellation - Asynchronous Mode

  • لغو رشته ناهمزمان - برنامه پایه دمو Asynchronous Thread Cancellation - Demo Base Program

  • لغو ناهمزمان - تغییرات کد Asynchronous Cancellation - Code Changes

  • مشکل نشت منابع رشته Thread Resource Leaking Problem

  • خرابی ساختار داده - ناوردایی‌ها (Invariants) Data Structure Corruption - Invariants

  • لغو رشته باعث بن‌بست می‌شود Thread Cancellation Causing Deadlocks

  • مدیریت نشت منابع در لغو رشته Handling Resource Leaking on Thread Cancellation

  • تغییرات کد و دمو Code Changes and Demo

  • استفاده از هندلرهای پاکسازی Cleanup handlers Usage

پیوست B2: لغو تاخیری رشته Appendix B2 : Deferred Thread Cancellation

  • درک لغو تاخیری Understanding Deferred Cancellation

  • پیاده‌سازی لغو تاخیری Deferred Cancellation Implementation

  • بخش جایزه Bonus

پیوست C1: ادغام کتابخانه CLI Appendix C1 : Integration CLI Library

  • مقدمه Introduction

  • انواع دستورات Command Types

  • درخت دستورات Command Tree

  • انواع پارامترها Param Types

  • محدودیت پارامتر برگ Leaf Param Constraint

پیوست C2: ادغام کتابخانه CLI Appendix C2 : Integration CLI Library

  • ساخت کتابخانه LibCli Building A LibCli Library

  • شامل کردن فایل‌های هدر و ایمپورت کردن هوک‌ها Including Header files and Importing Hooks

  • مثال افزودن دستور Show Show Command Addition Example

  • دمو دستور Show Show command Demo

  • درک جریان داده از CLI به بک‌اند Understanding DataFlow from CLI to Backend

  • پیاده‌سازی هندلر دستور بک‌اند Backend Command Handler Implementation

  • مثال افزودن دستور Config Config Command Addition Example

پیوست D: درک قفل‌های خواندن/نوشتن Appendix D : Understanding Read/Write Locks

  • قفل‌های خواندن/نوشتن Read Write Locks

  • APIهای POSIX POSIX APIs

نمایش نظرات

آموزش برنامه‌نویسی پیشرفته سوکت TCP/IP در C/C++ (POSIX)
جزییات دوره
9.5 hours
86
Udemy (یودمی) Udemy (یودمی)
(آخرین آپدیت)
1,454
4.2 از 5
دارد
دارد
دارد
جهت دریافت آخرین اخبار و آپدیت ها در کانال تلگرام عضو شوید.

Google Chrome Browser

Internet Download Manager

Pot Player

Winrar

Abhishek CSEPracticals Abhishek CSEPracticals

من شبکه می سازم!

Shiwani Nigam Shiwani Nigam

مجری بازاریابی دیجیتال

Ekta Ekta Ekta Ekta

مدیر تاسیسات