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

ben9111/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