Network and Systems Programming
Course Title: Network and Systems Programming
Course No: ENCT386
Nature of the Course: Theory + Lab
Semester: 6
Full Marks: 60 + 40 + 25
Pass Marks: 24 + 16 + 10
Credit Hours: 3
Course Description
Course Objectives
Course Contents
- Pipes and FIFOs
- Message queues
- Shared memory
- Semaphores
- Iterative versus concurrent servers
- Multi-process and multi-threaded servers
Laboratory Works
- 1.System calls and file operations in Linux
- 2.Process creation using fork/exec and process control
- 3.IPC using pipes, shared memory, and message queues
- 4.Signal handling programs
- 5.Thread creation and synchronization using Pthreads
- 6.TCP client-server socket programming
- 7.UDP-based communication programs
- 8.Multi-client concurrent server (thread/process-based)
- 9.I/O multiplexing using select/poll
- 10.Packet capture and analysis using Wireshark
- 11.Mini-project: Design and implement a scalable network application
Text Books
- 1.Forouzan, B. A. (2017). Data communications and networking. McGraw-Hill Education.
- 2.Kurose, J. F., Ross, K. W. (2021). Computer networking: A top-down approach. Pearson.
- 3.Stevens, W. R. (2013). Advanced programming in the UNIX environment. Addison-Wesley.
- 4.Stevens, W. R. (2003). UNIX network programming. Addison-Wesley.
- 5.Kernighan, B. W., Pike, R. (1984). The UNIX programming environment (Latest Edition). Prentice Hall.