top of page

Blather

Introduction

Chat servers are an old idea dating to the late 1970s. Even standard Unix terminals have a built-in ability to communicate with other users through commands like writewall, and talk. Systems programming is often associated with communication as of this invariably requires coordinating multiple entities that are related only based on their desire to share information.

Purpose

This project is used for understanding

- the multi-thread process,

- basic server-client model,

- semaphore,

- binary log system on the Linux system.

Design

Like most interesting projects, the program utilizes a combination of many different system tools. Look for the following items to arise:

- Multiple communicating processes: clients to servers
- Communication through FIFOs.
- Signal handling for graceful server shutdown.
- Alarm signals for periodic behavior.
- Input multiplexing with select().
- Multiple threads in the client to handle typed input versus info from the server.

bottom of page