Skip to content

Networking-Programming-Project , C++ , The communication between the Server and Client based on TCP The communication between two Clients based on UDP

Notifications You must be signed in to change notification settings

adammilan/Networking-Programming-Project-

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Networking-Programming-Project , ChatRoom , C++

The final project is a hybrid P2P and client­server messenger application that enable two clients to send and receive messages between one and the other

The developed project implement the following functionality:

  • The project include two apps: Messenger Server App (MSA) and Messenger Client App (MCA).
  • The communication between the MCA and MSA based on TCP (control messages).
  • The communication between two MCA’s based on UDP (interaction between two clients).
  • Messenger Server App and Messenger Client App using a CLI
  • Programming in C++ in eclipse (JavaEE) / Linux enviroment

Guidelines:

Messenger Server App CLI:

○ lu - list all users
○ lcu - list all connected users
○ ls - list all sessions (two clients communicating)
○ lr - list all rooms
○ lru - list all users in this room
○ x - shutdown

Messenger Client App CLI:

○ c - connect to the server in the given ip
○ lu - print the user list from the server
○ lcu - print the connected users list
○ lr - print all rooms
○ lru - print all users in this room
○ login - login with the user and password
○ register - register the new user with the given password and login the user.
○ o - open a session with the user
○ or - enter a chat room user can be connected to only to one other user or chat room at a time, calling o or or commands will disconnect other open session.
○ s - send a message
○ l - print the current status of the client (connected to “xyz”/not connected)
○ cs - disconnect the open session / exit from a room
○ cr - close a room
○ d - disconnect from server
○ x - close the app

To connect to the server the client will sign in using a username and a password (no encryption required):

○ The client can create a new user with a new password (unless this user is already created).
○ To communicate with another client, the user will request to open a session with the required user name.
○ The list of usernames and passwords will be saved into a file in the server side.

Chat rooms (conference chat):

○ The client is able to open a chat room.
○ A chat room may be closed only by its creator.
○ Each client can enter a chat room or leave it.
○ Once a client enters a chat room it will receive all messages sent by all the other clients in the room, and all the clients will receive his messages.
○ In order not to overload the server, all client communication is P2P using UDP and does not pass through the server.

About

Networking-Programming-Project , C++ , The communication between the Server and Client based on TCP The communication between two Clients based on UDP

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 81.3%
  • Makefile 18.7%