Skip to content

A messenger-like chatting application written in C

Notifications You must be signed in to change notification settings

saad0510/c-chat-app

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

C-Chat app

A messenger-like chatting application in which clients can exchange messages with each other. There are two modes of chatting:

  1. Private Mode - clients can talk to each other privately.
  2. Public Mode - clients can exchange messages with anyone on the server.

There is also a login system which makes sure to identify each user.

Dependencies

The project has used the windows api of socket programming - Winsock2 library. Therefore, the project can only be compiled to windows machines that support this library. Also, make sure to link the object file with winsock modules.

Features

The project is divided into 2 independent parts - the client and the server. The CLIENTS/ directory contains the code which should run on the client machine, while the SERVERS/ directory contains the code which should run on the server.

Clients

You can create as many copies of clients as you want.

  • CLIENT.c - contains the client code.
  • header.h - contains necessary headers and definitions used in project.

Servers

All servers need to be running at the same time in order to serve the client(s).

  • MAIN_SERVER.c - the server responsible for login session of client(s).
  • PRIVATE_SERVER.c - the server responsible for private conversations of clients with each other.
  • PUBLIC_SERVER.c - the server responsible for public group chats of clients.
  • header.h - contains necessary headers and definitions used in project.

The conversations and user data are stored in text and binaryfiles. See the report for more details.

References

  • Book : Hands-on Network Programming with C, Lewis Van Winkle, www.packt.com

Last Updated

December, 2020

Authors

Releases

No releases published

Packages

No packages published

Languages