Network Programming


This course is offered for MCA V Semester students.

Groups for Assignment - 3: Due on 10 April 2014

Instructor: Chakravarthy Bhagvati
Room: E207, AI Lab

Meeting by appointment only. Send email for appointment.

Class Schedule
Thursdays and Fridays: 2:00PM - 3:30PM

Class Room: CR1 (W104 AI Lab)

Textbooks
Unix Network Programming Vols. 1 and 2 by Richard W. Stevens, Pearson Low Price Edition
Advanced Programming in the Unix Environment by Richard W. Stevens, Pearson Low Price Edition
This course covers four major areas:
  1. Interprocess communication
  2. Synchronization mechanisms
  3. Socket programming
  4. Daemon and Server Examples from Unix/Linux

Several practical examples and programs will be demonstrated and students are required to explore Linux operating system extensively and write a number of programs in addition to understanding the concepts. Students are expected to take the initiative in playing with the programming examples provided in the class and on this web page and attempt to understand the results.

Syllabus

  1. Process management
    • Recap of process states and process control blocks
    • Process creation with fork() and exec() system calls
    • Process groups and sessions
    • wait() and waitpid()
    • Use of ps command and its options
    • Threads and the pthreads library
  2. Interprocess communication
  3. Synchronization mechanisms
    • Mutexes and condition variables
    • Semaphores
    • Shared memory
  4. Socket programming
    • TCP and UDP sockets
    • Iterative and concurrent servers
    • select() function
    • Socket options
  5. Daemons and popular servers

The networking part of Linux operating system is different from Unix and often varies from version to version and from one release to another. Students are advised to experiment with their systems and interact with the instructor so that such variants and deviants are discovered and understood.

Assignments and Minor Exams

Example Programs

These are variations on the examples given in the textbook