Skip to content
akasrPublic

About

Terminal Chat Server

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 

Repository files navigation

Relay

> A multi-client terminal-based chat application built from the ground up using TCP sockets and concurrency.

Objective

Build a client-server chat system where multiple users can connect through their terminals and communicate in real time.

The project should primarily demonstrate:

  • TCP/IP networking
  • Linux socket programming
  • Concurrent client handling
  • Thread synchronization
  • Client-server architecture
  • Basic protocol design
  • Systems level C programming

This project is not intended to compete with production chat applications.

Technology Choice

Component Technology
Language C
Network TCP/IP
API POSIX sockets
Concurrency POSIX threads
Synchronization Mutexes and condition variables
Operating System Linux
Build Make
Debugging GDB
Testing Manual + basic automated tests
Version Control Git

MVP Features

The first complete version will support:

1. Connection

Client -> TCP -> Server
  • Server listens on a configurable port.
  • Multiple clients can connect.
  • Each client recieves a dedicated server thread.

2. Usernames

Username: akash
  • Each client must provide a unique username upon connection.

3. Broadcast

> Hello, Everyone!

Other connected user recieve:

[akash]: Hello, Everyone!

4. Private messaging

> /msg rahul Hey, how are you?

5. User list

> /users

Example output:

Connected users:
- akash
- rahul
- priya

6. Commands

/help
/users
/msg <username> <message>
/quit

About

Terminal Chat Server

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors