UNIX system Programming courses

TLPI front cover (small)


The Linux/UNIX network programming course covers network programming using the sockets API on Linux and UNIX systems. The content of the course is based on the network programming chapters of The Linux Programming Interface, but adds a significant amount of supplementary material.

  • "Standard" courses are normally two days long, and are either delivered at a public training location or on-site at customer premises. The content may vary a little, according to specific topic requests and time constraints, but in broad terms will cover the following topics:
  • Overview of relevant background pieces of the UNIX API
  • Sockets overview
  • Programming with UNIX domain sockets
  • TCP/IP overview; UDP and TCP
  • Programming with Internet domain sockets
  • Approaches to server design
  • Advanced sockets API topics
  • TCP in more detail (TCP segments, TCP state machine, 3-way handshake)
  • Socket options
  • Monitoring and troubleshooting: netstat and tcpdump
  • Alternative I/O models (select, poll, signal-driven I/O, epoll)
  • Daemons

  • A more detailed list of topics can be found here.
  • The course includes practical programming sessions. Come along prepared to work fairly hard, interact, and learn a lot during the course.
  • Some pieces of the course go into Linux-specific details, but the majority of the course is devoted to features available on all UNIX implementations. The course is thus also useful to attendees working on other UNIX systems such as FreeBSD, Solaris, HP-UX, and AIX.
  • Tailored courses

    If you elect to have an onsite training course on your premises, it is possible to tailor the length and content of the course to your needs. For further details, please email

    Audience and prerequisites

    The primary audience for this course is programmers developing network applications for Linux and UNIX systems, or programmers porting such applications from other operating systems (e.g., Windows) to Linux or UNIX. By the completion of the course, participants will have the understanding needed to write advanced network applications on a Linux or UNIX system.

    In order to get the most out of the course, participants should have:

  • At least a good reading knowledge of the C programming language.
  • A basic knowledge of the more commonly used functions in the standard C library. For example, it's assumed that participants know what the common functions in the stdio and malloc packages do.
  • A knowledge of basic UNIX/Linux shell commands.
  • Course format

    The course employs a lecture+lab format.

    Lab sessions

    A significant part of the course is spent on practical exercises. The lab sessions also provide participants with the opportunity to obtain one-to-one assistance from the trainer on the course material and exercises.

    Course materials

    You might also like

    How to Rename groups of files from the command line
    How to Rename groups of files from the command line
    Web Programming with Semmy -- Episode 3: Unix Command Line
    Web Programming with Semmy -- Episode 3: Unix Command Line ...

    Alternative Open Source Hosting Control Panels  — TheHostingNews.com
    Zpanel – Written in PHP, Zpanel is light and flexible, working on Windows, Linux and other Unix-like operating systems. It supports modules, themes and more.


    How can you view and set wireless interface card settings from the command line on Unix systems

    The command 'ifconfig' is powerful. It allows you to configure any network interfaces attached to your computer, assuming you have the appropriate driver.
    To scan for wireless access points, try:
    $ ifconfig wlan0 list scan
    To connect to a specific SSID, try:
    $ ifconfig wlan0 ssid SSID_GOES_HERE