К содержимому
learnspaceYOUR NEXT CHAPTER
ПРОСТРАНСТВО ОБУЧЕНИЯ
ГлавнаяКаталог курсовМоё обучениеCoursera

Знания без границ

Учитесь у лучших университетов и компаний мира.

Открыть Coursera
Интеграция
Пространство университета
Моё пространствоСтраница курса
↵
ЯЛичный кабинетСтудент
© 2026 LearnSpaceКаждый день — возможность узнать больше.Помощь
Network Programming and Client-Server Programming · LearnSpace
Назад в каталог
courseraПрограммирование

Network Programming and Client-Server Programming

Курс от Birla Institute of Technology & Science, Pilani
Начальный≈ 83.6 чАнглийский
О курсеНавыкиПрограммаПреподаватели

О курсе

Master the foundational principles and advanced techniques of network programming and client-server architectures with this comprehensive, hands-on course designed for aspiring systems programmers and backend developers. You'll learn to build robust networked applications using socket programming with UDP, TCP, and SCTP protocols, while exploring inter-process communication mechanisms including signals, pipes, message queues, and shared memory. The course progresses from fundamental network concepts and layered architectures to advanced topics in distributed systems, remote procedure calls (RPC), and scalable server design patterns. Through practical implementation exercises, you'll develop real-world client-server applications including Telnet, FTP, and HTTP servers, while mastering performance optimization techniques for concurrent and preforked server architectures. You'll gain expertise in I/O models, asynchronous programming, network debugging tools like tcpdump and Wireshark, and distributed application frameworks. Whether you're preparing for roles in backend development, cloud computing, microservices architecture, or systems engineering, this course equips you with essential skills to design, implement, and optimize networked applications that power modern distributed systems and enterprise infrastructure.

Навыки, которые вы освоите

Computer NetworkingDistributed ComputingTCP/IPNetwork ProtocolsServersNetwork Performance ManagementNetwork ArchitectureSoftware DevelopmentMicroservicesSystem Design and ImplementationApplication Programming Interface (API)Network MonitoringWeb ApplicationsSystems ArchitectureServer SideNetwork TroubleshootingMiddlewareWeb ServersSystems DesignSystem Programming

Программа курса

10 модулей · 301 учебных материалов

01Overview of Computer Networks27 материалов

Course Introduction

Course OverviewЧтениеMeet Your Instructor - Prof. Rajib Ranjan MaitiВидеоMeet Your Instructor - Prof. Haribabu KotakulaВидеоCourse Introductory VideoВидео

Учитесь у экспертов

BITS Pilani Instructors Group

Преподаватель курса

Network Programming and Client-Server Programming
В каталоге вашей программы

Инвестируйте в себя

Новые знания — в удобное для вас время.

Начать на Coursera

Обучение откроется на Coursera
в новой вкладке

Обучение на Coursera

≈ 83.6 ч

10 модулей

Язык: Английский

Часть программы вашего университета
Course Structure & Critical InformationЧтение

Introduction to Computer Networks

What is a Computer Network?ВидеоWhat is a Computer Network?ЗаданиеLayered Network ArchitectureВидеоLayered Network ArchitectureЗаданиеInternet ArchitectureВидеоInternet ArchitectureЗаданиеRecommended Reading: Introduction to Computer NetworksЧтение

Implementation of Network Software

The Success of the InternetВидеоThe Success of the InternetЗаданиеAddressing Scheme at Network Access LayerВидеоAddressing Scheme at Network Access LayerЗаданиеAddressing Scheme at Network LayerВидеоAddressing Scheme at Network LayerЗаданиеAddressing Scheme at Transport LayerВидеоAddressing Scheme at Transport LayerЗаданиеRecommended Reading: Implementation of Network SoftwareЧтение

Example Networked Programs

StandaloneВидеоStandaloneЗаданиеRecommended Reading: Example Networked ProgramsЧтение

Summary and Assessment

Practice Lab: Daytime TCP Programming in CЛабораторнаяLet's Practice: Overview of Computer NetworksЗаданиеTest Yourself: Overview of Computer NetworksЗадание
02Inter-Process Communication36 материалов

Introduction to Process

Process and its RepresentationВидеоProcess and its RepresentationЗаданиеCreation of New ProcessВидеоCreation of New ProcessЗаданиеMechanisms for IPCВидеоMechanisms for IPCЗаданиеRecommended Reading: Introduction to ProcessЧтение

