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/C++ is required, Linux CLI is also recommended

Applies Towards the Following Certificates

Enroll Now - Select a section to enroll in
Section Title
Network Programming
T, Th
Time (Central Time)
5:30PM to 8:30PM
Aug 15, 2023 to Aug 31, 2023
Schedule and Location
# of Course Hours
Delivery Option
Course Fee(s)
Rate non-credit $2,495.00
Potential Discount(s)
Required fields are indicated by .
*Academic Unit eligibility to be determined by college/university in which you are enrolled in a degree seeking program.