BIT 4206 Network Programming Course
Outline
Prerequisites: BIT 3102 Network Management
BIT 3201 Object Oriented Programming
Objectives:
• By the end of the course the learner should be able to:
Have knowledge about Unix Technologies (IPC, POSIX threads, Unix file system)
• Be able to develop client-server network applications on the internet, based on UNIX/linux
Course Outline
An overview of C++
Inheritance, Polymorphism, Encapsulation, Templates, Dynamic memory management, handling exceptions Networks and protocols
Circuits vs packets
Internet protocol
The global IP internet
Transmission control protocol
Introduction to Unix
Ports
Ethernets
Internet addresses
Internetworking
OSI model
User datagram protocol
History of Unix
Unix structure
Components of Unix
Unix File Systems
Basic Unix commands: File/Directory commands, Network logins, Backups, Miscellaneous
Important utilities
Programming in Unix/Linux
Unix Technologies
POSIX threads
Creating thread
Terminating a thread
Passing arguments to a thread
Joining and detaching threads
Thread synchronization
Mutex variables
Condition variables
Semaphores
Reader/Writer locks
Thread models
Boss/worker model
1
NETWORK PROGRAMMING BIT 4206
Pipeline model
Background task model
Interface/implementation model
Sockets
Introduction, types of sockets
OSI model
BSD network history
TCP socket programming model
IP addresses (V4, V6)
Subnets
Port numbers
Socket functions: Socket, Bind, Connect, listen, Accept, Send, Recv, Sendto, Recvfrom,
Close, Shutdown
Byte order
Structs
Blocking
Non-blocking
Socket Programming
Client-server programming model
Example client
Example server
Programming project
Required text Books
Stephen R., Fenner B, Rudoff A, (2003) Unix Network Programming volume 1: The Sockets
Networking API (3rd Edition)
Stephens R., (2005) Unix Network Programming, Volume2: Interprocess communications 2nd
Edition