IPC Primitives 1

SignalsВидеоSignalsЗаданиеSignal to a ProcessВидеоSignal to a ProcessЗаданиеIPC Using Simplex PipeВидеоIPC Using Simplex PipeЗаданиеIPC Using Duplex PipeВидео

IPC Primitives 2

Message QueueВидеоMessage QueueЗаданиеExample of using POSIX Message QueueВидеоExample of using POSIX Message QueueЗаданиеShared MemoryВидеоShared MemoryЗаданиеRecommended Reading: IPC Primitives 2

Semaphores for Synchronisation

Basics of SynchronisationВидеоBasics of SynchronisationЗаданиеOverview of CS SolutionsВидеоOverview of CS SolutionsЗаданиеBasics of SemaphoreВидеоBasics of SemaphoreЗаданиеSemaphore to Classical Problem

Summary and Assessment

Practice Lab: Process Management and Inter-Process Communication in CЛабораторнаяIPC Design ChallengeDIALOGUELet's Practice: Inter-Process CommunicationЗаданиеTest Yourself: Inter-Process CommunicationЗадание
03Network Programming31 материалов

BSD Networking and Hosts - Part 1

BSD NetworkingВидеоBSD NetworkingЗаданиеTesting Network and its HostsВидеоTesting Network and its HostsЗаданиеVirtual Topology in MininetВидеоVirtual Topology in MininetЗаданиеRecommended Reading: BSD Networking and HostsЧтение

BSD Networking and Hosts - Part 2

Basic Networking APIsВидеоBasic Networking APIsЗаданиеNetworking APIs in Server ProgramВидеоNetworking APIs in Server ProgramЗаданиеNetworking APIs for IPv6 Compatible ClientВидеоNetworking APIs for IPv6 Compatible ClientЗадание

Protocol Usage by Common Applications

TCP/IP Big PictureВидеоTCP/IP Big PictureЗаданиеTCP and UDPВидеоTCP and UDPЗаданиеIP and SCTPВидеоIP and SCTPЗаданиеRecommended Reading: Protocol Usage by Common Applications

Program Debugging Techniques

Tracing a Simple User ProgramВидеоTracing a Simple User ProgramЗаданиеTracing a Program With System CallВидеоTracing a Program With System CallЗаданиеSock and TCPDumpВидеоSock and TCPDumpЗаданиеRecommended Reading: Program Debugging Techniques

Summary and Assessment

Practice Lab: Network Programming and Debuggingin CЧтениеLet's Practice: Network ProgrammingЗаданиеTest Yourself: Network ProgrammingЗадание
04Socket Interface25 материалов

UDP Sockets

UDP Sockets and ApplicationsВидеоUDP Sockets and ApplicationsЗаданиеUDP Echo Client and ServerВидеоUDP Echo Client and ServerЗаданиеWhen to Use UDP SocketВидеоWhen to Use UDP SocketЗаданиеRecommended Reading: UDP SocketsЧтение

TCP Sockets

TCP Client FunctionsВидеоTCP Client FunctionsЗаданиеTCP Server FunctionsВидеоTCP Server FunctionsЗаданиеTCP Sockets ExamplesВидеоTCP Sockets ExamplesЗаданиеRecommended Reading: TCP Sockets

SCTP Sockets

Basics in SCTP SocketsВидеоBasics in SCTP SocketsЗаданиеSCTP Sockets FunctionsВидеоSCTP Sockets FunctionsЗаданиеClient/Server Example with SCTP SocketsВидеоClient/Server Example with SCTP SocketsЗаданиеRecommended Reading: SCTP Sockets

Summary and Assessment

Practice Lab: Implementing UDP, TCP, and SCTP Client-Server CommunicationЧтениеSocket Protocol SelectionDIALOGUELet's Practice: Socket InterfaceЗаданиеTest Yourself: Socket InterfaceЗадание
05Client-Server Computing Model30 материалов

Server Design

Performance of ServerВидеоPerformance of ServerЗаданиеSimulating Multiple ClientsВидеоSimulating Multiple ClientsЗаданиеTCP Iterative ServerВидеоTCP Iterative ServerЗаданиеTCP Concurrent ServerВидеоTCP Concurrent ServerЗаданиеTCP Preforked Servers Without LockingВидеоTCP Preforked Servers Without LockingЗаданиеRecommended Reading: Server DesignЧтение

