Course Description

Network Programming involves writing programs that enable processes to communicate with other programs across a computer or computer network. In this course students learn the essential concepts of network programming. This course starts with the fundamentals of Internet Protocol, TCP, and UDP. Next we explore client-server and peer-to-peer models for information sharing and connectivity with remote computers. As the class progresses we will also cover asynchronous socket programming and streams, and explore debugging and error handling. Finally, you’ll study network monitoring and implement security best practices.

Course Outline

• Intro to Network Programs
• TCP/IP Protocol Stacks
• Intro to Network Programming
• Sockets
• Port Numbers
• Common Port Numbers
• Common Protocol Numbers
• Unix Domain Socket
• Internet Domain Socket
• Socket Functions
• Socket System Calls
• Client Side Programming
• Server Side Programming
• Byte Ordering Requirements
• Concurrent Server Design
• Iterative Server Design
• Socket Debugging Techniques
• Advanced Socket Options
• Changing Socket Buffer Sizes
• Reusing Socket Addresses
• Keeping the Connections Alive
• TCP Socket Options
• Setting Max Segment Size
• Setting TCP No-Delay
• Advanced I/O Functions
• Socket Timeouts
• Vectored Read/Writes
• Netstat – Network Stat Utility
• Tcpdump – Packet Dump Utility


Prior programming experience in C++ is required

Applies Towards the Following Certificates


Thank you for your interest in this course. Unfortunately, the course you have selected is currently not open for enrollment. Please complete a Course Inquiry or call 314-977-3226 so that we may promptly notify you when enrollment opens.

Required fields are indicated by .
*Academic Unit eligibility to be determined by college/university in which you are enrolled in a degree seeking program.