TCP Preforked Servers with File Locking

TCP Servers with ThreadВидеоTCP Servers with ThreadЗаданиеTCP Preforked Servers with File LockВидеоTCP Preforked Servers with File LockЗаданиеTCP Preforked Servers with Thread LockingВидеоTCP Preforked Servers with Thread LockingЗадание

Real World Servers

HTTP Dialogue BasicsВидеоHTTP Dialogue BasicsЗаданиеHTTP Client ProgramВидеоHTTP Client ProgramЗаданиеHTTP Client Program (Contd.)ВидеоHTTP Client Program (Contd.)ЗаданиеHTTP Server Program

Summary and Assessment

Practice Lab: TCP Client-Server CommunicationЧтениеLet's Practice: Client-Server Computing ModelЗаданиеTest Yourself: Client-Server Computing ModelЗадание
06Traditional Client-Server Applications29 материалов

Real World Servers

Basics of TelnetВидеоBasics of TelnetЗаданиеTelnet Command StructureВидеоTelnet Command StructureЗаданиеTelnet ServerВидеоTelnet ServerЗаданиеTelnet ClientВидеоTelnet ClientЗаданиеRecommended Reading: Real World Servers for Remote TerminalЧтение

Real World Servers for File Transfer

Basics of FTPВидеоBasics of FTPЗаданиеFTP Process ModelВидеоFTP Process ModelЗаданиеFTP ServerВидеоFTP ServerЗаданиеFTP ClientВидео

Concurrency Issues in Server

Advantage of Concurrency in Server and ClientВидеоAdvantage of Concurrency in Server and ClientЗаданиеSequential Web Search EngineВидеоSequential Web Search EngineЗаданиеConcurrent Web Search EngineВидеоConcurrent Web Search EngineЗадание

Summary and Assessment

Practice Lab: Implementing and Debugging an FTP Client-Server in CЧтениеConcurrent Server DesignDIALOGUELet's Practice: Traditional Client-Server ApplicationsЗаданиеTest Yourself: Traditional Client-Server ApplicationsЗадание
07Design Issues26 материалов

I/O Models

Types of Socket OperationsВидеоTypes of Socket OperationsЗаданиеTypes of I/O ModelsВидеоTypes of I/O ModelsЗаданиеBlocking and Nonblocking I/O ModelsВидеоBlocking and Nonblocking I/O ModelsЗаданиеSignal-Driven I/O Model and Asynchronous I/O ModelВидеоSignal-Driven I/O Model and Asynchronous I/O ModelЗаданиеRecommended Reading: I/O ModelsЧтение

Using I/O Models

Revisiting str_cli() FunctionВидеоRevisiting str_cli() FunctionЗаданиеBuffer ManagementВидеоBuffer ManagementЗаданиеBetter str_cli() – Part1ВидеоBetter str_cli() – Part1ЗаданиеRecommended Reading: Using I/O Models

Revisiting str_cli()

Improved str_cli() – Part2ВидеоImproved str_cli() – Part2ЗаданиеImproved str_cli() – Part3ВидеоImproved str_cli() – Part3Заданиеgf_time() and Timeline DiagramВидеоgf_time() and Timeline DiagramЗаданиеRecommended Reading: Revisiting str_cli()

Summary and Assessment

Practice Lab: Nonblocking Socket Programming and TCP/IP Communication in Solaris andUbuntuЧтениеLet's Practice: Design IssuesЗаданиеTest Yourself: Design IssuesЗадание
08Remote Procedure Calls28 материалов

Doors

Basics of Procedure CallsВидеоBasics of Procedure CallsЗаданиеA Basic Client Example of Using DoorВидеоA Basic Client Example of Using DoorЗаданиеA Basic Server Example of Using DoorВидеоA Basic Server Example of Using DoorЗаданиеControl Flow in Door-Based RPCВидеоControl Flow in Door-Based RPCЗаданиеRecommended Reading: DoorsЧтение

Door Functions and Structures

Door Functions and Structures 1ВидеоDoor Functions and Structures 1ЗаданиеDoor Functions and Structures 2ВидеоDoor Functions and Structures 2ЗаданиеDescriptor PassingВидеоDescriptor PassingЗадание

Sun RPC

Sun RPC IntroductionВидеоSun RPC IntroductionЗаданиеRPC Server ProgramВидеоRPC Server ProgramЗаданиеRPC Client-Server DesignВидеоRPC Client-Server DesignЗаданиеRecommended Reading: Sun RPC

Summary and Assessment

Practice Lab: UNIX Network Programming on Solaris OS using VirtualBoxЧтениеLet's Practice: Remote Procedure CallsЗаданиеTest Yourself: Remote Procedure CallsЗадание
09Distributed Programming34 материалов

Distributed Applications

Monolithic vs Distributed Programs ВидеоMonolithic vs Distributed Programs ЗаданиеCommunication Approaches for Distributed ProgramsВидеоCommunication Approaches for Distributed ProgramsЗаданиеRecommended Reading: Distributed ApplicationsЧтение

External Data Representations

Need for Standard Network RepresentationВидеоNeed for Standard Network RepresentationЗаданиеData RepresentationsВидеоData RepresentationsЗаданиеXDR Data RepresentationВидеоXDR Data RepresentationЗаданиеProtocol Buffers ВидеоProtocol Buffers ЗаданиеXML & JSONВидеоXML & JSONЗаданиеRecommended Reading: External Data RepresentationsЧтение

Remote Procedure Calls

RPC SubsystemВидеоRPC SubsystemЗаданиеCall SemanticsВидеоCall SemanticsЗаданиеStubs and SkeletonsВидеоStubs and SkeletonsЗаданиеSUN RPC-1Видео

Summary and Assessment

Practice Lab: Implementing Remote Procedure Calls (RPC) using gRPCЧтениеLet's Practice: Distributed ProgrammingЗаданиеTest Yourself: Distributed ProgrammingЗадание
10Distributed System Design35 материалов

Distributed Systems

Characteristics of Distributed SystemsВидеоCharacteristics of Distributed SystemsЗаданиеChallenges in Distributed SystemsВидеоChallenges in Distributed SystemsЗаданиеCAP TheoremВидеоCAP TheoremЗаданиеDesign Approaches - Architectural ConsiderationsВидеоDesign Approaches - Architectural ConsiderationsЗаданиеDesign Approaches for ScalabilityВидеоDesign Approaches for ScalabilityЗаданиеDesign Approaches for Distributed DataВидеоDesign Approaches for Distributed DataЗаданиеDesign Approaches for High AvailabilityВидеоDesign Approaches for High AvailabilityЗаданиеDesign Approaches - Communication and SecurityВидеоDesign Approaches - Communication and SecurityЗаданиеDesign Approaches - A Study of Google Search EngineВидеоDesign Approaches - A Study of Google Search EngineЗаданиеDesign Approaches - A Study of AWS Dynamo SystemВидеоDesign Approaches - A Study of AWS Dynamo SystemЗаданиеRecommended Reading: Distributed SystemsЧтение

Network File Systems

Sun Network File System (NFS) - ArchitectureВидеоSun Network File System (NFS) - ArchitectureЗаданиеNFS – RPC CallsВидеоNFS – RPC CallsЗаданиеNFS – CachingВидеоNFS – CachingЗаданиеAndrew File System

Summary and Assessment

Practice Lab: Network File SystemЧтениеDistributed System ArchitectureDIALOGUELet's Practice: Distributed System DesignЗаданиеTest Yourself: Distributed System DesignЗадание

Course Wrap-Up

Course SummaryЧтение
IPC Using Duplex PipeЗадание
Recommended Reading: IPC Primitives 1Чтение
Чтение
Видео
Semaphore to Classical ProblemЗадание
Recommended Reading: Semaphores for SynchronisationЧтение
Recommended Reading: BSD Networking and HostsЧтение
Чтение
Чтение
Чтение
Чтение
Recommended Reading: TCP Preforked Servers with File LockingЧтение
Видео
HTTP Server ProgramЗадание
Recommended Reading: Real World ServersЧтение
FTP ClientЗадание
Recommended Reading: Real World Servers for File TransferЧтение
Recommended Reading: Concurrency Issues in ServerЧтение
Чтение
Чтение
Descriptor Passing ProgramВидео
Descriptor Passing ProgramЗадание
Recommended Reading: Door Functions and StructuresЧтение
Чтение
SUN RPC-1Задание
Sun RPC 2Видео
Sun RPC 2Задание
gRPC-1Видео
gRPC-1Задание
gRPC-2Видео
gRPC-2Задание
Recommended Reading: Remote Procedure CallsЧтение
Видео
Andrew File SystemЗадание
Recommended Reading: Network File SystemsЧтение